[clang] [clang] Convert second arg of __builtin_assume_aligned to ConstantExpr (PR #161314)
Alan Zhao via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 1 15:58:56 PDT 2025
alanzhao1 wrote:
Heads up - this PR is causing us to hit the following assertion in https://github.com/google/highway. I'm currently running cvise to get a minimal reproducer.
```
bin/clang -o /dev/null -O3 ~/Downloads/out.ii -std=gnu++20
clang-21: /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGValue.h:274: void clang::CodeGen::LValue::initializeSimpleLValue(Address, QualType, LValueBaseInfo, TBAAAccessInfo, ASTContext &): Assertion `Addr.getBasePointer()->getType()->isPointerTy()' 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: /usr/local/google/home/ayzhao/src/llvm-project/build-debug/bin/clang-21 -cc1 -triple x86_64-unknown-linux-gnu -O3 -emit-obj -dumpdir /dev/null- -disable-free -clear-ast-before-backend -main-file-name out.ii -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/usr/local/google/home/ayzhao/src/llvm-project/build-debug -fcoverage-compilation-dir=/usr/local/google/home/ayzhao/src/llvm-project/build-debug -resource-dir /usr/local/google/home/ayzhao/src/llvm-project/build-debug/lib/clang/22 -std=gnu++20 -fdeprecated-macro -ferror-limit 19 -fmessage-length=160 -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/out-66e06c.o -x c++-cpp-output /usr/local/google/home/ayzhao/Downloads/out.ii
1. <eof> parser at end of file
2. third_party/highway/hwy/aligned_allocator.cc:27:11: LLVM IR generation of declaration 'hwy'
3. third_party/highway/hwy/aligned_allocator.cc:69:21: Generating code for declaration 'hwy::AllocateAlignedBytes'
#0 0x000056406ce4bbfd llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:834:11
#1 0x000056406ce4c12b PrintStackTraceSignalHandler(void*) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:917:1
#2 0x000056406ce4a03f llvm::sys::RunSignalHandlers() /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/Support/Signals.cpp:104:5
#3 0x000056406ce4c7c9 SignalHandler(int, siginfo_t*, void*) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:426:38
#4 0x00007f81e2649df0 (/lib/x86_64-linux-gnu/libc.so.6+0x3fdf0)
#5 0x00007f81e269e95c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#6 0x00007f81e2649cc2 raise ./signal/../sysdeps/posix/raise.c:27:6
#7 0x00007f81e26324ac abort ./stdlib/abort.c:81:3
#8 0x00007f81e2632420 __assert_perror_fail ./assert/assert-perr.c:31:1
#9 0x000056406d3b969a clang::CodeGen::LValue::initializeSimpleLValue(clang::CodeGen::Address, clang::QualType, clang::CodeGen::LValueBaseInfo, clang::CodeGen::TBAAAccessInfo, clang::ASTContext&) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGValue.h:275:3
#10 0x000056406d3ab630 clang::CodeGen::LValue::MakeAddr(clang::CodeGen::Address, clang::QualType, clang::ASTContext&, clang::CodeGen::LValueBaseInfo, clang::CodeGen::TBAAAccessInfo) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGValue.h:436:7
#11 0x000056406d47784e clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(clang::CodeGen::Address, bool, clang::QualType, clang::SourceLocation, clang::CodeGen::LValueBaseInfo, clang::CodeGen::TBAAAccessInfo, bool) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGExpr.cpp:2129:7
#12 0x000056406d3aad30 clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(clang::CodeGen::Address, bool, clang::QualType, clang::SourceLocation, clang::CodeGen::AlignmentSource, bool) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenFunction.h:4310:5
#13 0x000056406d6bee94 (anonymous namespace)::ScalarExprEmitter::VisitConstantExpr(clang::ConstantExpr*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:469:9
#14 0x000056406d6b6979 clang::StmtVisitorBase<std::add_pointer, (anonymous namespace)::ScalarExprEmitter, llvm::Value*>::Visit(clang::Stmt*) /usr/local/google/home/ayzhao/src/llvm-project/build-debug/tools/clang/include/clang/AST/StmtNodes.inc:404:1
#15 0x000056406d6ac425 (anonymous namespace)::ScalarExprEmitter::Visit(clang::Expr*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:452:52
#16 0x000056406d6ac262 clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:5882:3
#17 0x000056406dafbc39 clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(clang::GlobalDecl, unsigned int, clang::CallExpr const*, clang::CodeGen::ReturnValueSlot) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp:3542:12
#18 0x000056406d48648c clang::CodeGen::CodeGenFunction::EmitCallExpr(clang::CallExpr const*, clang::CodeGen::ReturnValueSlot, llvm::CallBase**) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGExpr.cpp:5968:12
#19 0x000056406d6c0061 (anonymous namespace)::ScalarExprEmitter::VisitCallExpr(clang::CallExpr const*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:631:36
#20 0x000056406d6b6be1 clang::StmtVisitorBase<std::add_pointer, (anonymous namespace)::ScalarExprEmitter, llvm::Value*>::Visit(clang::Stmt*) /usr/local/google/home/ayzhao/src/llvm-project/build-debug/tools/clang/include/clang/AST/StmtNodes.inc:608:1
#21 0x000056406d6ac425 (anonymous namespace)::ScalarExprEmitter::Visit(clang::Expr*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:452:52
#22 0x000056406d6ac262 clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:5882:3
#23 0x000056406d4eb0b5 clang::CodeGen::CodeGenFunction::EmitReturnStmt(clang::ReturnStmt const&) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGStmt.cpp:1698:26
#24 0x000056406d4e744f clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGStmt.cpp:163:75
#25 0x000056406d4f1733 clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CGStmt.cpp:591:3
#26 0x000056406d4bca3f clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:1376:5
#27 0x000056406d4bdbe6 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:1629:3
#28 0x000056406d2847df clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:6401:3
#29 0x000056406d27b1ac clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:4484:12
#30 0x000056406d280545 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:4195:5
#31 0x000056406d2798e8 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:7309:5
#32 0x000056406d28b971 clang::CodeGen::CodeGenModule::EmitDeclContext(clang::DeclContext const*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:7280:16
#33 0x000056406d279a55 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:7338:5
#34 0x000056406dc73462 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/ModuleBuilder.cpp:195:20
#35 0x000056406dc62831 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:171:8
#36 0x00005640708caa93 clang::ParseAST(clang::Sema&, bool, bool) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/Parse/ParseAST.cpp:174:11
#37 0x000056406e42fb29 clang::ASTFrontendAction::ExecuteAction() /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1436:1
#38 0x000056406dc671ed clang::CodeGenAction::ExecuteAction() /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1110:5
#39 0x000056406e42f506 clang::FrontendAction::Execute() /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1318:7
#40 0x000056406e33e173 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1007:23
#41 0x000056406e6125c5 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /usr/local/google/home/ayzhao/src/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:310:8
#42 0x000056406a512c8a cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /usr/local/google/home/ayzhao/src/llvm-project/clang/tools/driver/cc1_main.cpp:300:13
#43 0x000056406a5061c8 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) /usr/local/google/home/ayzhao/src/llvm-project/clang/tools/driver/driver.cpp:225:5
#44 0x000056406a504fb1 clang_main(int, char**, llvm::ToolContext const&) /usr/local/google/home/ayzhao/src/llvm-project/clang/tools/driver/driver.cpp:268:5
#45 0x000056406a538fd5 main /usr/local/google/home/ayzhao/src/llvm-project/build-debug/tools/clang/tools/driver/clang-driver.cpp:17:3
#46 0x00007f81e2633ca8 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#47 0x00007f81e2633d65 call_init ./csu/../csu/libc-start.c:128:20
#48 0x00007f81e2633d65 __libc_start_main ./csu/../csu/libc-start.c:347:5
#49 0x000056406a504a21 _start (/usr/local/google/home/ayzhao/src/llvm-project/build-debug/bin/clang-21+0x64afa21)
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 22.0.0git (git at github.com:llvm/llvm-project.git 71365c0b6b95eb6874b08f32fe58b5419979ff4c)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/google/home/ayzhao/src/llvm-project/build-debug/bin
Build config: +unoptimized, +assertions
clang: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
```
https://github.com/llvm/llvm-project/pull/161314
More information about the cfe-commits
mailing list