diff options
Diffstat (limited to 'clang/lib/Basic/Builtins.cpp')
-rw-r--r-- | clang/lib/Basic/Builtins.cpp | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/clang/lib/Basic/Builtins.cpp b/clang/lib/Basic/Builtins.cpp index cb8a0b37bbd..69b10c13ede 100644 --- a/clang/lib/Basic/Builtins.cpp +++ b/clang/lib/Basic/Builtins.cpp @@ -32,27 +32,20 @@ static const Builtin::Info BuiltinInfo[] = { const Builtin::Info &Builtin::Context::getRecord(unsigned ID) const { if (ID < Builtin::FirstTSBuiltin) return BuiltinInfo[ID]; - assert(ID - Builtin::FirstTSBuiltin < (NumTSRecords + NumAuxTSRecords) && + assert(((ID - Builtin::FirstTSBuiltin) < + (TSRecords.size() + AuxTSRecords.size())) && "Invalid builtin ID!"); if (isAuxBuiltinID(ID)) return AuxTSRecords[getAuxBuiltinID(ID) - Builtin::FirstTSBuiltin]; return TSRecords[ID - Builtin::FirstTSBuiltin]; } -Builtin::Context::Context() { - // Get the target specific builtins from the target. - TSRecords = nullptr; - AuxTSRecords = nullptr; - NumTSRecords = 0; - NumAuxTSRecords = 0; -} - void Builtin::Context::InitializeTarget(const TargetInfo &Target, const TargetInfo *AuxTarget) { - assert(NumTSRecords == 0 && "Already initialized target?"); - Target.getTargetBuiltins(TSRecords, NumTSRecords); + assert(TSRecords.empty() && "Already initialized target?"); + TSRecords = Target.getTargetBuiltins(); if (AuxTarget) - AuxTarget->getTargetBuiltins(AuxTSRecords, NumAuxTSRecords); + AuxTSRecords = AuxTarget->getTargetBuiltins(); } bool Builtin::Context::builtinIsSupported(const Builtin::Info &BuiltinInfo, @@ -82,14 +75,14 @@ void Builtin::Context::initializeBuiltins(IdentifierTable &Table, } // Step #2: Register target-specific builtins. - for (unsigned i = 0, e = NumTSRecords; i != e; ++i) + for (unsigned i = 0, e = TSRecords.size(); i != e; ++i) if (builtinIsSupported(TSRecords[i], LangOpts)) Table.get(TSRecords[i].Name).setBuiltinID(i + Builtin::FirstTSBuiltin); // Step #3: Register target-specific builtins for AuxTarget. - for (unsigned i = 0, e = NumAuxTSRecords; i != e; ++i) + for (unsigned i = 0, e = AuxTSRecords.size(); i != e; ++i) Table.get(AuxTSRecords[i].Name) - .setBuiltinID(i + Builtin::FirstTSBuiltin + NumTSRecords); + .setBuiltinID(i + Builtin::FirstTSBuiltin + TSRecords.size()); } void Builtin::Context::forgetBuiltin(unsigned ID, IdentifierTable &Table) { |