[cfe-commits] r73492 - in /cfe/trunk: clang.xcodeproj/project.pbxproj include/clang/Basic/Builtins.h lib/Basic/Builtins.cpp lib/Lex/Preprocessor.cpp tools/clang-cc/clang-cc.cpp
Douglas Gregor
dgregor at apple.com
Tue Jun 16 09:55:40 PDT 2009
On Jun 16, 2009, at 9:18 AM, Chris Lattner wrote:
> Author: lattner
> Date: Tue Jun 16 11:18:48 2009
> New Revision: 73492
>
> URL: http://llvm.org/viewvc/llvm-project?rev=73492&view=rev
> Log:
> my refactoring of builtins changed target-specific builtins to only be
> registered when PCH wasn't being used. We should always install (in
> BuiltinInfo)
> information about target-specific builtins, but we shouldn't
> register any builtin
> identifier infos. This fixes the build of apps that use PCH and
> target specific
> builtins together.
Do you have a test case for this? Seems like something that's easy to
break.
- Doug
> Modified:
> cfe/trunk/clang.xcodeproj/project.pbxproj
> cfe/trunk/include/clang/Basic/Builtins.h
> cfe/trunk/lib/Basic/Builtins.cpp
> cfe/trunk/lib/Lex/Preprocessor.cpp
> cfe/trunk/tools/clang-cc/clang-cc.cpp
>
> Modified: cfe/trunk/clang.xcodeproj/project.pbxproj
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/clang.xcodeproj/project.pbxproj?rev=73492&r1=73491&r2=73492&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- cfe/trunk/clang.xcodeproj/project.pbxproj (original)
> +++ cfe/trunk/clang.xcodeproj/project.pbxproj Tue Jun 16 11:18:48 2009
> @@ -1712,6 +1712,7 @@
> GCC_ENABLE_CPP_RTTI = NO;
> GCC_ENABLE_PASCAL_STRINGS = NO;
> GCC_ENABLE_SYMBOL_SEPARATION = NO;
> + GCC_ENABLE_TRIGRAPHS = NO;
> GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
> GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
> GCC_OPTIMIZATION_LEVEL = 0;
> @@ -1723,6 +1724,7 @@
> GCC_SYMBOLS_PRIVATE_EXTERN = NO;
> GCC_THREADSAFE_STATICS = NO;
> GCC_USE_GCC3_PFE_SUPPORT = NO;
> + GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
> INSTALL_PATH = "$(HOME)/bin";
> OTHER_LDFLAGS = (
> "-lLLVMBitWriter",
>
> Modified: cfe/trunk/include/clang/Basic/Builtins.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Builtins.h?rev=73492&r1=73491&r2=73492&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- cfe/trunk/include/clang/Basic/Builtins.h (original)
> +++ cfe/trunk/include/clang/Basic/Builtins.h Tue Jun 16 11:18:48 2009
> @@ -53,13 +53,12 @@
> const Info *TSRecords;
> unsigned NumTSRecords;
> public:
> - Context() : TSRecords(0), NumTSRecords(0) {}
> + Context(const TargetInfo &Target);
>
> /// InitializeBuiltins - Mark the identifiers for all the builtins
> with their
> /// appropriate builtin ID # and mark any non-portable builtin
> identifiers as
> /// such.
> - void InitializeBuiltins(IdentifierTable &Table, const TargetInfo
> &Target,
> - bool NoBuiltins = false);
> + void InitializeBuiltins(IdentifierTable &Table, bool NoBuiltins =
> false);
>
> /// \brief Popular the vector with the names of all of the builtins.
> void GetBuiltinNames(llvm::SmallVectorImpl<const char *> &Names,
>
> Modified: cfe/trunk/lib/Basic/Builtins.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Builtins.cpp?rev=73492&r1=73491&r2=73492&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- cfe/trunk/lib/Basic/Builtins.cpp (original)
> +++ cfe/trunk/lib/Basic/Builtins.cpp Tue Jun 16 11:18:48 2009
> @@ -30,11 +30,15 @@
> return TSRecords[ID - Builtin::FirstTSBuiltin];
> }
>
> +Builtin::Context::Context(const TargetInfo &Target) {
> + // Get the target specific builtins from the target.
> + Target.getTargetBuiltins(TSRecords, NumTSRecords);
> +}
> +
> /// InitializeBuiltins - Mark the identifiers for all the builtins
> with their
> /// appropriate builtin ID # and mark any non-portable builtin
> identifiers as
> /// such.
> void Builtin::Context::InitializeBuiltins(IdentifierTable &Table,
> - const TargetInfo &Target,
> bool NoBuiltins) {
> // Step #1: mark all target-independent builtins with their ID's.
> for (unsigned i = Builtin::NotBuiltin+1; i !=
> Builtin::FirstTSBuiltin; ++i)
> @@ -42,9 +46,6 @@
> (!NoBuiltins || !strchr(BuiltinInfo[i].Attributes, 'f')))
> Table.get(BuiltinInfo[i].Name).setBuiltinID(i);
>
> - // Get the target specific builtins from the target.
> - Target.getTargetBuiltins(TSRecords, NumTSRecords);
> -
> // Step #2: Register target-specific builtins.
> for (unsigned i = 0, e = NumTSRecords; i != e; ++i)
> if (!TSRecords[i].Suppressed &&
>
> Modified: cfe/trunk/lib/Lex/Preprocessor.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/Preprocessor.cpp?rev=73492&r1=73491&r2=73492&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- cfe/trunk/lib/Lex/Preprocessor.cpp (original)
> +++ cfe/trunk/lib/Lex/Preprocessor.cpp Tue Jun 16 11:18:48 2009
> @@ -51,7 +51,7 @@
> IdentifierInfoLookup* IILookup)
> : Diags(&diags), Features(opts),
> Target(target),FileMgr(Headers.getFileMgr()),
> SourceMgr(SM), HeaderInfo(Headers), Identifiers(opts, IILookup),
> - CurPPLexer(0), CurDirLookup(0), Callbacks(0) {
> + BuiltinInfo(Target), CurPPLexer(0), CurDirLookup(0),
> Callbacks(0) {
> ScratchBuf = new ScratchBuffer(SourceMgr);
> CounterValue = 0; // __COUNTER__ starts at 0.
>
>
> Modified: cfe/trunk/tools/clang-cc/clang-cc.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-cc/clang-cc.cpp?rev=73492&r1=73491&r2=73492&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- cfe/trunk/tools/clang-cc/clang-cc.cpp (original)
> +++ cfe/trunk/tools/clang-cc/clang-cc.cpp Tue Jun 16 11:18:48 2009
> @@ -2305,7 +2305,6 @@
>
> // Initialize builtin info.
> PP->getBuiltinInfo().InitializeBuiltins(PP-
> >getIdentifierTable(),
> - PP->getTargetInfo(),
> PP-
> >getLangOptions().NoBuiltin);
> }
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list