This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGafb4efd3bcc6: Fix lack of cc1 flag in llvmcmd sections when assertions are enabled (authored by aidengrossman, committed by mtrofin).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D130620/new/ https://reviews.llvm.org/D130620 Files: clang/lib/Frontend/CompilerInvocation.cpp clang/unittests/Frontend/CompilerInvocationTest.cpp Index: clang/unittests/Frontend/CompilerInvocationTest.cpp =================================================================== --- clang/unittests/Frontend/CompilerInvocationTest.cpp +++ clang/unittests/Frontend/CompilerInvocationTest.cpp @@ -23,6 +23,7 @@ using ::testing::Contains; using ::testing::HasSubstr; using ::testing::StrEq; +using ::testing::StartsWith; namespace { class CommandLineTest : public ::testing::Test { @@ -145,6 +146,26 @@ ASSERT_THAT(GeneratedArgs, Contains(StrEq("-fno-temp-file"))); } +TEST_F(CommandLineTest, CC1FlagPresentWhenDoingRoundTrip) { + const char *Args[] = {"-cc1", "-round-trip-args"}; + + ASSERT_TRUE(CompilerInvocation::CreateFromArgs(Invocation, Args, *Diags)); + + ASSERT_THAT(std::string(Invocation.getCodeGenOpts().CmdArgs.begin(), + Invocation.getCodeGenOpts().CmdArgs.end()), + StartsWith("-cc1")); +} + +TEST_F(CommandLineTest, CC1FlagPresentWhenNotDoingRoundTrip) { + const char *Args[] = {"-cc1", "-no-round-trip-args"}; + + ASSERT_TRUE(CompilerInvocation::CreateFromArgs(Invocation, Args, *Diags)); + + ASSERT_THAT(std::string(Invocation.getCodeGenOpts().CmdArgs.begin(), + Invocation.getCodeGenOpts().CmdArgs.end()), + StartsWith("-cc1")); +} + TEST_F(CommandLineTest, BoolOptionDefaultTrueSingleFlagUnknownPresent) { const char *Args[] = {"-ftemp-file"}; Index: clang/lib/Frontend/CompilerInvocation.cpp =================================================================== --- clang/lib/Frontend/CompilerInvocation.cpp +++ clang/lib/Frontend/CompilerInvocation.cpp @@ -4544,7 +4544,10 @@ return CreateFromArgsImpl(Invocation, CommandLineArgs, Diags, Argv0); }, [](CompilerInvocation &Invocation, SmallVectorImpl<const char *> &Args, - StringAllocator SA) { Invocation.generateCC1CommandLine(Args, SA); }, + StringAllocator SA) { + Args.push_back("-cc1"); + Invocation.generateCC1CommandLine(Args, SA); + }, Invocation, DummyInvocation, CommandLineArgs, Diags, Argv0); }
Index: clang/unittests/Frontend/CompilerInvocationTest.cpp =================================================================== --- clang/unittests/Frontend/CompilerInvocationTest.cpp +++ clang/unittests/Frontend/CompilerInvocationTest.cpp @@ -23,6 +23,7 @@ using ::testing::Contains; using ::testing::HasSubstr; using ::testing::StrEq; +using ::testing::StartsWith; namespace { class CommandLineTest : public ::testing::Test { @@ -145,6 +146,26 @@ ASSERT_THAT(GeneratedArgs, Contains(StrEq("-fno-temp-file"))); } +TEST_F(CommandLineTest, CC1FlagPresentWhenDoingRoundTrip) { + const char *Args[] = {"-cc1", "-round-trip-args"}; + + ASSERT_TRUE(CompilerInvocation::CreateFromArgs(Invocation, Args, *Diags)); + + ASSERT_THAT(std::string(Invocation.getCodeGenOpts().CmdArgs.begin(), + Invocation.getCodeGenOpts().CmdArgs.end()), + StartsWith("-cc1")); +} + +TEST_F(CommandLineTest, CC1FlagPresentWhenNotDoingRoundTrip) { + const char *Args[] = {"-cc1", "-no-round-trip-args"}; + + ASSERT_TRUE(CompilerInvocation::CreateFromArgs(Invocation, Args, *Diags)); + + ASSERT_THAT(std::string(Invocation.getCodeGenOpts().CmdArgs.begin(), + Invocation.getCodeGenOpts().CmdArgs.end()), + StartsWith("-cc1")); +} + TEST_F(CommandLineTest, BoolOptionDefaultTrueSingleFlagUnknownPresent) { const char *Args[] = {"-ftemp-file"}; Index: clang/lib/Frontend/CompilerInvocation.cpp =================================================================== --- clang/lib/Frontend/CompilerInvocation.cpp +++ clang/lib/Frontend/CompilerInvocation.cpp @@ -4544,7 +4544,10 @@ return CreateFromArgsImpl(Invocation, CommandLineArgs, Diags, Argv0); }, [](CompilerInvocation &Invocation, SmallVectorImpl<const char *> &Args, - StringAllocator SA) { Invocation.generateCC1CommandLine(Args, SA); }, + StringAllocator SA) { + Args.push_back("-cc1"); + Invocation.generateCC1CommandLine(Args, SA); + }, Invocation, DummyInvocation, CommandLineArgs, Diags, Argv0); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits