Merge pull request #189 from guanqun/fix-extern-c-error
calls to C/C++ functions should not be mangled.
This commit is contained in:
12
module.cpp
12
module.cpp
@@ -501,10 +501,14 @@ Module::AddFunctionDeclaration(Symbol *funSym, bool isInline) {
|
|||||||
llvm::GlobalValue::LinkageTypes linkage = (funSym->storageClass == SC_STATIC ||
|
llvm::GlobalValue::LinkageTypes linkage = (funSym->storageClass == SC_STATIC ||
|
||||||
isInline) ?
|
isInline) ?
|
||||||
llvm::GlobalValue::InternalLinkage : llvm::GlobalValue::ExternalLinkage;
|
llvm::GlobalValue::InternalLinkage : llvm::GlobalValue::ExternalLinkage;
|
||||||
std::string functionName = ((funSym->storageClass == SC_EXTERN_C) ?
|
std::string functionName;
|
||||||
funSym->name : funSym->MangledName());
|
if (funSym->storageClass == SC_EXTERN_C)
|
||||||
if (g->mangleFunctionsWithTarget)
|
functionName = funSym->name;
|
||||||
functionName += g->target.GetISAString();
|
else {
|
||||||
|
functionName = funSym->MangledName();
|
||||||
|
if (g->mangleFunctionsWithTarget)
|
||||||
|
functionName += g->target.GetISAString();
|
||||||
|
}
|
||||||
llvm::Function *function =
|
llvm::Function *function =
|
||||||
llvm::Function::Create(llvmFunctionType, linkage, functionName.c_str(),
|
llvm::Function::Create(llvmFunctionType, linkage, functionName.c_str(),
|
||||||
module);
|
module);
|
||||||
|
|||||||
Reference in New Issue
Block a user