Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

Assertion `hiBit <= BitWidth && "hiBit out of range"' failed #47682

Open Quuxplusone opened 3 years ago

Quuxplusone commented 3 years ago
Bugzilla Link PR48713
Status NEW
Importance P enhancement
Reported by Ryan Mansfield (rmansfield@gmail.com)
Reported on 2021-01-11 06:36:09 -0800
Last modified on 2021-06-29 11:10:09 -0700
Version trunk
Hardware PC All
CC cnsun@uwaterloo.ca, jdoerfert@anl.gov, llvm-bugs@lists.llvm.org, spatel+llvm@rotateright.com
Fixed by commit(s)
Attachments
Blocks
Blocked by
See also
$ 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));
     }
   }
Quuxplusone commented 3 years ago
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)
Quuxplusone commented 3 years ago
(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
}
Quuxplusone commented 3 years ago
(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?
Quuxplusone commented 3 years ago

(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.

Quuxplusone commented 3 years ago

Patch is posted here: https://reviews.llvm.org/D94433

Quuxplusone commented 3 years ago
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:

********************
Quuxplusone commented 3 years ago

I posted a comment on https://reviews.llvm.org/D94433 to see if we can make progress.