<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Compiler crash in ActionHandler::getStartBlock() of lib\codegen\winehfuncinfo.h:38"
   href="https://llvm.org/bugs/show_bug.cgi?id=23092">23092</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Compiler crash in ActionHandler::getStartBlock() of lib\codegen\winehfuncinfo.h:38
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Windows NT
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Common Code Generator Code
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>douglas_yung@playstation.sony.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The following code causes a Windows hosted build of the compiler targeting
Windows to crash:

//===== test.cpp =====
void foo(int x) { }

void bar_d(int i) throw(double) { foo(i); }

typedef void (*vifunc)(int);
vifunc vitbl[] = { bar_d };
//====================

Compile the code with the command:

clang "-cc1" "-triple" "x86_64-pc-windows-msvc" "-emit-obj" "-main-file-name"
"test.cpp" "-target-cpu" "x86-64" "-fcxx-exceptions" "-fexceptions" "test.cpp"

And a debug build of the compiler will produce the following stack trace when
it crashes:

0x000000014015C44B (0x0000000000000000 0x0000000002973A00 0x0000000000A2BAA8
0x0000000000A2BA50), llvm::ActionHandler::getStartBlock() + 0xB bytes(s),
k:\src\llvm\llvm\include\llvm\codegen\winehfuncinfo.h, line 38 + 0xB byte(s)
0x0000000140149119 (0x000000000296CC90 0x0000000002973DE0 0x0000000000A2BD50
0xCCCCCCCCCCCCCCCC), `anonymous namespace'::WinEHPrepare::mapLandingPadBlocks()
+ 0x4E9 bytes(s), k:\src\llvm\llvm\lib\codegen\winehprepare.cpp, line 1188 +
0xD byte(s)
0x0000000140146E83 (0x000000000296CC90 0x000000000296E260 0x0000000000A2C528
0xCCCCCCCCCCCCCCCC), `anonymous
namespace'::WinEHPrepare::prepareExceptionHandlers() + 0x2A3 bytes(s),
k:\src\llvm\llvm\lib\codegen\winehprepare.cpp, line 366
0x0000000140146B44 (0x000000000296CC90 0x000000000296E260 0x000000000296E260
0xCCCCCCCC00000004), `anonymous namespace'::WinEHPrepare::runOnFunction() +
0x304 bytes(s), k:\src\llvm\llvm\lib\codegen\winehprepare.cpp, line 313
0x00000001403809FE (0x00000000029BCBD0 0x000000000296E260 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), llvm::FPPassManager::runOnFunction() + 0x1AE bytes(s),
k:\src\llvm\llvm\lib\ir\legacypassmanager.cpp, line 1538 + 0x37 byte(s)
0x0000000140380C14 (0x00000000029BCBD0 0x0000000000CEA9A0 0x0000000000CEA9A0
0xCCCCCCCC00000005), llvm::FPPassManager::runOnModule() + 0x94 bytes(s),
k:\src\llvm\llvm\lib\ir\legacypassmanager.cpp, line 1558 + 0x23 byte(s)
0x0000000140381FE1 (0x0000000002984A80 0x0000000000CEA9A0 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), `anonymous namespace'::MPPassManager::runOnModule() +
0x311 bytes(s), k:\src\llvm\llvm\lib\ir\legacypassmanager.cpp, line 1616 + 0x40
byte(s)
0x00000001403828D4 (0x00000000029846B0 0x0000000000CEA9A0 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), llvm::legacy::PassManagerImpl::run() + 0x174 bytes(s),
k:\src\llvm\llvm\lib\ir\legacypassmanager.cpp, line 1723 + 0x2A byte(s)
0x000000014037BB06 (0x000000000296A9B0 0x0000000000CEA9A0 0x0000000000A2CC00
0xCCCCCCCCCCCCCCCC), llvm::legacy::PassManager::run() + 0x36 bytes(s),
k:\src\llvm\llvm\lib\ir\legacypassmanager.cpp, line 1757
0x00000001412D250D (0x0000000000A2CDE0 0x0000000000000005 0x0000000000C9FD30
0x0000000000C9BE80), `anonymous namespace'::EmitAssemblyHelper::EmitAssembly()
+ 0x45D bytes(s), k:\src\llvm\llvm\tools\clang\lib\codegen\backendutil.cpp,
line 646
0x00000001412D032B (0x0000000000C94330 0x0000000000CA8660 0x0000000000C9BE80
0x0000000000CA8D60), clang::EmitBackendOutput() + 0x9B bytes(s),
k:\src\llvm\llvm\tools\clang\lib\codegen\backendutil.cpp, line 661
0x00000001412A8F7B (0x0000000000CE82F0 0x0000000000CDCE70 0x00000000029100B0
0xCCCCCCCCCCCCCC00), clang::BackendConsumer::HandleTranslationUnit() + 0x38B
bytes(s), k:\src\llvm\llvm\tools\clang\lib\codegen\codegenaction.cpp, line 178
0x0000000141F16C58 (0x00000000029100B0 0xCCCCCCCC00000000 0x0000000000000000
0xCCCCCCCCCCCCCCCC), clang::ParseAST() + 0x378 bytes(s),
k:\src\llvm\llvm\tools\clang\lib\parse\parseast.cpp, line 153
0x0000000140E2742B (0x0000000000C97B10 0xCCCCCCCCCCCCCCCC 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), clang::ASTFrontendAction::ExecuteAction() + 0x12B
bytes(s), k:\src\llvm\llvm\tools\clang\lib\frontend\frontendaction.cpp, line
539
0x00000001412A444C (0x0000000000C97B10 0xCCCCCCCCCCCCCCCC 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), clang::CodeGenAction::ExecuteAction() + 0x63C bytes(s),
k:\src\llvm\llvm\tools\clang\lib\codegen\codegenaction.cpp, line 734
0x0000000140E26F14 (0x0000000000C97B10 0x0000000000C9BD00 0x0000000000C9FB30
0xCCCCCCCCCCCCCCCC), clang::FrontendAction::Execute() + 0x94 bytes(s),
k:\src\llvm\llvm\tools\clang\lib\frontend\frontendaction.cpp, line 444
0x0000000140DCD4BD (0x0000000000C9BD00 0x0000000000C97B10 0xCCCCCCCCCCCCCCCC
0xCCCCCCCCCCCCCCCC), clang::CompilerInstance::ExecuteAction() + 0x38D bytes(s),
k:\src\llvm\llvm\tools\clang\lib\frontend\compilerinstance.cpp, line 808
0x0000000140F73AE3 (0x0000000000C9BD00 0x0000000000C94330 0x000000013FA12301
0x0000000000A2DAE0), clang::ExecuteCompilerInvocation() + 0x503 bytes(s),
k:\src\llvm\llvm\tools\clang\lib\frontendtool\executecompilerinvocation.cpp,
line 222 + 0x1D byte(s)
0x000000013FAD34F9 (0x0000000000A2E270 0x0000000000CA75D0 0x000000013FA123EC
0xCCCCCCCCCCCCCCCC), cc1_main() + 0x3E9 bytes(s),
k:\src\llvm\llvm\tools\clang\tools\driver\cc1_main.cpp, line 110 + 0x12 byte(s)
0x000000013FABBD3D (0x0000000000A2FAE0 0x0000000000A2FAF0 0x0000000000A2E3CC
0x0000000000A2EB00), ExecuteCC1Tool() + 0xFD bytes(s),
k:\src\llvm\llvm\tools\clang\tools\driver\driver.cpp, line 369 + 0x61 byte(s)
0x000000013FABC307 (0x000000010000000C 0x0000000000C93E30 0x0000000000000000
0x0000000143281366), main() + 0x497 bytes(s),
k:\src\llvm\llvm\tools\clang\tools\driver\driver.cpp, line 415 + 0x9D byte(s)
0x000000014327FFBD (0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000), __tmainCRTStartup() + 0x19D bytes(s),
f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c, line 626 + 0x19 byte(s)
0x00000001432800EE (0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000), mainCRTStartup() + 0xE bytes(s),
f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c, line 466
0x00000000777F59ED (0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000), BaseThreadInitThunk() + 0xD bytes(s)
0x000000007792C541 (0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000), RtlUserThreadStart() + 0x21 bytes(s)


This crash started to happen with revision 231981, and I can reproduce it with
the newest build I have, 233744.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>