[PATCH] D130620: Fix lack of cc1 flag in llvmcmd sections when assertions are enabled
Aiden Grossman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 28 17:11:53 PDT 2022
aidengrossman updated this revision to Diff 448477.
aidengrossman added a comment.
Rebased against main and adjusted unit tests to check directly
for the cc1 flag in CmdArgs which is directly consumed by the
bitcode writer while creating the .llvmcmd section. Also changed
the flags to better match what is already getting passed in.
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);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D130620.448477.patch
Type: text/x-patch
Size: 2093 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220729/be5d248d/attachment.bin>
More information about the cfe-commits
mailing list