diff options
-rw-r--r-- | lib/VMCore/Verifier.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index 1663ddf6b7..b01b5efc84 100644 --- a/lib/VMCore/Verifier.cpp +++ b/lib/VMCore/Verifier.cpp @@ -25,7 +25,7 @@ // * Verify that a function's argument list agrees with it's declared type. // . Verify that arrays and structures have fixed elements: No unsized arrays. // * It is illegal to specify a name for a void value. -// * It is illegal to have a internal function that is just a declaration +// * It is illegal to have a internal global value with no intitalizer // * It is illegal to have a ret instruction that returns a value that does not // agree with the function return value type. // * Function call argument types match the function prototype @@ -98,6 +98,10 @@ namespace { // Anonymous namespace for class if (I->isExternal() && I->hasInternalLinkage()) CheckFailed("Function Declaration has Internal Linkage!", I); + for (Module::giterator I = M.gbegin(), E = M.gend(); I != E; ++I) + if (I->isExternal() && I->hasInternalLinkage()) + CheckFailed("Global Variable is external with internal linkage!", I); + // If the module is broken, abort at this time. abortIfBroken(); return false; |