| Index: src/IceConverter.cpp
|
| diff --git a/src/IceConverter.cpp b/src/IceConverter.cpp
|
| index a4d4f53366289d7edadcfd69164d93fe4992aeec..349fde54f676cabee6ff034bd856d333db6d1439 100644
|
| --- a/src/IceConverter.cpp
|
| +++ b/src/IceConverter.cpp
|
| @@ -867,6 +867,13 @@ void Converter::installGlobalDeclarations(Module *Mod) {
|
| FunctionDeclaration *IceFunc = FunctionDeclaration::create(
|
| Ctx, Signature, Func.getCallingConv(), Func.getLinkage(), Func.empty());
|
| IceFunc->setName(Func.getName());
|
| + if (!IceFunc->verifyLinkageCorrect(Ctx)) {
|
| + std::string Buffer;
|
| + raw_string_ostream StrBuf(Buffer);
|
| + StrBuf << "Function " << IceFunc->getName()
|
| + << " has incorrect linkage: " << IceFunc->getLinkageName();
|
| + report_fatal_error(StrBuf.str());
|
| + }
|
| GlobalDeclarationMap[&Func] = IceFunc;
|
| }
|
| // Install global variable declarations.
|
| @@ -879,6 +886,13 @@ void Converter::installGlobalDeclarations(Module *Mod) {
|
| Var->setAlignment(GV->getAlignment());
|
| Var->setIsConstant(GV->isConstant());
|
| Var->setLinkage(GV->getLinkage());
|
| + if (!Var->verifyLinkageCorrect(Ctx)) {
|
| + std::string Buffer;
|
| + raw_string_ostream StrBuf(Buffer);
|
| + StrBuf << "Global " << Var->getName()
|
| + << " has incorrect linkage: " << Var->getLinkageName();
|
| + report_fatal_error(StrBuf.str());
|
| + }
|
| GlobalDeclarationMap[GV] = Var;
|
| }
|
| }
|
|
|