<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 --- - Assertion failed: VTableUses should be empty before it is discarded"
   href="https://llvm.org/bugs/show_bug.cgi?id=31444">31444</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Assertion failed: VTableUses should be empty before it is discarded
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </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>Frontend
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>trass3r@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>$ clang.exe -v
clang version 4.0.0 (trunk 290182)
Target: x86_64-pc-windows-msvc

typedef unsigned uint64_t;
namespace {
   class File
   {
   virtual bool isOpen() ;
   };
}
namespace {
 class FileWriter: File
 {
 };
}
namespace fileaccesslayer
{
 class QtFileWriter: FileWriter
 {
 };
}
namespace {
 class  {
  uint64_t close()
  {
close<uint32_t>;
  }

  template <typename T>
  void close()
  {
new fileaccesslayer::QtFileWriter;
  }
 }
}

$ clang.exe "-cc1" "-triple" "x86_64-pc-windows-msvc19.0.0" "-emit-obj"
"-mincremental-linker-compatible" "-disable-free" "-main-file-name"
"Rcd30ProcessingChainFactoryHelper.cpp" "-mrelocation-model" "pic" "-pic-level"
"2" "-mthread-model" "posix" "-relaxed-aliasing" "-fmath-errno" "-masm-verbose"
"-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64"
"--dependent-lib=msvcrt" "--dependent-lib=oldnames" "-stack-protector" "2"
"-gcodeview" "-fcxx-exceptions" "-fexceptions" "-fms-volatile"
"-fdefault-calling-conv=cdecl" "-fdiagnostics-format" "msvc"
"-momit-leaf-frame-pointer" "-gcodeview" "-debug-info-kind=limited"
"-debugger-tuning=gdb" "-ffunction-sections" "-O2" "-fdeprecated-macro"
"-ferror-limit" "1" "-fmessage-length" "0" "-fms-extensions"
"-fms-compatibility" "-fms-compatibility-version=19.0" "-std=c++14"
"-fdelayed-template-parsing" "-fdiagnostics-show-option" "-vectorize-loops"
"-vectorize-slp" "-fopenmp" -w R.cpp
R.cpp(23,7):  error: unknown type name 'uint32_t'; did you mean 'uint64_t'?
close<uint32_t>;
      ^~~~~~~~
      uint64_t
R.cpp(1,18):  note: 'uint64_t' declared here
typedef unsigned uint64_t;
                 ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
Assertion failed: S.VTableUses.empty() && "VTableUses should be empty before it
is discarded.", file tools\clang\include\clang/Sema/Sema.h, line 7180
#4 _wassert d:\th\minkernel\crts\ucrt\src\appcrt\startup\assert.cpp:404:0
#5
clang::Sema::SavePendingInstantiationsAndVTableUsesRAII::~SavePendingInstantiationsAndVTableUsesRAII(void)
tools\clang\include\clang\sema\sema.h:7181:0
#6 clang::Sema::InstantiateFunctionDefinition(class clang::SourceLocation,class
clang::FunctionDecl *,bool,bool,bool)
tools\clang\lib\sema\sematemplateinstantiatedecl.cpp:3749:0
#7 clang::Sema::PerformPendingInstantiations(bool)
tools\clang\lib\sema\sematemplateinstantiatedecl.cpp:4930:0
#8 clang::Sema::ActOnEndOfTranslationUnit(void)
tools\clang\lib\sema\sema.cpp:728:0
#9 clang::Parser::ParseTopLevelDecl(class clang::OpaquePtr<class
clang::DeclGroupRef> &) tools\clang\lib\parse\parser.cpp:618:0
#10 clang::ParseAST(class clang::Sema &,bool,bool)
tools\clang\lib\parse\parseast.cpp:147:0</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>