LLVM Bugzilla is read-only and represents the historical archive of all LLVM issues filled before November 26, 2021. Use github to submit LLVM bugs

Bug 48713 - Assertion `hiBit <= BitWidth && "hiBit out of range"' failed
Summary: Assertion `hiBit <= BitWidth && "hiBit out of range"' failed
Status: NEW
Alias: None
Product: libraries
Classification: Unclassified
Component: Global Analyses (show other bugs)
Version: trunk
Hardware: PC All
: P enhancement
Assignee: Unassigned LLVM Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-01-11 06:36 PST by Ryan Mansfield
Modified: 2021-06-29 11:10 PDT (History)
4 users (show)

See Also:
Fixed By Commit(s):


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Mansfield 2021-01-11 06:36:09 PST
$ cat ~/t.i
void *a(long t) __attribute__((__alloc_align__(1))); 
void *a(long t) { a(0) == 0; }


$  ./bin/clang -O1 ~/t.i
/home/ryan_mansfield/t.i:2:21: warning: requested alignment is not a power of 2 [-Wnon-power-of-two-alignment]
void *a(long t) { a(0) == 0; }
                    ^
/home/ryan_mansfield/t.i:2:24: warning: equality comparison result unused [-Wunused-comparison]
void *a(long t) { a(0) == 0; }
                  ~~~~~^~~~
/home/ryan_mansfield/t.i:2:30: warning: non-void function does not return a value [-Wreturn-type]
void *a(long t) { a(0) == 0; }
                             ^
clang-12: /home/ryan_mansfield/llvm/llvm-project/llvm/include/llvm/ADT/APInt.h:1482: void llvm::APInt::setBits(unsigned int, unsigned int): Assertion `hiBit <= BitWidth && "hiBit out of range"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /home/ryan_mansfield/llvm/llvm-project/build/bin/clang-12 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj --mrelax-relocations -disable-free -main-file-name t.i -mrelocation-model static -mframe-pointer=none -fmath-errno -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -tune-cpu generic -fno-split-dwarf-inlining -debugger-tuning=gdb -resource-dir /home/ryan_mansfield/llvm/llvm-project/build/lib/clang/12.0.0 -O1 -fdebug-compilation-dir /home/ryan_mansfield/llvm/llvm-project/build -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -faddrsig -o /tmp/t-dad038.o -x cpp-output /home/ryan_mansfield/t.i
1.	<eof> parser at end of file
2.	Per-function optimization
3.	Running pass 'Early CSE' on function '@a'
 #0 0x0000555559ed013e llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:0
 #1 0x0000555559ed01f5 PrintStackTraceSignalHandler(void*) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:0
 #2 0x0000555559ecdeb9 llvm::sys::RunSignalHandlers() /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Support/Signals.cpp:71:0
 #3 0x0000555559ecfabf SignalHandler(int) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:0
 #4 0x00007ffff7bc6980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007ffff6877fb7 raise /build/glibc-S7xCS9/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007ffff6879921 abort /build/glibc-S7xCS9/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00007ffff686948a __assert_fail_base /build/glibc-S7xCS9/glibc-2.27/assert/assert.c:89:0
 #8 0x00007ffff6869502 (/lib/x86_64-linux-gnu/libc.so.6+0x30502)
 #9 0x0000555557f82b8f llvm::APInt::setBits(unsigned int, unsigned int) /home/ryan_mansfield/llvm/llvm-project/llvm/include/llvm/ADT/APInt.h:1483:0
#10 0x0000555557ffa959 llvm::APInt::setLowBits(unsigned int) /home/ryan_mansfield/llvm/llvm-project/llvm/include/llvm/ADT/APInt.h:1506:0
#11 0x0000555558c3ad14 computeKnownBitsFromAssume(llvm::Value const*, llvm::KnownBits&, unsigned int, (anonymous namespace)::Query const&) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Analysis/ValueTracking.cpp:676:0
#12 0x0000555558c41e05 computeKnownBits(llvm::Value const*, llvm::APInt const&, llvm::KnownBits&, unsigned int, (anonymous namespace)::Query const&) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Analysis/ValueTracking.cpp:1904:0
#13 0x0000555558c450ff isKnownNonZero(llvm::Value const*, llvm::APInt const&, unsigned int, (anonymous namespace)::Query const&) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Analysis/ValueTracking.cpp:2470:0
#14 0x0000555558c45202 isKnownNonZero(llvm::Value const*, unsigned int, (anonymous namespace)::Query const&) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Analysis/ValueTracking.cpp:2482:0
#15 0x0000555558c393eb llvm::isKnownNonZero(llvm::Value const*, llvm::DataLayout const&, unsigned int, llvm::AssumptionCache*, llvm::Instruction const*, llvm::DominatorTree const*, bool) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Analysis/ValueTracking.cpp:322:0
#16 0x0000555558cfb1fc simplifyICmpWithZero(llvm::CmpInst::Predicate, llvm::Value*, llvm::Value*, llvm::SimplifyQuery const&) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Analysis/InstructionSimplify.cpp:2709:0
#17 0x0000555558cfe6b7 SimplifyICmpInst(unsigned int, llvm::Value*, llvm::Value*, llvm::SimplifyQuery const&, unsigned int) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Analysis/InstructionSimplify.cpp:3352:0
#18 0x0000555558cffc67 llvm::SimplifyICmpInst(unsigned int, llvm::Value*, llvm::Value*, llvm::SimplifyQuery const&) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Analysis/InstructionSimplify.cpp:3633:0
#19 0x0000555558d09193 llvm::SimplifyInstruction(llvm::Instruction*, llvm::SimplifyQuery const&, llvm::OptimizationRemarkEmitter*) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Analysis/InstructionSimplify.cpp:5809:0
#20 0x0000555559b73ea2 (anonymous namespace)::EarlyCSE::processNode(llvm::DomTreeNodeBase<llvm::BasicBlock>*) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Transforms/Scalar/EarlyCSE.cpp:1301:0
#21 0x0000555559b75127 (anonymous namespace)::EarlyCSE::run() /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Transforms/Scalar/EarlyCSE.cpp:1576:0
#22 0x0000555559b7c9af (anonymous namespace)::EarlyCSELegacyCommonPass<false>::runOnFunction(llvm::Function&) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/Transforms/Scalar/EarlyCSE.cpp:1653:0
#23 0x0000555559578eb8 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1440:0
#24 0x0000555559574062 llvm::legacy::FunctionPassManagerImpl::run(llvm::Function&) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:367:0
#25 0x0000555559578a36 llvm::legacy::FunctionPassManager::run(llvm::Function&) /home/ryan_mansfield/llvm/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1358:0
#26 0x000055555a294a16 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp:1004:0
#27 0x000055555a298d79 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp:1596:0
#28 0x000055555b502078 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:344:0
#29 0x000055555d1037e6 clang::ParseAST(clang::Sema&, bool, bool) /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/lib/Parse/ParseAST.cpp:178:0
#30 0x000055555ab7f571 clang::ASTFrontendAction::ExecuteAction() /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:1056:0
#31 0x000055555b4feac0 clang::CodeGenAction::ExecuteAction() /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:1083:0
#32 0x000055555ab7ee3a clang::FrontendAction::Execute() /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:953:0
#33 0x000055555aad820a clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp:957:0
#34 0x000055555ad0f412 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:278:0
#35 0x0000555557e41f65 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/tools/driver/cc1_main.cpp:240:0
#36 0x0000555557e36666 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/tools/driver/driver.cpp:330:0
#37 0x0000555557e36e38 main /home/ryan_mansfield/llvm/llvm-project/llvm/tools/clang/tools/driver/driver.cpp:407:0
#38 0x00007ffff685abf7 __libc_start_main /build/glibc-S7xCS9/glibc-2.27/csu/../csu/libc-start.c:344:0
#39 0x0000555557e34cea _start (/home/ryan_mansfield/llvm/llvm-project/build/bin/clang-12+0x28e0cea)
clang-12: error: unable to execute command: Aborted (core dumped)
clang-12: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 12.0.0 (https://github.com/llvm/llvm-project.git 4c372a35cd892c0847da45540057447633a31d99)
Target: x86_64-unknown-linux-gnu
Thread model: posix

This appears after the following commit.


commit 22e4346e054a4474a68fd293324db295fffed34c (HEAD -> master)
Author: Shimin Cui <scui@ca.ibm.com>
Date:   Tue Oct 27 09:49:41 2020 +0000

    [ValueTracking] Add tracking of the alignment assume bundle
    
    This patch is to add the support of the value tracking of the alignment assume bundle.
    
    Reviewed By: jdoerfert
    
    Differential Revision: https://reviews.llvm.org/D88669


The following avoids the assertion.

diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 1c75c5fbd0db..1b7e95101b83 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -666,7 +666,8 @@ static void computeKnownBitsFromAssume(const Value *V, KnownBits &Known,
   if (V->getType()->isPointerTy()) {
     if (RetainedKnowledge RK = getKnowledgeValidInContext(
             V, {Attribute::Alignment}, Q.CxtI, Q.DT, Q.AC)) {
-      Known.Zero.setLowBits(Log2_32(RK.ArgValue));
+      if (RK.ArgValue)
+        Known.Zero.setLowBits(Log2_32(RK.ArgValue));
     }
   }
Comment 1 Sanjay Patel 2021-01-11 09:21:44 PST
Your patch seems right to me - we have to guard against "align 0" because the LangRef says:
"if the alignment is set to zero, the alignment of the function is set by the target to whatever it feels convenient"

Do you want to post a patch on Phabricator?

Here's a reduced IR testcase that fails with "opt -instsimplify":

define i8* @PR48713() {
  %call = call i8* @a()
  call void @llvm.assume(i1 true) [ "align"(i8* %call, i64 0) ]
  %cmp = icmp eq i8* %call, null
  %conv = zext i1 %cmp to i32
  ret i8* null
}

declare void @llvm.assume(i1 noundef)
Comment 2 Sanjay Patel 2021-01-11 09:24:33 PST
(In reply to Sanjay Patel from comment #1)
> define i8* @PR48713() {
>   %call = call i8* @a()
>   call void @llvm.assume(i1 true) [ "align"(i8* %call, i64 0) ]
>   %cmp = icmp eq i8* %call, null
>   %conv = zext i1 %cmp to i32
>   ret i8* null
> }
> 
> declare void @llvm.assume(i1 noundef)

Forgot to update the function name in the call instruction:

define i8* @PR48713() {
  %call = call i8* @PR48713()
  call void @llvm.assume(i1 true) [ "align"(i8* %call, i64 0) ]
  %cmp = icmp eq i8* %call, null
  %conv = zext i1 %cmp to i32
  ret i8* null
}
Comment 3 Ryan Mansfield 2021-01-11 10:21:41 PST
(In reply to Sanjay Patel from comment #1)
> Your patch seems right to me - we have to guard against "align 0" because
> the LangRef says:
> "if the alignment is set to zero, the alignment of the function is set by
> the target to whatever it feels convenient"
> 
> Do you want to post a patch on Phabricator?
> 

Thanks, I can. Should I included the reduced IR testcase in the patch?
Comment 4 Sanjay Patel 2021-01-11 10:28:26 PST
(In reply to Ryan Mansfield from comment #3)

> Thanks, I can. Should I included the reduced IR testcase in the patch?

Yes - we always try to include a minimal regression test to ensure that a bug doesn't come back to life after being killed.
Comment 5 Ryan Mansfield 2021-01-11 10:42:31 PST
Patch is posted here: https://reviews.llvm.org/D94433
Comment 6 Chengnian Sun 2021-06-26 16:25:51 PDT
A possible duplicate here.

$ clang-trunk -v
clang version 13.0.0 (https://github.com/llvm/llvm-project.git 2e9c75daffddd65e37c3236708b5b133e6f5f2f5)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/cnsun/usr/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64

$ cat mutant.c
*a(int, int) __attribute__((alloc_align(1)));
b() {
  int c;
  double d = a(c, b)[c] = d;
}

$ clang-trunk -O1 mutant.c
mutant.c:1:2: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
*a(int, int) __attribute__((alloc_align(1)));
 ^
mutant.c:2:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
b() {
^
mutant.c:4:19: warning: incompatible pointer to integer conversion passing 'int ()' to parameter of type 'int' [-Wint-conversion]
  double d = a(c, b)[c] = d;
                  ^
mutant.c:1:12: note: passing argument to parameter here
*a(int, int) __attribute__((alloc_align(1)));
           ^
mutant.c:5:1: warning: non-void function does not return a value [-Wreturn-type]
}
^
clang-13: /tmp/tmp.xjN6dMkdrg-clang-builder/llvm-project/llvm/include/llvm/ADT/APInt.h:1482: void llvm::APInt::setBits(unsigned int, unsigned int): Assertion `hiBit <= BitWidth && "hiBit out of range"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /scratch/software/clang-trunk/bin/clang-13 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj --mrelax-relocations -disable-free -main-file-name mutant.c -mrelocation-model static -mframe-pointer=none -fmath-errno -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/scratch/cnsun/workspace/perses-fuzzer/default_c_finding_folder/crash_20210624_112258_040b/delta/perses_result -resource-dir /scratch/software/clang-trunk/lib/clang/13.0.0 -c-isystem . -c-isystem /usr/local/include/cmsith -internal-isystem /scratch/software/clang-trunk/lib/clang/13.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O1 -fdebug-compilation-dir=/scratch/cnsun/workspace/perses-fuzzer/default_c_finding_folder/crash_20210624_112258_040b/delta/perses_result -ferror-limit 19 -fgnuc-version=4.2.1 -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/mutant-cdf9ec.o -x c mutant.c
1.	<eof> parser at end of file
2.	Optimizer
 #0 0x000056537237a184 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x000056537237793e SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f71f9d1c3c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x153c0)
 #3 0x00007f71f97bb18b raise /build/glibc-ZN95T4/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007f71f979a859 abort /build/glibc-ZN95T4/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00007f71f979a729 get_sysdep_segment_value /build/glibc-ZN95T4/glibc-2.31/intl/loadmsgcat.c:509:8
 #6 0x00007f71f979a729 _nl_load_domain /build/glibc-ZN95T4/glibc-2.31/intl/loadmsgcat.c:970:34
 #7 0x00007f71f97abf36 (/lib/x86_64-linux-gnu/libc.so.6+0x36f36)
 #8 0x0000565370054696 (/scratch/software/clang-trunk/bin/clang-13+0x1635696)
 #9 0x00005653713bb6bc computeKnownBitsFromAssume(llvm::Value const*, llvm::KnownBits&, unsigned int, (anonymous namespace)::Query const&) ValueTracking.cpp:0:0
#10 0x00005653713bc8cb computeKnownBits(llvm::Value const*, llvm::APInt const&, llvm::KnownBits&, unsigned int, (anonymous namespace)::Query const&) ValueTracking.cpp:0:0
#11 0x00005653713bcf5e computeKnownBits(llvm::Value const*, llvm::KnownBits&, unsigned int, (anonymous namespace)::Query const&) ValueTracking.cpp:0:0
#12 0x00005653713bf157 computeKnownBits(llvm::Value const*, unsigned int, (anonymous namespace)::Query const&) ValueTracking.cpp:0:0
#13 0x00005653713bf202 llvm::computeKnownBits(llvm::Value const*, llvm::DataLayout const&, unsigned int, llvm::AssumptionCache*, llvm::Instruction const*, llvm::DominatorTree const*, llvm::OptimizationRemarkEmitter*, bool) (/scratch/software/clang-trunk/bin/clang-13+0x29a0202)
#14 0x000056537243c87e llvm::getOrEnforceKnownAlignment(llvm::Value*, llvm::MaybeAlign, llvm::DataLayout const&, llvm::Instruction const*, llvm::AssumptionCache*, llvm::DominatorTree const*) (/scratch/software/clang-trunk/bin/clang-13+0x3a1d87e)
#15 0x0000565371d72f7f llvm::InstCombinerImpl::visitStoreInst(llvm::StoreInst&) (/scratch/software/clang-trunk/bin/clang-13+0x3353f7f)
#16 0x0000565371cecfa8 llvm::InstCombinerImpl::run() (/scratch/software/clang-trunk/bin/clang-13+0x32cdfa8)
#17 0x0000565371cef6e3 combineInstructionsOverFunction(llvm::Function&, llvm::InstCombineWorklist&, llvm::AAResults*, llvm::AssumptionCache&, llvm::TargetLibraryInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::OptimizationRemarkEmitter&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, unsigned int, llvm::LoopInfo*) InstructionCombining.cpp:0:0
#18 0x0000565371cf1741 llvm::InstCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/scratch/software/clang-trunk/bin/clang-13+0x32d2741)
#19 0x0000565373552456 llvm::detail::PassModel<llvm::Function, llvm::InstCombinePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/scratch/software/clang-trunk/bin/clang-13+0x4b33456)
#20 0x0000565371ab64d6 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/scratch/software/clang-trunk/bin/clang-13+0x30974d6)
#21 0x000056536ff4b836 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/scratch/software/clang-trunk/bin/clang-13+0x152c836)
#22 0x0000565371ab4ff9 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/scratch/software/clang-trunk/bin/clang-13+0x3095ff9)
#23 0x000056536ff4c0a6 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/scratch/software/clang-trunk/bin/clang-13+0x152d0a6)
#24 0x0000565371ab28df llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/scratch/software/clang-trunk/bin/clang-13+0x30938df)
#25 0x00005653726ab6ad (anonymous namespace)::EmitAssemblyHelper::EmitAssemblyWithNewPassManager(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) BackendUtil.cpp:0:0
#26 0x00005653726ae92d clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/scratch/software/clang-trunk/bin/clang-13+0x3c8f92d)
#27 0x00005653734d7e1f clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/scratch/software/clang-trunk/bin/clang-13+0x4ab8e1f)
#28 0x000056537458f4d9 clang::ParseAST(clang::Sema&, bool, bool) (/scratch/software/clang-trunk/bin/clang-13+0x5b704d9)
#29 0x00005653734d6968 clang::CodeGenAction::ExecuteAction() (/scratch/software/clang-trunk/bin/clang-13+0x4ab7968)
#30 0x0000565372d86599 clang::FrontendAction::Execute() (/scratch/software/clang-trunk/bin/clang-13+0x4367599)
#31 0x0000565372d197e6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/scratch/software/clang-trunk/bin/clang-13+0x42fa7e6)
#32 0x0000565372e64480 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/scratch/software/clang-trunk/bin/clang-13+0x4445480)
#33 0x000056536fc84696 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/scratch/software/clang-trunk/bin/clang-13+0x1265696)
#34 0x000056536fc809d8 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#35 0x000056536fbae0e6 main (/scratch/software/clang-trunk/bin/clang-13+0x118f0e6)
#36 0x00007f71f979c0b3 __libc_start_main /build/glibc-ZN95T4/glibc-2.31/csu/../csu/libc-start.c:342:3
#37 0x000056536fc8054e _start (/scratch/software/clang-trunk/bin/clang-13+0x126154e)
clang-13: error: unable to execute command: Aborted (core dumped)
clang-13: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 13.0.0 (https://github.com/llvm/llvm-project.git 2e9c75daffddd65e37c3236708b5b133e6f5f2f5)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/cnsun/usr/bin
clang-13: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-13: note: diagnostic msg: /tmp/mutant-8b3c17.c
clang-13: note: diagnostic msg: /tmp/mutant-8b3c17.sh
clang-13: note: diagnostic msg:

********************
Comment 7 Sanjay Patel 2021-06-29 11:10:09 PDT
I posted a comment on https://reviews.llvm.org/D94433 to see if we can make progress.