Skip to content
Snippets Groups Projects
Commit 84c0e17e authored by Andrew Lenharth's avatar Andrew Lenharth
Browse files

Linker should keep sections on globals. This should propagate to mainline if it is correct

llvm-svn: 33554
parent 4f2f923e
No related branches found
No related tags found
No related merge requests found
......@@ -456,6 +456,9 @@ static bool LinkGlobals(Module *Dest, Module *Src,
SGV->getName(), Dest);
// Propagate alignment info.
NewDGV->setAlignment(SGV->getAlignment());
// Propagate section info.
NewDGV->setSection(SGV->getSection());
// If the LLVM runtime renamed the global, but it is an externally visible
// symbol, DGV must be an existing global with internal linkage. Rename
......@@ -481,6 +484,9 @@ static bool LinkGlobals(Module *Dest, Module *Src,
// Propagate alignment info.
NewDGV->setAlignment(std::max(DGV->getAlignment(), SGV->getAlignment()));
// Propagate section info.
NewDGV->setSection(SGV->getSection());
// Make sure to remember this mapping...
ValueMap.insert(std::make_pair(SGV, NewDGV));
......@@ -490,6 +496,9 @@ static bool LinkGlobals(Module *Dest, Module *Src,
// Propagate alignment info.
DGV->setAlignment(std::max(DGV->getAlignment(), SGV->getAlignment()));
// Propagate section info.
DGV->setSection(SGV->getSection());
// Otherwise, perform the mapping as instructed by GetLinkageResult. If
// the types don't match, and if we are to link from the source, nuke DGV
// and create a new one of the appropriate type.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment