From: Chris Lattner Date: Sun, 6 Oct 2002 22:47:32 +0000 (+0000) Subject: Check that we don't have external varaibles with internal linkage X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=61b91bc156bb9e3d9017a9e93d567f8dccfa3f68;p=oota-llvm.git Check that we don't have external varaibles with internal linkage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4051 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index 1663ddf6b7a..b01b5efc847 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;