Skip to content

Clang test Modules/odr_hash-Friend.cpp causes assertion failure "Cannot mangle injected class name type." at lib\AST\MicrosoftMangle.cpp:2478 #35287

@Weverything

Description

@Weverything
Bugzilla Link 35939
Version unspecified
OS Linux
CC @dpxf,@zmodem,@rui314

Extended Description

Clang test Modules/odr_hash-Friend.cpp was causing an assertion failure on Windows buildbots. The test has been disabled for Windows.

Assertion failed:
Cannot mangle injected class name type.

UNREACHABLE executed at C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\AST\MicrosoftMangle.cpp:2478!

Output from buildbot:

FAIL: Clang :: Modules/odr_hash-Friend.cpp (8263 of 35208)
******************** TEST 'Clang :: Modules/odr_hash-Friend.cpp' FAILED ********************
Script:

rm -rf C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build\tools\clang\test\Modules\Output\odr_hash-Friend.cpp.tmp
c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build\bin\clang.EXE -cc1 -internal-isystem c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build\lib\clang\7.0.0\include -nostdsysteminc -fmodules -fmodules-cache-path=C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build\tools\clang\test\Modules\Output\odr_hash-Friend.cpp.tmp/modules.cache -I C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\test\Modules/Inputs/odr_hash-Friend -emit-obj -o /dev/null -fmodules -fimplicit-module-maps -fmodules-cache-path=C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build\tools\clang\test\Modules\Output\odr_hash-Friend.cpp.tmp/modules.cache -std=c++11 -x c++ C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\test\Modules\odr_hash-Friend.cpp -verify

Exit Code: -2147483645

Command Output (stdout):

$ "rm" "-rf" "C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build\tools\clang\test\Modules\Output\odr_hash-Friend.cpp.tmp"
$ "c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build\bin\clang.EXE" "-cc1" "-internal-isystem" "c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build\lib\clang\7.0.0\include" "-nostdsysteminc" "-fmodules" "-fmodules-cache-path=C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build\tools\clang\test\Modules\Output\odr_hash-Friend.cpp.tmp/modules.cache" "-I" "C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\test\Modules/Inputs/odr_hash-Friend" "-emit-obj" "-o" "/dev/null" "-fmodules" "-fimplicit-module-maps" "-fmodules-cache-path=C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\build\tools\clang\test\Modules\Output\odr_hash-Friend.cpp.tmp/modules.cache" "-std=c++11" "-x" "c++" "C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\test\Modules\odr_hash-Friend.cpp" "-verify"

command stderr:

Cannot mangle injected class name type.

UNREACHABLE executed at C:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\AST\MicrosoftMangle.cpp:2478!

LLVMSymbolizer: error reading file: PDB Error: Unable to load PDB. Make sure the file exists and is readable. Calling loadDataForExe

LLVMSymbolizer: error reading file: PDB Error: Unable to load PDB. Make sure the file exists and is readable. Calling loadDataForExe

LLVMSymbolizer: error reading file: PDB Error: Unable to load PDB. Make sure the file exists and is readable. Calling loadDataForExe

#​0 0x00007ff6ad46ec5c HandleAbort c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\lib\support\windows\signals.inc:411:0

#​1 0x00007fff489e0f78 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x80f78)

#​2 0x00007fff489e2b99 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x82b99)

#​3 0x00007ff6ad485523 llvm::llvm_unreachable_internal(char const *,char const *,unsigned int) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\lib\support\errorhandling.cpp:195:0

#​4 0x00007ff6b24ca636 `anonymous namespace'::MicrosoftCXXNameMangler::mangleType c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\ast\microsoftmangle.cpp:2479:0

#​5 0x00007ff6b24c4656 `anonymous namespace'::MicrosoftCXXNameMangler::mangleType c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\include\clang\ast\typenodes.def:103:0

#​6 0x00007ff6b24c797f `anonymous namespace'::MicrosoftCXXNameMangler::mangleArgumentType c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\ast\microsoftmangle.cpp:1635:0

#​7 0x00007ff6b24c4f92 `anonymous namespace'::MicrosoftCXXNameMangler::mangleFunctionType c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\ast\microsoftmangle.cpp:2035:0

#​8 0x00007ff6b24c2f98 `anonymous namespace'::MicrosoftCXXNameMangler::mangleFunctionEncoding c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\ast\microsoftmangle.cpp:473:0

#​9 0x00007ff6b24c2e1b `anonymous namespace'::MicrosoftCXXNameMangler::mangle c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\ast\microsoftmangle.cpp:439:0

#​10 0x00007ff6b24c0453 `anonymous namespace'::MicrosoftMangleContextImpl::mangleCXXName c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\ast\microsoftmangle.cpp:2612:0

#​11 0x00007ff6b231c84c clang::MangleContext::mangleName(class clang::NamedDecl const *,class llvm::raw_ostream &) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\ast\mangle.cpp:153:0

#​12 0x00007ff6ada73621 getMangledNameImpl c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenmodule.cpp:789:0

#​13 0x00007ff6ada67507 clang::CodeGen::CodeGenModule::getMangledName(class clang::GlobalDecl) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenmodule.cpp:869:0

#​14 0x00007ff6ada69c62 clang::CodeGen::CodeGenModule::EmitGlobal(class clang::GlobalDecl) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenmodule.cpp:1936:0

#​15 0x00007ff6ada64532 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(class clang::Decl *) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenmodule.cpp:4191:0

#​16 0x00007ff6b290b7ee `anonymous namespace'::CodeGeneratorImpl::HandleTopLevelDecl c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\modulebuilder.cpp:160:0

#​17 0x00007ff6b29048fb clang::BackendConsumer::HandleTopLevelDecl(class clang::DeclGroupRef) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenaction.cpp:170:0

#​18 0x00007ff6b2904618 clang::BackendConsumer::HandleInterestingDecl(class clang::DeclGroupRef) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenaction.cpp:196:0

#​19 0x00007ff6b00403d9 clang::ASTReader::PassInterestingDeclToConsumer(class clang::Decl *) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\serialization\astreader.cpp:7454:0

#​20 0x00007ff6b0269658 clang::ASTReader::PassInterestingDeclsToConsumer(void) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\serialization\astreaderdecl.cpp:3714:0

#​21 0x00007ff6b0054e44 clang::ASTReader::FinishedDeserializing(void) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\serialization\astreader.cpp:10709:0

#​22 0x00007ff6b00d3cc7 clang::ExternalASTSource::Deserializing::~Deserializing(void) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\include\clang\ast\externalastsource.h:92:0

#​23 0x00007ff6b0053ec7 clang::ASTReader::GetExternalDeclStmt(unsigned __int64) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\serialization\astreader.cpp:7257:0

#​24 0x00007ff6b1fbc73a clang::LazyOffsetPtr<class clang::Stmt,unsigned __int64,{[thunk]:clang::ExternalASTSource::`vcall'{32,{flat}}' }',0}>::get(class clang::ExternalASTSource *)const c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\include\clang\ast\externalastsource.h:402:0

#​25 0x00007ff6b1f9fc0e clang::FunctionDecl::getBody(class clang::FunctionDecl const * &)const c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\ast\decl.cpp:2621:0

#​26 0x00007ff6adf927bd clang::FunctionDecl::getBody(void)const c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\include\clang\ast\decl.h:1970:0

#​27 0x00007ff6add65274 clang::CodeGen::CodeGenFunction::GenerateCode(class clang::GlobalDecl,class llvm::Function *,class clang::CodeGen::CGFunctionInfo const &) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenfunction.cpp:1274:0

#​28 0x00007ff6ada6dcc2 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(class clang::GlobalDecl,class llvm::GlobalValue *) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenmodule.cpp:3449:0

#​29 0x00007ff6ada6d99d clang::CodeGen::CodeGenModule::EmitGlobalDefinition(class clang::GlobalDecl,class llvm::GlobalValue *) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenmodule.cpp:2141:0

#​30 0x00007ff6ada7045d clang::CodeGen::CodeGenModule::EmitDeferred(void) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenmodule.cpp:1567:0

#​31 0x00007ff6ada5edaa clang::CodeGen::CodeGenModule::Release(void) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenmodule.cpp:394:0

#​32 0x00007ff6b290b8cd `anonymous namespace'::CodeGeneratorImpl::HandleTranslationUnit c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\modulebuilder.cpp:269:0

#​33 0x00007ff6b2904ac7 clang::BackendConsumer::HandleTranslationUnit(class clang::ASTContext &) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenaction.cpp:238:0

#​34 0x00007ff6afef7851 clang::ParseAST(class clang::Sema &,bool,bool) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\parse\parseast.cpp:161:0

#​35 0x00007ff6ae47e35b clang::ASTFrontendAction::ExecuteAction(void) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\frontend\frontendaction.cpp:1007:0

#​36 0x00007ff6b28f8f66 clang::CodeGenAction::ExecuteAction(void) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\codegen\codegenaction.cpp:1032:0

#​37 0x00007ff6ae47ddb7 clang::FrontendAction::Execute(void) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\frontend\frontendaction.cpp:908:0

#​38 0x00007ff6ae3e157a clang::CompilerInstance::ExecuteAction(class clang::FrontendAction &) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\frontend\compilerinstance.cpp:992:0

#​39 0x00007ff6ae63e0db clang::ExecuteCompilerInvocation(class clang::CompilerInstance *) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\lib\frontendtool\executecompilerinvocation.cpp:252:0

#​40 0x00007ff6a9d57754 cc1_main(class llvm::ArrayRef<char const *>,char const *,void *) c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\tools\driver\cc1_main.cpp:221:0

#​41 0x00007ff6a9d3ae5d ExecuteCC1Tool c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\tools\driver\driver.cpp:309:0

#​42 0x00007ff6a9d3b741 main c:\ps4-buildslave2\llvm-clang-x86_64-expensive-checks-win\llvm\tools\clang\tools\driver\driver.cpp:388:0

#​43 0x00007ff6b26123f4 invoke_main f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:65:0

#​44 0x00007ff6b26122b7 __scrt_common_main_seh f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253:0

#​45 0x00007ff6b261217e __scrt_common_main f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:296:0

#​46 0x00007ff6b2612419 mainCRTStartup f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp:17:0

#​47 0x00007fff50991fe4 (C:\WINDOWS\System32\KERNEL32.DLL+0x11fe4)

#​48 0x00007fff5351efb1 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x6efb1)

error: command failed with exit status: 0x80000003

--


Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzillaclang:modulesC++20 modules and Clang Header ModulescrashPrefer [crash-on-valid] or [crash-on-invalid]

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions