mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-23 02:29:18 +00:00
Add Value Accessors
Add accessors to get Record values by Init name. This lets us look up Record values whose names are not yet fully resolved. More work toward paste. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142496 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d7f8941e77
commit
96a9f78c4a
@ -1442,6 +1442,9 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
const RecordVal *getValue(Init *Name) const;
|
||||
RecordVal *getValue(Init *Name);
|
||||
|
||||
void addTemplateArg(StringRef Name) {
|
||||
assert(!isTemplateArg(Name) && "Template arg already defined!");
|
||||
TemplateArgs.push_back(Name);
|
||||
@ -1452,15 +1455,19 @@ public:
|
||||
Values.push_back(RV);
|
||||
}
|
||||
|
||||
void removeValue(StringRef Name) {
|
||||
void removeValue(Init *Name) {
|
||||
for (unsigned i = 0, e = Values.size(); i != e; ++i)
|
||||
if (Values[i].getName() == Name) {
|
||||
if (Values[i].getNameInit() == Name) {
|
||||
Values.erase(Values.begin()+i);
|
||||
return;
|
||||
}
|
||||
assert(0 && "Cannot remove an entry that does not exist!");
|
||||
}
|
||||
|
||||
void removeValue(StringRef Name) {
|
||||
removeValue(StringInit::get(Name.str()));
|
||||
}
|
||||
|
||||
bool isSubClassOf(const Record *R) const {
|
||||
for (unsigned i = 0, e = SuperClasses.size(); i != e; ++i)
|
||||
if (SuperClasses[i] == R)
|
||||
|
@ -1726,6 +1726,18 @@ void Record::setName(const std::string &Name) {
|
||||
setName(StringInit::get(Name));
|
||||
}
|
||||
|
||||
const RecordVal *Record::getValue(Init *Name) const {
|
||||
for (unsigned i = 0, e = Values.size(); i != e; ++i)
|
||||
if (Values[i].getNameInit() == Name) return &Values[i];
|
||||
return 0;
|
||||
}
|
||||
|
||||
RecordVal *Record::getValue(Init *Name) {
|
||||
for (unsigned i = 0, e = Values.size(); i != e; ++i)
|
||||
if (Values[i].getNameInit() == Name) return &Values[i];
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// resolveReferencesTo - If anything in this record refers to RV, replace the
|
||||
/// reference to RV with the RHS of RV. If RV is null, we resolve all possible
|
||||
/// references.
|
||||
|
Loading…
Reference in New Issue
Block a user