diff options
author | Chris Lattner <sabre@nondot.org> | 2009-08-05 05:41:44 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-08-05 05:41:44 +0000 |
commit | cd81f5df27c9a47561be1b9a4059ca3a5dcace4c (patch) | |
tree | f1143daa3ac0b91b44481b134733a40d20cf63fe | |
parent | 40a0b2c305344898fd4e46e988d16846cd5cd6b2 (diff) | |
download | external_llvm-cd81f5df27c9a47561be1b9a4059ca3a5dcace4c.zip external_llvm-cd81f5df27c9a47561be1b9a4059ca3a5dcace4c.tar.gz external_llvm-cd81f5df27c9a47561be1b9a4059ca3a5dcace4c.tar.bz2 |
common globals may also not be marked constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78169 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | docs/LangRef.html | 7 | ||||
-rw-r--r-- | lib/VMCore/Verifier.cpp | 9 |
2 files changed, 10 insertions, 6 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html index 52ec978..9ef7cce 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -564,9 +564,10 @@ define i32 @main() { <i>; i32()* </ global scope. Symbols with "<tt>common</tt>" linkage are merged in the same way as <tt>weak symbols</tt>, and they may not be deleted if unreferenced. - Further, <tt>common</tt> symbols may not have an explicit section, and - must have a zero initializer. Functions and aliases may not have common - linkage.</dd> + <tt>common</tt> symbols may not have an explicit section, + must have a zero initializer, and may not be marked '<a + href="#globalvars"><tt>constant</tt></a>'. Functions and aliases may not + have common linkage.</dd> <dt><tt><b><a name="linkage_appending">appending</a></b></tt>: </dt> diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index f50299b..9ca0488 100644 --- a/lib/VMCore/Verifier.cpp +++ b/lib/VMCore/Verifier.cpp @@ -378,11 +378,14 @@ void Verifier::visitGlobalVariable(GlobalVariable &GV) { "Global variable initializer type does not match global " "variable type!", &GV); - // If the global has common linkage, it must have a zero initializer. - if (GV.hasCommonLinkage()) + // If the global has common linkage, it must have a zero initializer and + // cannot be constant. + if (GV.hasCommonLinkage()) { Assert1(GV.getInitializer()->isNullValue(), "'common' global must have a zero initializer!", &GV); - + Assert1(!GV.isConstant(), "'common' global may not be marked constant!", + &GV); + } // Verify that any metadata used in a global initializer points only to // other globals. |