-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Open
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]incompleteIssue not complete (e.g. missing a reproducer, build arguments, etc.)Issue not complete (e.g. missing a reproducer, build arguments, etc.)llvm:optimizations
Description
Hi,
I created a portable sysroot for AFL++ v4.33c with LLVM 20.1.8 for AL2 X86-64 in Docker.
Compiling a simple test program without any instrumentation leads to this out-of-memory error.
/shared/linux/bin/clang --sysroot=/shared/linux \
-L/shared/linux/lib64 -L/shared/linux/usr/lib64 -L/shared/linux/lib -L/shared/linux/usr/lib \
-O0 -o /test/test_program /test/test.c 2>/dev/null
Stack dump:
0. Program arguments: /usr/local/llvm-20/bin/clang-20 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir /test/test_instrumented- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name test.c -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debug-info-kind=constructor -dwarf-version=5 -debugger-tuning=gdb -fdebug-compilation-dir=/opt -fcoverage-compilation-dir=/opt -resource-dir /usr/local/llvm-20/lib/clang/20 -D __AFL_COMPILER=1 -D FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION=1 -D "__AFL_COVERAGE()=int __afl_selective_coverage __attribute__ ((weak)) = 1;void __afl_coverage_discard();void __afl_coverage_skip();void __afl_coverage_on();void __afl_coverage_off();" -D "__AFL_COVERAGE_START_OFF()=int __afl_selective_coverage_start_off = 1;" -D __AFL_COVERAGE_ON()=__afl_coverage_on() -D __AFL_COVERAGE_OFF()=__afl_coverage_off() -D __AFL_COVERAGE_DISCARD()=__afl_coverage_discard() -D __AFL_COVERAGE_SKIP()=__afl_coverage_skip() -D __AFL_HAVE_MANUAL_CONTROL=1 -D "__AFL_FUZZ_INIT()=int __afl_sharedmem_fuzzing = 1;extern __attribute__((visibility(\"default\"))) unsigned int *__afl_fuzz_len;extern __attribute__((visibility(\"default\"))) unsigned char *__afl_fuzz_ptr;unsigned char __afl_fuzz_alt[1048576];unsigned char *__afl_fuzz_alt_ptr = __afl_fuzz_alt;" -D "__AFL_FUZZ_TESTCASE_BUF=(__afl_fuzz_ptr ? __afl_fuzz_ptr : __afl_fuzz_alt_ptr)" -D "__AFL_FUZZ_TESTCASE_LEN=(__afl_fuzz_ptr ? *__afl_fuzz_len : (*__afl_fuzz_len = read(0, __afl_fuzz_alt_ptr, 1048576)) == 0xffffffff ? 0 : *__afl_fuzz_len)" -D "__AFL_LOOP(_A)=({ static volatile const char *_B __attribute__((used,unused)); _B = (const char*)\"##SIG_AFL_PERSISTENT##\"; extern __attribute__((visibility(\"default\"))) int __afl_connected;__attribute__((visibility(\"default\"))) int _L(unsigned int) __asm__(\"__afl_persistent_loop\"); _L(__afl_connected ? _A : 1); })" -D "__AFL_INIT()=do { static volatile const char *_A __attribute__((used,unused)); _A = (const char*)\"##SIG_AFL_DEFER_FORKSRV##\"; __attribute__((visibility(\"default\"))) void _I(void) __asm__(\"__afl_manual_init\"); _I(); } while (0)" -isysroot /shared/linux -internal-isystem /usr/local/llvm-20/lib/clang/20/include -internal-isystem /shared/linux/usr/local/include -internal-externc-isystem /shared/linux/include -internal-externc-isystem /shared/linux/usr/include -O3 -Wno-unused-command-line-argument -ferror-limit 19 -funroll-loops -fno-builtin-strcmp -fno-builtin-strncmp -fno-builtin-strcasecmp -fno-builtin-strncasecmp -fno-builtin-memcmp -fno-builtin-memmem -fno-builtin-bcmp -fno-builtin-strstr -fno-builtin-strcasestr -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -vectorize-loops -vectorize-slp -fpass-plugin=/shared/linux/lib64/afl/split-switches-pass.so -fpass-plugin=/shared/linux/lib64/afl/compare-transform-pass.so -fpass-plugin=/shared/linux/lib64/afl/split-compares-pass.so -fpass-plugin=/shared/linux/lib64/afl/SanitizerCoveragePCGUARD.so -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/test-efd67f.o -x c /test/test.c
1. <eof> parser at end of file
#0 0x0000000001e1f508 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/local/llvm-20/bin/clang-20+0x1e1f508)
#1 0x0000000001e1c91c SignalHandler(int) Signals.cpp:0:0
#2 0x00007ff0ee20d8e0 __restore_rt sigaction.c:0:0
#3 0x00007ff0ed521ca0 raise (/lib64/libc.so.6+0x33ca0)
#4 0x00007ff0ed523148 abort (/lib64/libc.so.6+0x35148)
#5 0x0000000001d82f3f (/usr/local/llvm-20/bin/clang-20+0x1d82f3f)
#6 0x0000000001da1341 llvm::SmallVectorBase<unsigned int>::mallocForGrow(void*, unsigned long, unsigned long, unsigned long&) (/usr/local/llvm-20/bin/clang-20+0x1da1341)
#7 0x0000000002075198 llvm::SmallVectorTemplateBase<std::function<void (llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>&, llvm::OptimizationLevel, llvm::ThinOrFullLTOPhase)>, false>::grow(unsigned long) (/usr/local/llvm-20/bin/clang-20+0x2075198)
#8 0x00007ff0ed2e4451 llvm::SmallVectorTemplateCommon<std::function<void (llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>&, llvm::OptimizationLevel, llvm::ThinOrFullLTOPhase)>, void>::begin() /usr/local/llvm-20/include/llvm/ADT/SmallVector.h:267:45
#9 0x00007ff0ed2e4451 llvm::SmallVectorTemplateCommon<std::function<void (llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>&, llvm::OptimizationLevel, llvm::ThinOrFullLTOPhase)>, void>::end() /usr/local/llvm-20/include/llvm/ADT/SmallVector.h:269:27
#10 0x00007ff0ed2e4451 llvm::SmallVectorTemplateBase<std::function<void (llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>&, llvm::OptimizationLevel, llvm::ThinOrFullLTOPhase)>, false>::push_back(std::function<void (llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>&, llvm::OptimizationLevel, llvm::ThinOrFullLTOPhase)> const&) /usr/local/llvm-20/include/llvm/ADT/SmallVector.h:415:26
#11 0x00007ff0ed2e230d std::_Function_base::~_Function_base() /usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/bits/std_function.h:275:11
#12 0x00007ff0ed2e230d llvmGetPassPluginInfo::$_0::operator()(llvm::PassBuilder&) const /opt/AFLplusplus/instrumentation/split-switches-pass.so.cc:96:13
#13 0x00007ff0ed2e230d llvmGetPassPluginInfo::$_0::__invoke(llvm::PassBuilder&) /opt/AFLplusplus/instrumentation/split-switches-pass.so.cc:93:11
#14 0x0000000002079cda (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::BackendConsumer*) BackendUtil.cpp:0:0
#15 0x000000000207cdcb 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>>, clang::BackendConsumer*) (/usr/local/llvm-20/bin/clang-20+0x207cdcb)
#16 0x000000000264d4e7 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/usr/local/llvm-20/bin/clang-20+0x264d4e7)
#17 0x0000000003fdda9c clang::ParseAST(clang::Sema&, bool, bool) (/usr/local/llvm-20/bin/clang-20+0x3fdda9c)
#18 0x000000000264dfc5 clang::CodeGenAction::ExecuteAction() (/usr/local/llvm-20/bin/clang-20+0x264dfc5)
#19 0x00000000028df47a clang::FrontendAction::Execute() (/usr/local/llvm-20/bin/clang-20+0x28df47a)
#20 0x0000000002875059 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/local/llvm-20/bin/clang-20+0x2875059)
#21 0x00000000029c0573 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/local/llvm-20/bin/clang-20+0x29c0573)
#22 0x0000000000c09cf9 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/local/llvm-20/bin/clang-20+0xc09cf9)
#23 0x0000000000bffa1c ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#24 0x0000000000c031c7 clang_main(int, char**, llvm::ToolContext const&) (/usr/local/llvm-20/bin/clang-20+0xc031c7)
#25 0x0000000000b52a83 main (/usr/local/llvm-20/bin/clang-20+0xb52a83)
#26 0x00007ff0ed50f13a __libc_start_main (/lib64/libc.so.6+0x2113a)
#27 0x0000000000bff83a _start (/usr/local/llvm-20/bin/clang-20+0xbff83a)
clang: error: unable to execute command: Aborted (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 20.1.8 (https://github.com/llvm/llvm-project.git 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/llvm-20/bin
clang: note: diagnostic msg:
Metadata
Metadata
Assignees
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]incompleteIssue not complete (e.g. missing a reproducer, build arguments, etc.)Issue not complete (e.g. missing a reproducer, build arguments, etc.)llvm:optimizations