Open
Description
One of our internal tests started hitting an assertion failure which I was able to bisect back to commit 4d60c6d. Here is the reduced test case:
#define a(b) safe_##b
struct c {
short d
};
char k;
int e;
volatile struct c f;
void a(add_func_int16_t_s_s)();
void g(char h) {
int i;
short j = k = 7;
for (; k; safe_add_func_int16_t_s_s()) {
for (; j > 1; j = -1) {
for (; i; i++)
;
e = h;
f;
}
if (h)
break;
}
}
When built with optimizations (-O3
) and a compiler that includes 4d60c6d, we hit an assertion failure:
$ ~/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang -c -O3 repro.c
repro.c:3:10: warning: expected ';' at end of declaration list
3 | short d
| ^
| ;
clang: /home/dyung/src/upstream/llvm_clean_git/llvm/lib/Analysis/MemorySSA.cpp:1840: void llvm::MemorySSA::removeFromLookups(llvm::MemoryAccess*): Assertion `MA->use_empty() && "Trying to remove memory access that still has uses"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang -c -O3 repro.c
1. <eof> parser at end of file
2. Optimizer
3. Running pass "require<globals-aa>,function(invalidate<aa>),require<profile-summary>,cgscc(devirt<4>(inline,function-attrs<skip-non-recursive-function-attrs>,argpromotion,openmp-opt-cgscc,function<eager-inv;no-rerun>(sroa<modify-cfg>,early-cse<memssa>,speculative-execution<only-if-div
ergent-target>,jump-threading,correlated-propagation,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-spec
ulate-unpredictables>,instcombine<max-iterations=1;no-verify-fixpoint>,aggressive-instcombine,libcalls-shrinkwrap,tailcallelim,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-f
aulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,reassociate,constraint-elimination,loop-mssa(loop-instsimplify,loop-simplifycfg,licm<no-allowspeculation>,loop-rotate<header-duplication;no-prepare-for-lto>,licm<allowspeculation>,simple-loop-unsw
itch<nontrivial;trivial>),simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,instc
ombine<max-iterations=1;no-verify-fixpoint>,loop(loop-idiom,indvars,extra-simple-loop-unswitch-passes,loop-deletion,loop-unroll-full),sroa<modify-cfg>,vector-combine,mldst-motion<no-split-footer-bb>,gvn<>,sccp,bdce,instcombine<max-iterations=1;no-verify-fixpoint>,jump-threading,correlated-pr
opagation,adce,memcpyopt,dse,move-auto-init,loop-mssa(licm<allowspeculation>),coro-elide,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;sink-common-insts;speculate-block
s;simplify-cond-branch;no-speculate-unpredictables>,instcombine<max-iterations=1;no-verify-fixpoint>),function-attrs,function(require<should-not-run-function-passes>),coro-split,coro-annotation-elide)),function(invalidate<should-not-run-function-passes>),cgscc(devirt<4>())" on module "repro.
c"
4. Running pass "cgscc(devirt<4>(inline,function-attrs<skip-non-recursive-function-attrs>,argpromotion,openmp-opt-cgscc,function<eager-inv;no-rerun>(sroa<modify-cfg>,early-cse<memssa>,speculative-execution<only-if-divergent-target>,jump-threading,correlated-propagation,simplifycfg<bonus
-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,instcombine<max-iterations=1;no-verify-fixpoint>
,aggressive-instcombine,libcalls-shrinkwrap,tailcallelim,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-
speculate-unpredictables>,reassociate,constraint-elimination,loop-mssa(loop-instsimplify,loop-simplifycfg,licm<no-allowspeculation>,loop-rotate<header-duplication;no-prepare-for-lto>,licm<allowspeculation>,simple-loop-unswitch<nontrivial;trivial>),simplifycfg<bonus-inst-threshold=1;no-forwar
d-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,instcombine<max-iterations=1;no-verify-fixpoint>,loop(loop-idiom,indvars,ex
tra-simple-loop-unswitch-passes,loop-deletion,loop-unroll-full),sroa<modify-cfg>,vector-combine,mldst-motion<no-split-footer-bb>,gvn<>,sccp,bdce,instcombine<max-iterations=1;no-verify-fixpoint>,jump-threading,correlated-propagation,adce,memcpyopt,dse,move-auto-init,loop-mssa(licm<allowspecul
ation>),coro-elide,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,instcombine<max-it
erations=1;no-verify-fixpoint>),function-attrs,function(require<should-not-run-function-passes>),coro-split,coro-annotation-elide))" on module "repro.c"
5. Running pass "loop-mssa(loop-instsimplify,loop-simplifycfg,licm<no-allowspeculation>,loop-rotate<header-duplication;no-prepare-for-lto>,licm<allowspeculation>,simple-loop-unswitch<nontrivial;trivial>)" on function "g"
#0 0x000055e1a9a4be2f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x22cae2f)
#1 0x000055e1a9a49924 llvm::sys::CleanupOnSignal(unsigned long) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x22c8924)
#2 0x000055e1a9990ed8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007f8d4a14d420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x00007f8d49c1a00b raise /build/glibc-FcRMwW/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#5 0x00007f8d49bf9859 abort /build/glibc-FcRMwW/glibc-2.31/stdlib/abort.c:81:7
#6 0x00007f8d49bf9729 get_sysdep_segment_value /build/glibc-FcRMwW/glibc-2.31/intl/loadmsgcat.c:509:8
#7 0x00007f8d49bf9729 _nl_load_domain /build/glibc-FcRMwW/glibc-2.31/intl/loadmsgcat.c:970:34
#8 0x00007f8d49c0afd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#9 0x000055e1a8c2f45a llvm::MemorySSA::removeFromLookups(llvm::MemoryAccess*) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x14ae45a)
#10 0x000055e1a8a8031c llvm::MemorySSAUpdater::removeBlocks(llvm::SmallSetVector<llvm::BasicBlock*, 8u> const&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x12ff31c)
#11 0x000055e1adb97362 deleteDeadBlocksFromLoop(llvm::Loop&, llvm::SmallVectorImpl<llvm::BasicBlock*>&, llvm::DominatorTree&, llvm::LoopInfo&, llvm::MemorySSAUpdater*, llvm::ScalarEvolution*, llvm::LPMUpdater&) SimpleLoopUnswitch.cpp:0:0
#12 0x000055e1adba09e9 unswitchNontrivialInvariants(llvm::Loop&, llvm::Instruction&, llvm::ArrayRef<llvm::Value*>, llvm::IVConditionInfo&, llvm::DominatorTree&, llvm::LoopInfo&, llvm::AssumptionCache&, llvm::ScalarEvolution*, llvm::MemorySSAUpdater*, llvm::LPMUpdater&, bool, bool) SimpleLoop
Unswitch.cpp:0:0
#13 0x000055e1adba30ba unswitchBestCondition(llvm::Loop&, llvm::DominatorTree&, llvm::LoopInfo&, llvm::AssumptionCache&, llvm::AAResults&, llvm::TargetTransformInfo&, llvm::ScalarEvolution*, llvm::MemorySSAUpdater*, llvm::LPMUpdater&) SimpleLoopUnswitch.cpp:0:0
#14 0x000055e1adba6779 llvm::SimpleLoopUnswitchPass::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x6425779)
#15 0x000055e1aafce3d6 llvm::detail::PassModel<llvm::Loop, llvm::SimpleLoopUnswitchPass, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysi
sResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x384d3d6)
#16 0x000055e1a985180f std::optional<llvm::PreservedAnalyses> llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runSinglePass<llvm::Loop, std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, std::default_delete<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>>>(llvm::Loop&, std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, std::default_delete<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>>&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&, llvm::PassInstrumentation&) (/home/dyung/src/u
pstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x20d080f)
#17 0x000055e1a98519ce llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runWithoutLoopNestPasses(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, ll
vm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x20d09ce)
#18 0x000055e1a9852d3c llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnaly
sisResults&, llvm::LPMUpdater&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x20d1d3c)
#19 0x000055e1a98538a0 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x20d28a0)
#20 0x000055e1a8584986 llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0xe03986)
#21 0x000055e1a94e6229 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x1d65229)
#22 0x000055e1a8584256 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8
780e5ba23fcd-linux/bin/clang+0xe03256)
#23 0x000055e1add0a93a llvm::CGSCCToFunctionPassAdaptor::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0
x658993a)
#24 0x000055e1aafcaf56 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::CGSCCToFunctionPassAdaptor, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x3849f56)
#25 0x000055e1add02a6a llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, ll
vm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x6581a6a)
#26 0x000055e1aafcaeb6 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin
/clang+0x3849eb6)
#27 0x000055e1add0757d llvm::DevirtSCCRepeatedPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x6586
57d)
#28 0x000055e1aafcaf06 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::DevirtSCCRepeatedPass, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x3849f06)
#29 0x000055e1add059e8 llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x65849e8)
#30 0x000055e1aafcae66 llvm::detail::PassModel<llvm::Module, llvm::ModuleToPostOrderCGSCCPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x3849e66)
#31 0x000055e1a94e44c1 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x1d634c1)
#32 0x000055e1ab2d0ab8 llvm::ModuleInlinerWrapperPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x3b4fab8)
#33 0x000055e1aafca436 llvm::detail::PassModel<llvm::Module, llvm::ModuleInlinerWrapperPass, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x3849436)
#34 0x000055e1a94e44c1 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x1d634c1)
#35 0x000055e1a9ce9b1b (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&, clang::B
ackendConsumer*) BackendUtil.cpp:0:0
#36 0x000055e1a9cecadf clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, cla
ng::BackendConsumer*) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x256badf)
#37 0x000055e1aa411100 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x2c90100)
#38 0x000055e1abf16b2c clang::ParseAST(clang::Sema&, bool, bool) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x4795b2c)
#39 0x000055e1aa411528 clang::CodeGenAction::ExecuteAction() (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x2c90528)
#40 0x000055e1aa725d59 clang::FrontendAction::Execute() (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x2fa4d59)
#41 0x000055e1aa6a2aae clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x2f21aae)
#42 0x000055e1aa820891 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x309f891)
#43 0x000055e1a8501261 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0xd80261)
#44 0x000055e1a84f747a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#45 0x000055e1aa47b0ed void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#46 0x000055e1a99913c0 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x22103c0)
#47 0x000055e1aa47b72f clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#48 0x000055e1aa43c0b4 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x2cbb0b4)
#49 0x000055e1aa43d16e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x2cbc16e)
#50 0x000055e1aa445815 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0x2cc4815)
#51 0x000055e1a84fd279 clang_main(int, char**, llvm::ToolContext const&) (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0xd7c279)
#52 0x000055e1a83ef49b main (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0xc6e49b)
#53 0x00007f8d49bfb083 __libc_start_main /build/glibc-FcRMwW/glibc-2.31/csu/../csu/libc-start.c:342:3
#54 0x000055e1a84f6f0e _start (/home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin/clang+0xd75f0e)
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 21.0.0 (https://github.com/llvm/llvm-project.git 4d60c6d9b2c863d773aac9b59af8780e5ba23fcd)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/dyung/src/upstream/4d60c6d9b2c863d773aac9b59af8780e5ba23fcd-linux/bin
Build config: +assertions
When compiled using a compiler built from the previous commit (9383fb2) the assertion failure is not present.
$ ~/src/upstream/9383fb23e18bb983d0024fb956a0a724ef9eb03d-linux/bin/clang -c -O3 repro.c
repro.c:3:10: warning: expected ';' at end of declaration list
3 | short d | ^
| ;
1 warning generated.