mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 00:33:09 +00:00
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
This commit is contained in:
parent
40a0b2c305
commit
cd81f5df27
@ -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>
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user