mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-17 00:27:31 +00:00
Work around a bug in GCC where it can't handle common variables marked weak.
llvm-svn: 9679
This commit is contained in:
parent
8e65bbe451
commit
40b6a81c43
@ -693,7 +693,14 @@ void CWriter::printModule(Module *M) {
|
||||
Out << " __attribute__((common))";
|
||||
else if (I->hasWeakLinkage())
|
||||
Out << " __attribute__((weak))";
|
||||
if (!I->getInitializer()->isNullValue()) {
|
||||
|
||||
// If the initializer is not null, emit the initializer. If it is null,
|
||||
// we try to avoid emitting large amounts of zeros. The problem with
|
||||
// this, however, occurs when the variable has weak linkage. In this
|
||||
// case, the assembler will complain about the variable being both weak
|
||||
// and common, so we disable this optimization.
|
||||
if (!I->getInitializer()->isNullValue() ||
|
||||
I->hasWeakLinkage()) {
|
||||
Out << " = " ;
|
||||
writeOperand(I->getInitializer());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user