[llvm-bugs] [Bug 31444] New: Assertion failed: VTableUses should be empty before it is discarded

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Dec 21 04:03:25 PST 2016


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

            Bug ID: 31444
           Summary: Assertion failed: VTableUses should be empty before it
                    is discarded
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: trass3r at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

$ 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

-- 
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/20161221/6d5f470d/attachment-0001.html>


More information about the llvm-bugs mailing list