mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 21:24:00 +00:00
Fix bugs with attribute weak emission
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9678 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -653,6 +653,7 @@ void CWriter::printModule(Module *M) {
|
||||
if ((I->hasInternalLinkage() || !MangledGlobals.count(I)) &&
|
||||
!I->getIntrinsicID()) {
|
||||
printFunctionSignature(I, true);
|
||||
if (I->hasWeakLinkage()) Out << " __attribute__((weak))";
|
||||
Out << ";\n";
|
||||
}
|
||||
}
|
||||
@ -671,7 +672,11 @@ void CWriter::printModule(Module *M) {
|
||||
if (!I->isExternal()) {
|
||||
Out << "extern ";
|
||||
printType(Out, I->getType()->getElementType(), Mang->getValueName(I));
|
||||
|
||||
|
||||
if (I->hasLinkOnceLinkage())
|
||||
Out << " __attribute__((common))";
|
||||
else if (I->hasWeakLinkage())
|
||||
Out << " __attribute__((weak))";
|
||||
Out << ";\n";
|
||||
}
|
||||
}
|
||||
@ -903,8 +908,6 @@ void CWriter::printFunctionSignature(const Function *F, bool Prototype) {
|
||||
FunctionInnards << ")";
|
||||
// Print out the return type and the entire signature for that matter
|
||||
printType(Out, F->getReturnType(), FunctionInnards.str());
|
||||
|
||||
if (F->hasWeakLinkage()) Out << " __attribute((weak))";
|
||||
}
|
||||
|
||||
void CWriter::printFunction(Function *F) {
|
||||
|
Reference in New Issue
Block a user