diff --git a/clang/include/clang/Basic/CodeGenOptions.h b/clang/include/clang/Basic/CodeGenOptions.h --- a/clang/include/clang/Basic/CodeGenOptions.h +++ b/clang/include/clang/Basic/CodeGenOptions.h @@ -30,6 +30,8 @@ /// Bitfields of CodeGenOptions, split out from CodeGenOptions to ensure /// that this large collection of bitfields is a trivial class type. class CodeGenOptionsBase { + friend class CompilerInvocation; + public: #define CODEGENOPT(Name, Bits, Default) unsigned Name : Bits; #define ENUM_CODEGENOPT(Name, Type, Bits, Default) diff --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td b/clang/include/clang/Basic/DiagnosticDriverKinds.td --- a/clang/include/clang/Basic/DiagnosticDriverKinds.td +++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td @@ -77,8 +77,6 @@ "invalid thread model '%0' in '%1' for this target">; def err_drv_invalid_linker_name : Error< "invalid linker name in argument '%0'">; -def err_drv_invalid_pgo_instrumentor : Error< - "invalid PGO instrumentor in argument '%0'">; def err_drv_invalid_rtlib_name : Error< "invalid runtime library name in argument '%0'">; def err_drv_unsupported_rtlib_for_platform : Error< diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -699,6 +699,19 @@ Group, HelpText<"Enable sanitizer statistics gathering.">, MarshallingInfoFlag<"CodeGenOpts.SanitizeStats", "false">; +def fsanitize_memory_track_origins_EQ : Joined<["-"], "fsanitize-memory-track-origins=">, + Group, HelpText<"Enable origins tracking in MemorySanitizer">, + MarshallingInfoStringInt<"CodeGenOpts.SanitizeMemoryTrackOrigins">; +def fsanitize_undefined_strip_path_components_EQ : Joined<["-"], "fsanitize-undefined-strip-path-components=">, + Group, MetaVarName<"">, + HelpText<"Strip (or keep only, if negative) a given number of path components " + "when emitting check metadata.">, + MarshallingInfoStringInt<"CodeGenOpts.EmitCheckPathComponentsToStrip", "0", "int">; +def fthin_link_bitcode_EQ : Joined<["-"], "fthin-link-bitcode=">, + Group, + HelpText<"Write minimized bitcode to for the ThinLTO thin link only">, + MarshallingInfoString<"CodeGenOpts.ThinLinkBitcodeFile">; + } // Flags = [CC1Option, CoreOption] def fstrict_float_cast_overflow : Flag<["-"], "fstrict-float-cast-overflow">, Group, @@ -878,6 +891,77 @@ MarshallingInfoFlag<"CodeGenOpts.InstrumentForProfiling", "false">; defm integrated_as : OptOutFFlag<"integrated-as", "Enable", "Disable", " the integrated assembler", [], "CodeGenOpts.DisableIntegratedAS">; +def fembed_bitcode_EQ : Joined<["-"], "fembed-bitcode=">, + Group, Flags<[DriverOption, CC1Option, CC1AsOption]>, MetaVarName<"