[Bug 276306] building games/dxx-rebirth causes clang ICE

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 14 Jan 2024 00:30:58 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276306

            Bug ID: 276306
           Summary: building games/dxx-rebirth causes clang ICE
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: lexi.freebsd@le-fay.org

FreeBSD 15.0-CURRENT #8 main-n267554-c8328f1a7b6e: Sat Jan 13 07:24:18 GMT 2024
    lexi@ilythia.eden.le-fay.org:/src/main/sys/amd64/compile/ILYTHIA

FreeBSD clang version 17.0.6 (https://github.com/llvm/llvm-project.git
llvmorg-17.0.6-0-g6009708b4367)

src: c8328f1a7b6ea59951e2ea2c1a9a4aa10020c8c5
ports: f942dcfd4f8e0fa3edab21719c55ee34c7f99fca

building games/dxx-rebirth causes an ICE in clang.

reproducer: poudriere testport -b latest -J3 -j main games/dxx-rebirth

Assertion failed: (Info.Ctx.hasSameType(BaseIt->getType(), BaseType) && "base
class initializers not in expected order"), function HandleConstructorCall,
file /src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp, line 6374.
PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the
crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /usr/bin/c++ -g -O2 -ftabstop=4 -Wall -Werror=extra
-Werror=format=2 -Werror=missing-braces -Werror=missing-include-dirs
-Werror=uninitialized -Werror=undef -Werror=pointer-arith -Werror=cast-qual
-Werror=missing-declarations -Werror=vla -pthread -funsigned-char -O2 -pipe
-march=znver3 -fstack-protector-strong -fno-strict-aliasing -flto -std=gnu++20
-Werror=unused -Wno-unused-lambda-capture
-Wno-gnu-string-literal-operator-template -Wno-braced-scalar-init
-fvisibility=hidden -Wsuggest-override -Wredundant-decls -Wno-sign-compare
-isystem /usr/local/include -isystem /usr/local/include -DPHYSFS_DEPRECATED=
-DDXX_USE_SHAREPATH=1 -DNDEBUG -DRELEASE -D_REENTRANT -DDXX_BUILD_DESCENT_I
-D__STDC_FORMAT_MACROS -Icommon/include -Icommon/main -I. -Ibuild
-I/usr/local/include/libpng16 -I/usr/local/include -I/usr/local/include/SDL2
-I/usr/local/include/webp -I/usr/local/include/glib-2.0
-I/usr/local/lib/glib-2.0/include -I/usr/local/include/opus -Id1x-rebirth/main
-c -o build/similar/main/.d1x-rebirth.bmread.o similar/main/bmread.cpp
1.      similar/main/bmread.cpp:563:3: current parser token 'dying'
2.      similar/main/bmread.cpp:462:1: parsing namespace 'd1x'
3.      similar/main/bmread.cpp:502:1: parsing function body
'd1x::gamedata_read_tbl'
4.      similar/main/bmread.cpp:502:1: in compound statement ('{}')
 #0 0x0000000005c1b851 PrintStackTrace
/src/main/contrib/llvm-project/llvm/lib/Support/Unix/Signals.inc:602:13
 #1 0x0000000005c19b67 RunSignalHandlers
/src/main/contrib/llvm-project/llvm/lib/Support/Signals.cpp:105:18
 #2 0x0000000005bde09b HandleCrash
/src/main/contrib/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:73:5
 #3 0x0000000005bde09b CrashRecoverySignalHandler
/src/main/contrib/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:390:51
 #4 0x000000082b71e112 handle_signal /src/main/lib/libthr/thread/thr_sig.c:0:3
 #5 0x000000082b71cb88 thr_sighandler
/src/main/lib/libthr/thread/thr_sig.c:245:1
 #6 0x00000008279a12d3 ([vdso]+0x2d3)
 #7 0x000000082e2781ea _thr_kill
/src/obj/src/main/amd64.amd64/lib/libc/thr_kill.S:4:0
 #8 0x000000082e1ed974 raise /src/main/lib/libc/gen/raise.c:0:10
 #9 0x000000082e2a1e29 abort /src/main/lib/libc/stdlib/abort.c:67:17
#10 0x000000082e1cef11 (/lib/libc.so.7+0x94f11)
#11 0x0000000002c83c7c getCommonPtr
/src/main/contrib/llvm-project/clang/include/clang/AST/Type.h:752:5
#12 0x0000000002c83c7c getTypePtr
/src/main/contrib/llvm-project/clang/include/clang/AST/Type.h:6685:10
#13 0x0000000002c83c7c operator->
/src/main/contrib/llvm-project/clang/include/clang/AST/Type.h:796:12
#14 0x0000000002c83c7c HandleConstructorCall
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:6378:35
#15 0x0000000002c340cb HandleConstructorCall
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:6485:73
#16 0x0000000002c6accf VisitCXXConstructExpr
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:10
#17 0x0000000002c66ead EvaluateRecord
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:50
#18 0x0000000002c2fa7d EvaluateInPlace
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:14
#19 0x0000000002c8321a HandleConstructorCall
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:12
#20 0x0000000002c340cb HandleConstructorCall
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:6485:73
#21 0x0000000002c6accf VisitCXXConstructExpr
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:10
#22 0x0000000002c66ead EvaluateRecord
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:50
#23 0x0000000002c2fa7d EvaluateInPlace
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:14
#24 0x0000000002c8321a HandleConstructorCall
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:12
#25 0x0000000002c6e6af VisitCXXInheritedCtorInitExpr
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:10
#26 0x0000000002c66ead EvaluateRecord
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:50
#27 0x0000000002c2fa7d EvaluateInPlace
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:14
#28 0x0000000002c8321a HandleConstructorCall
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:12
#29 0x0000000002c340cb HandleConstructorCall
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:6485:73
#30 0x0000000002c6accf VisitCXXConstructExpr
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:10
#31 0x0000000002c6f2f4 VisitExprWithCleanups
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:7525:50
#32 0x0000000002c66ead EvaluateRecord
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:50
#33 0x0000000002c2fa7d EvaluateInPlace
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:14
#34 0x0000000002c50bcf EvaluateStmt
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:17
#35 0x0000000002c50632 EvaluateStmt
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:5286:11
#36 0x0000000002c3439f HandleFunctionCall
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:6253:24
#37 0x0000000002c859f9 handleCallExpr
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:7851:9
#38 0x0000000002c66ead EvaluateRecord
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:50
#39 0x0000000002c2fa7d EvaluateInPlace
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:14
#40 0x0000000002c8321a HandleConstructorCall
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:12
#41 0x0000000002c340cb HandleConstructorCall
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:6485:73
#42 0x0000000002c6accf VisitCXXConstructExpr
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:10
#43 0x0000000002c66ead EvaluateRecord
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:50
#44 0x0000000002c2fa7d EvaluateInPlace
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:14
#45 0x0000000002c3afeb VisitMaterializeTemporaryExpr
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:8439:7
#46 0x0000000002c3abe4 VisitExprWithCleanups
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:7525:50
#47 0x0000000002c2e2f6 EvaluateLValue
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:59
#48 0x0000000002c33359 Evaluate
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:15078:9
#49 0x0000000002c2f9ec EvaluateInPlace
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:0:10
#50 0x0000000002c301c4 EvaluateAsInitializer
/src/main/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp:15500:57
#51 0x0000000002b7517e evaluateValueImpl
/src/main/contrib/llvm-project/clang/lib/AST/Decl.cpp:2525:32
#52 0x0000000002b752d8 checkForConstantInitialization
/src/main/contrib/llvm-project/clang/lib/AST/Decl.cpp:2589:35
#53 0x00000000040cb4d2 CheckCompleteVariableDeclaration
/src/main/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp:0:27
#54 0x00000000040ca044 AddInitializerToDecl
/src/main/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp:0:3
#55 0x0000000004621ada FinishForRangeVarDecl
/src/main/contrib/llvm-project/clang/lib/Sema/SemaStmt.cpp:2406:11
#56 0x00000000046213d2 ActOnCXXForRangeStmt
/src/main/contrib/llvm-project/clang/lib/Sema/SemaStmt.cpp:2532:7
#57 0x0000000003dc1644 ParseForStatement
/src/main/contrib/llvm-project/clang/lib/Parse/ParseStmt.cpp:2241:28
#58 0x0000000003dbb6a9 ParseStatementOrDeclarationAfterAttributes
/src/main/contrib/llvm-project/clang/lib/Parse/ParseStmt.cpp:313:12
#59 0x0000000003dba884 empty
/src/main/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:94:46
#60 0x0000000003dba884 MaybeDestroyTemplateIds
/src/main/contrib/llvm-project/clang/include/clang/Parse/Parser.h:298:22
#61 0x0000000003dba884 ParseStatementOrDeclaration
/src/main/contrib/llvm-project/clang/lib/Parse/ParseStmt.cpp:119:3
#62 0x0000000003dc4264 ParseCompoundStatementBody
/src/main/contrib/llvm-project/clang/lib/Parse/ParseStmt.cpp:1205:11
#63 0x0000000003dc5370 ParseFunctionStatementBody
/src/main/contrib/llvm-project/clang/lib/Parse/ParseStmt.cpp:2467:21
#64 0x0000000003cfe25d ParseFunctionDefinition
/src/main/contrib/llvm-project/clang/lib/Parse/Parser.cpp:0:0
#65 0x0000000003d66142 ParseDeclGroup
/src/main/contrib/llvm-project/clang/lib/Parse/ParseDecl.cpp:2197:18
#66 0x0000000003cfc9fb ParseDeclOrFunctionDefInternal
/src/main/contrib/llvm-project/clang/lib/Parse/Parser.cpp:0:10
#67 0x0000000003cfc2c3 ParseDeclarationOrFunctionDefinition
/src/main/contrib/llvm-project/clang/lib/Parse/Parser.cpp:1225:12
#68 0x0000000003cfb227 ParseExternalDeclaration
/src/main/contrib/llvm-project/clang/lib/Parse/Parser.cpp:0:14
#69 0x0000000003d3fb59 ~AttributePool
/src/main/contrib/llvm-project/clang/include/clang/Sema/ParsedAttr.h:704:22
#70 0x0000000003d3fb59 ~ParsedAttributes
/src/main/contrib/llvm-project/clang/include/clang/Sema/ParsedAttr.h:920:7
#71 0x0000000003d3fb59 ParseInnerNamespace
/src/main/contrib/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:263:5
#72 0x0000000003d3f2b4 Exit
/src/main/contrib/llvm-project/clang/include/clang/Parse/Parser.h:1143:15
#73 0x0000000003d3f2b4 ParseNamespace
/src/main/contrib/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:242:18
#74 0x0000000003d63e65 ParseDeclaration
/src/main/contrib/llvm-project/clang/lib/Parse/ParseDecl.cpp:0:0
#75 0x0000000003cfad7a ParseExternalDeclaration
/src/main/contrib/llvm-project/clang/lib/Parse/Parser.cpp:0:0
#76 0x0000000003cf91fa ParseTopLevelDecl
/src/main/contrib/llvm-project/clang/lib/Parse/Parser.cpp:742:10
#77 0x0000000003cf374e ParseAST
/src/main/contrib/llvm-project/clang/lib/Parse/ParseAST.cpp:162:5
#78 0x000000000365a65f Execute
/src/main/contrib/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1063:10
#79 0x00000000035d23ed getPtr
/src/main/contrib/llvm-project/llvm/include/llvm/Support/Error.h:270:42
#80 0x00000000035d23ed operator bool
/src/main/contrib/llvm-project/llvm/include/llvm/Support/Error.h:233:16
#81 0x00000000035d23ed ExecuteAction
/src/main/contrib/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1053:23
#82 0x00000000037282b7 operator->
/src/obj/src/main/amd64.amd64/tmp/usr/include/c++/v1/__memory/shared_ptr.h:884:16
#83 0x00000000037282b7 getFrontendOpts
/src/main/contrib/llvm-project/clang/include/clang/Frontend/CompilerInstance.h:288:12
#84 0x00000000037282b7 ExecuteCompilerInvocation
/src/main/contrib/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:273:14
#85 0x0000000002a2b7e5 cc1_main
/src/main/contrib/llvm-project/clang/tools/driver/cc1_main.cpp:249:15
#86 0x0000000002a3a52f ExecuteCC1Tool
/src/main/contrib/llvm-project/clang/tools/driver/driver.cpp:366:12
#87 0x000000000346072e operator()
/src/main/contrib/llvm-project/clang/lib/Driver/Job.cpp:440:30
#88 0x000000000346072e callback_fn<(lambda at
/src/main/contrib/llvm-project/clang/lib/Driver/Job.cpp:440:22)>
/src/main/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#89 0x0000000005bdde39 operator()
/src/main/contrib/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#90 0x0000000005bdde39 RunSafely
/src/main/contrib/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:426:3
#91 0x000000000345fd64 Execute
/src/main/contrib/llvm-project/clang/lib/Driver/Job.cpp:440:7
#92 0x000000000342341c operator bool
/src/obj/src/main/amd64.amd64/tmp/usr/include/c++/v1/__functional/function.h:561:55
#93 0x000000000342341c operator bool
/src/obj/src/main/amd64.amd64/tmp/usr/include/c++/v1/__functional/function.h:1055:32
#94 0x000000000342341c ExecuteCommand
/src/main/contrib/llvm-project/clang/lib/Driver/Compilation.cpp:200:7
#95 0x00000000034236ec ExecuteJobs
/src/main/contrib/llvm-project/clang/lib/Driver/Compilation.cpp:253:13
#96 0x000000000343f621 empty
/src/main/contrib/llvm-project/llvm/include/llvm/ADT/SmallVector.h:94:46
#97 0x000000000343f621 ExecuteCompilation
/src/main/contrib/llvm-project/clang/lib/Driver/Driver.cpp:1906:23
#98 0x0000000002a39bf3 clang_main
/src/main/contrib/llvm-project/clang/tools/driver/driver.cpp:542:21
#99 0x0000000002a36daf /src/main/usr.bin/clang/clang/clang-driver.cpp:0:10
#100 0x000000082e1bdcaa __libc_start1
/src/main/lib/libc/csu/libc_start1.c:157:2
c++: error: clang frontend command failed with exit code 134 (use -v to see
invocation)
FreeBSD clang version 17.0.6 (https://github.com/llvm/llvm-project.git
llvmorg-17.0.6-0-g6009708b4367)
Target: x86_64-unknown-freebsd15.0
Thread model: posix
InstalledDir: /usr/bin
c++: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
c++: note: diagnostic msg: /tmp/bmread-a3bac9.cpp
c++: note: diagnostic msg: /tmp/bmread-a3bac9.sh
c++: note: diagnostic msg:

********************

-- 
You are receiving this mail because:
You are the assignee for the bug.