Pierre updated this revision to Diff 196590. Pierre added a comment. Forgot to update one argument
CHANGES SINCE LAST ACTION https://reviews.llvm.org/D60764/new/ https://reviews.llvm.org/D60764 Files: clang/include/clang/Basic/LangOptions.def clang/include/clang/Driver/CC1Options.td clang/lib/Frontend/CompilerInvocation.cpp clang/lib/Sema/SemaLookup.cpp Index: clang/lib/Sema/SemaLookup.cpp =================================================================== --- clang/lib/Sema/SemaLookup.cpp +++ clang/lib/Sema/SemaLookup.cpp @@ -820,7 +820,7 @@ } // Check if this is an OpenCL Builtin, and if so, insert the declarations. - if (S.getLangOpts().OpenCL) { + if (S.getLangOpts().OpenCL && S.getLangOpts().AddOpenCLBuiltins) { auto Index = isOpenCLBuiltin(II->getName()); if (Index.first) { InsertBuiltinDeclarations(S, R, II, Index.first, Index.second); Index: clang/lib/Frontend/CompilerInvocation.cpp =================================================================== --- clang/lib/Frontend/CompilerInvocation.cpp +++ clang/lib/Frontend/CompilerInvocation.cpp @@ -2152,7 +2152,7 @@ Opts.NativeHalfArgsAndReturns = 1; Opts.OpenCLCPlusPlus = Opts.CPlusPlus; // Include default header file for OpenCL. - if (Opts.IncludeDefaultHeader) { + if (Opts.IncludeDefaultHeader && !Opts.AddOpenCLBuiltins) { PPOpts.Includes.push_back("opencl-c.h"); } } @@ -2355,6 +2355,7 @@ } Opts.IncludeDefaultHeader = Args.hasArg(OPT_finclude_default_header); + Opts.AddOpenCLBuiltins = Args.hasArg(OPT_fadd_opencl_builtins); llvm::Triple T(TargetOpts.Triple); CompilerInvocation::setLangDefaults(Opts, IK, T, PPOpts, LangStd); Index: clang/include/clang/Driver/CC1Options.td =================================================================== --- clang/include/clang/Driver/CC1Options.td +++ clang/include/clang/Driver/CC1Options.td @@ -751,7 +751,9 @@ def fdefault_calling_conv_EQ : Joined<["-"], "fdefault-calling-conv=">, HelpText<"Set default calling convention">, Values<"cdecl,fastcall,stdcall,vectorcall,regcall">; def finclude_default_header : Flag<["-"], "finclude-default-header">, - HelpText<"Include the default header file for OpenCL">; + HelpText<"Include default header file containing OpenCL builtin functions">; +def fadd_opencl_builtins: Flag<["-"], "fadd-opencl-builtins">, + HelpText<"Add OpenCL builtin function declarations automatically">; def fpreserve_vec3_type : Flag<["-"], "fpreserve-vec3-type">, HelpText<"Preserve 3-component vector type">; def fwchar_type_EQ : Joined<["-"], "fwchar-type=">, Index: clang/include/clang/Basic/LangOptions.def =================================================================== --- clang/include/clang/Basic/LangOptions.def +++ clang/include/clang/Basic/LangOptions.def @@ -254,7 +254,8 @@ LANGOPT(CFProtectionBranch , 1, 0, "Control-Flow Branch Protection enabled") LANGOPT(FakeAddressSpaceMap , 1, 0, "OpenCL fake address space map") ENUM_LANGOPT(AddressSpaceMapMangling , AddrSpaceMapMangling, 2, ASMM_Target, "OpenCL address space map mangling mode") -LANGOPT(IncludeDefaultHeader, 1, 0, "Include default header file for OpenCL") +LANGOPT(IncludeDefaultHeader, 1, 0, "Include default header file containing OpenCL builtin functions") +LANGOPT(AddOpenCLBuiltins, 1, 0, "Add OpenCL builtin function declarations automatically") BENIGN_LANGOPT(DelayedTemplateParsing , 1, 0, "delayed template parsing") LANGOPT(BlocksRuntimeOptional , 1, 0, "optional blocks runtime") LANGOPT(
Index: clang/lib/Sema/SemaLookup.cpp =================================================================== --- clang/lib/Sema/SemaLookup.cpp +++ clang/lib/Sema/SemaLookup.cpp @@ -820,7 +820,7 @@ } // Check if this is an OpenCL Builtin, and if so, insert the declarations. - if (S.getLangOpts().OpenCL) { + if (S.getLangOpts().OpenCL && S.getLangOpts().AddOpenCLBuiltins) { auto Index = isOpenCLBuiltin(II->getName()); if (Index.first) { InsertBuiltinDeclarations(S, R, II, Index.first, Index.second); Index: clang/lib/Frontend/CompilerInvocation.cpp =================================================================== --- clang/lib/Frontend/CompilerInvocation.cpp +++ clang/lib/Frontend/CompilerInvocation.cpp @@ -2152,7 +2152,7 @@ Opts.NativeHalfArgsAndReturns = 1; Opts.OpenCLCPlusPlus = Opts.CPlusPlus; // Include default header file for OpenCL. - if (Opts.IncludeDefaultHeader) { + if (Opts.IncludeDefaultHeader && !Opts.AddOpenCLBuiltins) { PPOpts.Includes.push_back("opencl-c.h"); } } @@ -2355,6 +2355,7 @@ } Opts.IncludeDefaultHeader = Args.hasArg(OPT_finclude_default_header); + Opts.AddOpenCLBuiltins = Args.hasArg(OPT_fadd_opencl_builtins); llvm::Triple T(TargetOpts.Triple); CompilerInvocation::setLangDefaults(Opts, IK, T, PPOpts, LangStd); Index: clang/include/clang/Driver/CC1Options.td =================================================================== --- clang/include/clang/Driver/CC1Options.td +++ clang/include/clang/Driver/CC1Options.td @@ -751,7 +751,9 @@ def fdefault_calling_conv_EQ : Joined<["-"], "fdefault-calling-conv=">, HelpText<"Set default calling convention">, Values<"cdecl,fastcall,stdcall,vectorcall,regcall">; def finclude_default_header : Flag<["-"], "finclude-default-header">, - HelpText<"Include the default header file for OpenCL">; + HelpText<"Include default header file containing OpenCL builtin functions">; +def fadd_opencl_builtins: Flag<["-"], "fadd-opencl-builtins">, + HelpText<"Add OpenCL builtin function declarations automatically">; def fpreserve_vec3_type : Flag<["-"], "fpreserve-vec3-type">, HelpText<"Preserve 3-component vector type">; def fwchar_type_EQ : Joined<["-"], "fwchar-type=">, Index: clang/include/clang/Basic/LangOptions.def =================================================================== --- clang/include/clang/Basic/LangOptions.def +++ clang/include/clang/Basic/LangOptions.def @@ -254,7 +254,8 @@ LANGOPT(CFProtectionBranch , 1, 0, "Control-Flow Branch Protection enabled") LANGOPT(FakeAddressSpaceMap , 1, 0, "OpenCL fake address space map") ENUM_LANGOPT(AddressSpaceMapMangling , AddrSpaceMapMangling, 2, ASMM_Target, "OpenCL address space map mangling mode") -LANGOPT(IncludeDefaultHeader, 1, 0, "Include default header file for OpenCL") +LANGOPT(IncludeDefaultHeader, 1, 0, "Include default header file containing OpenCL builtin functions") +LANGOPT(AddOpenCLBuiltins, 1, 0, "Add OpenCL builtin function declarations automatically") BENIGN_LANGOPT(DelayedTemplateParsing , 1, 0, "delayed template parsing") LANGOPT(BlocksRuntimeOptional , 1, 0, "optional blocks runtime") LANGOPT(
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits