Check that we don't have external varaibles with internal linkage
authorChris Lattner <sabre@nondot.org>
Sun, 6 Oct 2002 22:47:32 +0000 (22:47 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 6 Oct 2002 22:47:32 +0000 (22:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4051 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Verifier.cpp

index 1663ddf6b7af67ec957db75b8d024449f1b65795..b01b5efc847981c720de53117b400d5dcb9d74dd 100644 (file)
@@ -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;