This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGe2fc85c69b3f: [clang][cli] Better defaults for MarshallingInfoString (authored by jansvoboda11).
Changed prior to commit: https://reviews.llvm.org/D84185?vs=279290&id=311510#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84185/new/ https://reviews.llvm.org/D84185 Files: clang/include/clang/Driver/Options.td clang/lib/Frontend/CompilerInvocation.cpp llvm/include/llvm/Option/OptParser.td Index: llvm/include/llvm/Option/OptParser.td =================================================================== --- llvm/include/llvm/Option/OptParser.td +++ llvm/include/llvm/Option/OptParser.td @@ -155,8 +155,11 @@ code DefaultValue = defaultvalue; } -class MarshallingInfoString<code keypath, code defaultvalue> - : MarshallingInfo<keypath, defaultvalue> {} +class MarshallingInfoString<code keypath, code defaultvalue="std::string()"> + : MarshallingInfo<keypath, defaultvalue> { + code Normalizer = "normalizeString"; + code Denormalizer = "denormalizeString"; +} class MarshallingInfoFlag<code keypath, code defaultvalue = "false"> : MarshallingInfo<keypath, defaultvalue> { @@ -189,7 +192,6 @@ class Denormalizer<code denormalizer> { code Denormalizer = denormalizer; } class NormalizedValuesScope<code scope> { code NormalizedValuesScope = scope; } class NormalizedValues<list<code> definitions> { list<code> NormalizedValues = definitions; } -class DenormalizeString { code Denormalizer = "denormalizeString"; } class AutoNormalizeEnum { code Normalizer = "normalizeSimpleEnum"; code Denormalizer = "denormalizeSimpleEnum"; Index: clang/lib/Frontend/CompilerInvocation.cpp =================================================================== --- clang/lib/Frontend/CompilerInvocation.cpp +++ clang/lib/Frontend/CompilerInvocation.cpp @@ -272,6 +272,15 @@ "the tablegen option description"); } +static Optional<std::string> normalizeString(OptSpecifier Opt, int TableIndex, + const ArgList &Args, + DiagnosticsEngine &Diags) { + auto *Arg = Args.getLastArg(Opt); + if (!Arg) + return None; + return std::string(Arg->getValue()); +} + static void denormalizeString(SmallVectorImpl<const char *> &Args, const char *Spelling, CompilerInvocation::StringAllocator SA, @@ -498,8 +507,6 @@ .Case("false", false) .Default(false); - Opts.DumpExplodedGraphTo = - std::string(Args.getLastArgValue(OPT_analyzer_dump_egraph)); Opts.AnalyzeSpecificFunction = std::string(Args.getLastArgValue(OPT_analyze_function)); Opts.maxBlockVisitOnPath = Index: clang/include/clang/Driver/Options.td =================================================================== --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -3933,7 +3933,7 @@ def triple : Separate<["-"], "triple">, HelpText<"Specify target triple (e.g. i686-apple-darwin9)">, MarshallingInfoString<"TargetOpts->Triple", "llvm::Triple::normalize(llvm::sys::getDefaultTargetTriple())">, - AlwaysEmit, Normalizer<"normalizeTriple">, DenormalizeString; + AlwaysEmit, Normalizer<"normalizeTriple">; def target_abi : Separate<["-"], "target-abi">, HelpText<"Target a particular ABI type">; def target_sdk_version_EQ : Joined<["-"], "target-sdk-version=">, @@ -3998,7 +3998,8 @@ HelpText<"Display exploded graph using GraphViz">, MarshallingInfoFlag<"AnalyzerOpts->visualizeExplodedGraphWithGraphViz">; def analyzer_dump_egraph : Separate<["-"], "analyzer-dump-egraph">, - HelpText<"Dump exploded graph to the specified file">; + HelpText<"Dump exploded graph to the specified file">, + MarshallingInfoString<"AnalyzerOpts->DumpExplodedGraphTo">; def analyzer_dump_egraph_EQ : Joined<["-"], "analyzer-dump-egraph=">, Alias<analyzer_dump_egraph>; def analyzer_inline_max_stack_depth : Separate<["-"], "analyzer-inline-max-stack-depth">,
Index: llvm/include/llvm/Option/OptParser.td =================================================================== --- llvm/include/llvm/Option/OptParser.td +++ llvm/include/llvm/Option/OptParser.td @@ -155,8 +155,11 @@ code DefaultValue = defaultvalue; } -class MarshallingInfoString<code keypath, code defaultvalue> - : MarshallingInfo<keypath, defaultvalue> {} +class MarshallingInfoString<code keypath, code defaultvalue="std::string()"> + : MarshallingInfo<keypath, defaultvalue> { + code Normalizer = "normalizeString"; + code Denormalizer = "denormalizeString"; +} class MarshallingInfoFlag<code keypath, code defaultvalue = "false"> : MarshallingInfo<keypath, defaultvalue> { @@ -189,7 +192,6 @@ class Denormalizer<code denormalizer> { code Denormalizer = denormalizer; } class NormalizedValuesScope<code scope> { code NormalizedValuesScope = scope; } class NormalizedValues<list<code> definitions> { list<code> NormalizedValues = definitions; } -class DenormalizeString { code Denormalizer = "denormalizeString"; } class AutoNormalizeEnum { code Normalizer = "normalizeSimpleEnum"; code Denormalizer = "denormalizeSimpleEnum"; Index: clang/lib/Frontend/CompilerInvocation.cpp =================================================================== --- clang/lib/Frontend/CompilerInvocation.cpp +++ clang/lib/Frontend/CompilerInvocation.cpp @@ -272,6 +272,15 @@ "the tablegen option description"); } +static Optional<std::string> normalizeString(OptSpecifier Opt, int TableIndex, + const ArgList &Args, + DiagnosticsEngine &Diags) { + auto *Arg = Args.getLastArg(Opt); + if (!Arg) + return None; + return std::string(Arg->getValue()); +} + static void denormalizeString(SmallVectorImpl<const char *> &Args, const char *Spelling, CompilerInvocation::StringAllocator SA, @@ -498,8 +507,6 @@ .Case("false", false) .Default(false); - Opts.DumpExplodedGraphTo = - std::string(Args.getLastArgValue(OPT_analyzer_dump_egraph)); Opts.AnalyzeSpecificFunction = std::string(Args.getLastArgValue(OPT_analyze_function)); Opts.maxBlockVisitOnPath = Index: clang/include/clang/Driver/Options.td =================================================================== --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -3933,7 +3933,7 @@ def triple : Separate<["-"], "triple">, HelpText<"Specify target triple (e.g. i686-apple-darwin9)">, MarshallingInfoString<"TargetOpts->Triple", "llvm::Triple::normalize(llvm::sys::getDefaultTargetTriple())">, - AlwaysEmit, Normalizer<"normalizeTriple">, DenormalizeString; + AlwaysEmit, Normalizer<"normalizeTriple">; def target_abi : Separate<["-"], "target-abi">, HelpText<"Target a particular ABI type">; def target_sdk_version_EQ : Joined<["-"], "target-sdk-version=">, @@ -3998,7 +3998,8 @@ HelpText<"Display exploded graph using GraphViz">, MarshallingInfoFlag<"AnalyzerOpts->visualizeExplodedGraphWithGraphViz">; def analyzer_dump_egraph : Separate<["-"], "analyzer-dump-egraph">, - HelpText<"Dump exploded graph to the specified file">; + HelpText<"Dump exploded graph to the specified file">, + MarshallingInfoString<"AnalyzerOpts->DumpExplodedGraphTo">; def analyzer_dump_egraph_EQ : Joined<["-"], "analyzer-dump-egraph=">, Alias<analyzer_dump_egraph>; def analyzer_inline_max_stack_depth : Separate<["-"], "analyzer-inline-max-stack-depth">,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits