[llvm-bugs] [Bug 37723] New: msvc mangler crash at empty enum

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Jun 6 19:24:11 PDT 2018


https://bugs.llvm.org/show_bug.cgi?id=37723

            Bug ID: 37723
           Summary: msvc mangler crash at empty enum
           Product: clang
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: LLVM Codegen
          Assignee: unassignedclangbugs at nondot.org
          Reporter: comicfans44 at gmail.com
                CC: llvm-bugs at lists.llvm.org

clang-cl  (6.0.1) crash when codegen at a empty enum (in msvc name mangler)



Assertion failed: EnumeratorI != ED->enumerator_end(), file
E:\src\llvm-project\clang\lib\AST\MicrosoftMangle.cpp, line 886



a minimal demo to crash clang-cl:

struct Dummy{

    enum {};
};

Dummy m ;


minimal commands to crash this:
clang-cl.exe -cc1 -triple x86_64-pc-windows-msvc16.0.40219 -emit-obj -gcodeview
-debug-info-kind=limited -x c++ empty_enum.cpp



0x00007FF75C38DE9C (0x000000FD00000016 0x0000000000000000 0x00007FF75A27F16F
0x0000000000000000), HandleAbort() + 0xC bytes(s),
e:\src\llvm-project\llvm\lib\support\windows\signals.inc, line 411
0x00007FFF55FFA381 (0x00007FFF00000016 0x000000FDBD388490 0x0000000801000006
0xFFFFFF01000000F8), raise() + 0x441 bytes(s)
0x00007FFF55FFBF59 (0x000000FDBD388490 0x0000000000000240 0x00007FFF560F3CC0
0x00007FF763D10AC0), abort() + 0x39 bytes(s)
0x00007FFF560019C5 (0x00007FF763D10AC0 0x00007FF763D10A50 0xCCCCCCCC00000376
0xCCCCCCCCCCCCCCCC), _get_wide_winmain_command_line() + 0x2435 bytes(s)
0x00007FFF560015E7 (0x00007FF763D10AC0 0x00007FF763D10A50 0xCCCCCCCC00000376
0xCCCCCCCCCCCCCCCC), _get_wide_winmain_command_line() + 0x2057 bytes(s)
0x00007FFF55FFF671 (0x00007FF763D10AC0 0x00007FF763D10A50 0xCCCCCCCC00000376
0x00007FF7612F28C7), _get_wide_winmain_command_line() + 0xE1 bytes(s)
0x00007FFF56001D8F (0x00007FF763D10AC0 0x00007FF763D10A50 0xCCCCCCCC00000376
0xCCCCCCCCCCCCCCCC), _wassert() + 0x2F bytes(s)
0x00007FF7612F28C7 (0x000000FDBD3896B0 0x0000020E22324550 0x0000000000000000
0xCCCCCCCCCCCCCCCC), `anonymous
namespace'::MicrosoftCXXNameMangler::mangleUnqualifiedName() + 0xD57 bytes(s),
e:\src\llvm-project\clang\lib\ast\microsoftmangle.cpp, line 886 + 0x46 byte(s)
0x00007FF761301BE4 (0x000000FDBD3896B0 0x0000020E22324550 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), `anonymous
namespace'::MicrosoftCXXNameMangler::mangleUnqualifiedName() + 0x44 bytes(s),
e:\src\llvm-project\clang\lib\ast\microsoftmangle.cpp, line 321
0x00007FF7612EF342 (0x000000FDBD3896B0 0x0000020E22324550 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), `anonymous
namespace'::MicrosoftCXXNameMangler::mangleName() + 0x32 bytes(s),
e:\src\llvm-project\clang\lib\ast\microsoftmangle.cpp, line 664
0x00007FF7612F71B8 (0x000000FDBD3896B0 0x0000020E22324550 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), `anonymous
namespace'::MicrosoftCXXNameMangler::mangleType() + 0x48 bytes(s),
e:\src\llvm-project\clang\lib\ast\microsoftmangle.cpp, line 2204
0x00007FF7612F668C (0x000000FDBD3896B0 0x0000020E223245F0 0x0000020E00000000
0x0000000000000000), `anonymous
namespace'::MicrosoftCXXNameMangler::mangleType() + 0x4C bytes(s),
e:\src\llvm-project\clang\lib\ast\microsoftmangle.cpp, line 2196
0x00007FF7612F0994 (0x000000FDBD3896B0 0x0000020E223245F0 0x0000000000000000
0xCCCCCCCC00000003), `anonymous
namespace'::MicrosoftCXXNameMangler::mangleType() + 0x794 bytes(s),
e:\src\llvm-project\clang\include\clang\ast\typenodes.def, line 93 + 0x27
byte(s)
0x00007FF7612EDA8A (0x0000020E222B3E70 0x0000020E223245F0 0x000000FDBD389A58
0xCCCCCCCCCCCCCCCC), `anonymous
namespace'::MicrosoftMangleContextImpl::mangleCXXRTTIName() + 0xAA bytes(s),
e:\src\llvm-project\clang\lib\ast\microsoftmangle.cpp, line 2799
0x00007FF75C903725 (0x000000FDBD389B60 0x0000020E223245F0 0x0000020E222B2F50
0x0000020E2221D0F8), getUniqueTagTypeName() + 0x135 bytes(s),
e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line 798
0x00007FF75C8EFC74 (0x0000020E222B5A90 0x0000020E223245F0 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), clang::CodeGen::CGDebugInfo::CreateEnumType() + 0x104
bytes(s), e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line 2443
0x00007FF75C8FFB9F (0x0000020E222B5A90 0x0000020E223245F0 0x0000020E22248B58
0xCCCCCCCCCCCCCCCC), clang::CodeGen::CGDebugInfo::CreateTypeNode() + 0x21F
bytes(s), e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line 2707 +
0x17 byte(s)
0x00007FF75C8FEC6E (0x0000020E222B5A90 0x0000020E223245F0 0x0000020E22248B58
0x0000000000000000), clang::CodeGen::CGDebugInfo::getOrCreateType() + 0x9E
bytes(s), e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line 2625 +
0x14 byte(s)
0x00007FF75C8F49AE (0x0000020E222B5A90 0x0000020E22324550 0x000000FDBD38A130
0xCCCCCCCCCCCCCCCC), clang::CodeGen::CGDebugInfo::CollectRecordNestedType() +
0x9E bytes(s), e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line 1211
+ 0x26 byte(s)
0x00007FF75C8F4DF8 (0x0000020E222B5A90 0x0000020E222B1138 0x0000020E22248B58
0x000000FDBD38A130), clang::CodeGen::CGDebugInfo::CollectRecordFields() + 0x408
bytes(s), e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line 1261
0x00007FF75C8ED3C9 (0x0000020E222B5A90 0x0000020E222B11D0 0x0000020E222B1138
0x0000020E2220E590), clang::CodeGen::CGDebugInfo::CreateTypeDefinition() +
0x209 bytes(s), e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line
1970
0x00007FF75C8ED1AC (0x0000020E222B5A90 0x0000020E222B11D0 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), clang::CodeGen::CGDebugInfo::CreateType() + 0xDC bytes(s),
e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line 1927
0x00007FF75C8FFB83 (0x0000020E222B5A90 0x0000020E222B11D0 0x0000020E22248B58
0xCCCCCCCCCCCCCCCC), clang::CodeGen::CGDebugInfo::CreateTypeNode() + 0x203
bytes(s), e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line 2705 +
0x17 byte(s)
0x00007FF75C8FEC6E (0x0000020E222B5A90 0x0000020E222B11D0 0x0000020E22248B58
0x000000FDBD38A474), clang::CodeGen::CGDebugInfo::getOrCreateType() + 0x9E
bytes(s), e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line 2625 +
0x14 byte(s)
0x00007FF75C8F9AA7 (0x0000020E222B5A90 0x0000020E222F7708 0x0000020E22324640
0xCCCCCCCCCCCCCC00), clang::CodeGen::CGDebugInfo::EmitGlobalVariable() + 0x437
bytes(s), e:\src\llvm-project\clang\lib\codegen\cgdebuginfo.cpp, line 3919 +
0xCE byte(s)
0x00007FF75C95DAF4 (0x0000020E222B2F50 0x0000020E22324640 0xCCCCCCCC00000000
0x0000020E22257DE0), clang::CodeGen::CodeGenModule::EmitGlobalVarDefinition() +
0xC24 bytes(s), e:\src\llvm-project\clang\lib\codegen\codegenmodule.cpp, line
2973
0x00007FF75C95CB67 (0x0000020E222B2F50 0x0000020E22324640 0x0000000000000000
0xCCCCCCCCCCCCCCCC), clang::CodeGen::CodeGenModule::EmitGlobalDefinition() +
0x2F7 bytes(s), e:\src\llvm-project\clang\lib\codegen\codegenmodule.cpp, line
2056 + 0x41 byte(s)
0x00007FF75C9594CA (0x0000020E222B2F50 0x0000020E22324640 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), clang::CodeGen::CodeGenModule::EmitGlobal() + 0x56A
bytes(s), e:\src\llvm-project\clang\lib\codegen\codegenmodule.cpp, line 1829
0x00007FF75C953CB9 (0x0000020E222B2F50 0x0000020E22324640 0xCCCCCCCCCCCCCC01
0xCCCCCCCCCCCCCCCC), clang::CodeGen::CodeGenModule::EmitTopLevelDecl() + 0x149
bytes(s), e:\src\llvm-project\clang\lib\codegen\codegenmodule.cpp, line 4024
0x00007FF7618BB8DE (0x0000020E222B25B0 0x0000020E22324640 0xCCCCCCCC00000000
0x0000020E22257DE0), `anonymous
namespace'::CodeGeneratorImpl::HandleTopLevelDecl() + 0xAE bytes(s),
e:\src\llvm-project\clang\lib\codegen\modulebuilder.cpp, line 160 + 0x23
byte(s)
0x00007FF7618B4E2B (0x0000020E222B1720 0x0000020E22324640 0x0000020E222ED110
0xCCCCCCCCCCCCCC00), clang::BackendConsumer::HandleTopLevelDecl() + 0x12B
bytes(s), e:\src\llvm-project\clang\lib\codegen\codegenaction.cpp, line 170
0x00007FF75ED94F1E (0x0000020E222ED110 0xCCCCCCCC00000000 0x0000000000000000
0xCCCCCCCCCCCCCCCC), clang::ParseAST() + 0x23E bytes(s),
e:\src\llvm-project\clang\lib\parse\parseast.cpp, line 151 + 0x4C byte(s)
0x00007FF75D35FC5B (0x0000020E2221F990 0x000000FDBD38C8F0 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), clang::ASTFrontendAction::ExecuteAction() + 0x12B
bytes(s), e:\src\llvm-project\clang\lib\frontend\frontendaction.cpp, line 1000
0x00007FF7618AA976 (0x0000020E2221F990 0xCCCCCCCCCCCCCCCC 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), clang::CodeGenAction::ExecuteAction() + 0x516 bytes(s),
e:\src\llvm-project\clang\lib\codegen\codegenaction.cpp, line 1032
0x00007FF75D35F6B7 (0x0000020E2221F990 0x0000020E2220C0B0 0x0000020E22248840
0xCCCCCCCCCCCCCCCC), clang::FrontendAction::Execute() + 0x97 bytes(s),
e:\src\llvm-project\clang\lib\frontend\frontendaction.cpp, line 901
0x00007FF75D2C3942 (0x0000020E2220C0B0 0x0000020E2221F990 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), clang::CompilerInstance::ExecuteAction() + 0x562 bytes(s),
e:\src\llvm-project\clang\lib\frontend\compilerinstance.cpp, line 992
0x00007FF75D5188AB (0x0000020E2220C0B0 0x0000020E22253BF0 0x00007FF75A2FAB01
0x000000FDBD38D190), clang::ExecuteCompilerInvocation() + 0x75B bytes(s),
e:\src\llvm-project\clang\lib\frontendtool\executecompilerinvocation.cpp, line
252 + 0x1D byte(s)
0x00007FF75A4F60A4 (0x000000FDBD38D9A0 0x0000020E2224AEB0 0x00007FF75A2FAB12
0xCCCCCCCCCCCCCCCC), cc1_main() + 0x534 bytes(s),
e:\src\llvm-project\clang\tools\driver\cc1_main.cpp, line 221 + 0x12 byte(s)
0x00007FF75A4DDD6D (0x000000FDBD38F7C0 0x000000FDBD38F7D0 0x000000FDBD38DA00
0x000000FDBD38E300), ExecuteCC1Tool() + 0xFD bytes(s),
e:\src\llvm-project\clang\tools\driver\driver.cpp, line 309 + 0x61 byte(s)
0x00007FF75A4DE651 (0x000000000000000A 0x0000020E2220B610 0x0000000000000000
0x00007FF761A775C0), main() + 0x7B1 bytes(s),
e:\src\llvm-project\clang\tools\driver\driver.cpp, line 388 + 0x9D byte(s)
0x00007FF76143E124 (0x00007FF761A71000 0x00007FF761A77070 0x0000000000000000
0x0000000000000000), invoke_main() + 0x34 bytes(s),
f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl, line 79
0x00007FF76143DFD4 (0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000), __scrt_common_main_seh() + 0x124 bytes(s),
f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl, line 283 + 0x5 byte(s)
0x00007FF76143DE9E (0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000), __scrt_common_main() + 0xE bytes(s),
f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl, line 326
0x00007FF76143E1B9 (0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000), mainCRTStartup() + 0x9 bytes(s),
f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp, line 17
0x00007FFF89702784 (0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000), BaseThreadInitThunk() + 0x14 bytes(s)
0x00007FFF8BDF0D51 (0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000), RtlUserThreadStart() + 0x21 bytes(s)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20180607/13d45f2d/attachment-0001.html>


More information about the llvm-bugs mailing list