mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-14 06:37:33 +00:00
Special case aliases in GlobalValue::getSection.
This is similar to the getAlignment patch, but is done just for completeness. It looks like we never call getSection on an alias. All the tests still pass if the if is replaced with an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208139 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8abb75bc61
commit
26668d093e
@ -106,8 +106,8 @@ public:
|
||||
}
|
||||
void setDLLStorageClass(DLLStorageClassTypes C) { DllStorageClass = C; }
|
||||
|
||||
bool hasSection() const { return !Section.empty(); }
|
||||
const std::string &getSection() const { return Section; }
|
||||
bool hasSection() const { return !getSection().empty(); }
|
||||
const std::string &getSection() const;
|
||||
void setSection(StringRef S);
|
||||
|
||||
/// getType - Global values are always pointers.
|
||||
|
@ -80,6 +80,12 @@ void GlobalValue::setAlignment(unsigned Align) {
|
||||
assert(getAlignment() == Align && "Alignment representation error!");
|
||||
}
|
||||
|
||||
const std::string &GlobalValue::getSection() const {
|
||||
if (auto *GA = dyn_cast<GlobalAlias>(this))
|
||||
return GA->getAliasedGlobal()->getSection();
|
||||
return Section;
|
||||
}
|
||||
|
||||
void GlobalValue::setSection(StringRef S) {
|
||||
assert(!isa<GlobalAlias>(this) && "GlobalAlias should not have a section!");
|
||||
Section = S;
|
||||
|
@ -476,7 +476,6 @@ void Verifier::visitGlobalAlias(const GlobalAlias &GA) {
|
||||
Assert1(GA.getType() == GA.getAliasee()->getType(),
|
||||
"Alias and aliasee types should match!", &GA);
|
||||
Assert1(!GA.hasUnnamedAddr(), "Alias cannot have unnamed_addr!", &GA);
|
||||
Assert1(!GA.hasSection(), "Alias cannot have a section!", &GA);
|
||||
|
||||
const Constant *Aliasee = GA.getAliasee();
|
||||
const GlobalValue *GV = dyn_cast<GlobalValue>(Aliasee);
|
||||
|
Loading…
x
Reference in New Issue
Block a user