[llvm-bugs] [Bug 31560] New: Assertion `Ancestor->getEntity() == CurContext && "ancestor context mismatch"' failed.

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Jan 6 06:28:52 PST 2017


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

            Bug ID: 31560
           Summary: Assertion `Ancestor->getEntity() == CurContext &&
                    "ancestor context mismatch"' failed.
           Product: new-bugs
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: yaron.keren at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

$ cat file.cpp
namespace llvm {
namespace Hexagon {}
}
void set() {
  Hexagon::NoRegister;
  Hexagon::NoRegister;
  Hexagon::NoRegister;
}
template <class> struct pair { pair(int, int); };
struct HexagonMCChecker {
  static pair<int> Unconditional;
  void checkRegisters();
};
pair<int> HexagonMCChecker::Unconditional(Hexagon::NoRegister, 0);
void HexagonMCChecker::checkRegisters() {}


$/.../llvm/build/bin/clang -v
clang version 4.0.0 (trunk 291212)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /.../llvm/build/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.2.0
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.2.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64


$#/.../llvm/build/bin/clang -cc1 -fsyntax-only -ferror-limit 5 file.cpp
file.cpp:5:3: error: use of undeclared identifier 'Hexagon'; did you mean
'llvm::Hexagon'?
  Hexagon::NoRegister;
  ^~~~~~~
  llvm::Hexagon
file.cpp:2:11: note: 'llvm::Hexagon' declared here
namespace Hexagon {}
          ^
file.cpp:5:12: error: no member named 'NoRegister' in namespace 'llvm::Hexagon'
  Hexagon::NoRegister;
  ~~~~~~~~~^
file.cpp:6:3: error: use of undeclared identifier 'Hexagon'; did you mean
'llvm::Hexagon'?
  Hexagon::NoRegister;
  ^~~~~~~
  llvm::Hexagon
file.cpp:2:11: note: 'llvm::Hexagon' declared here
namespace Hexagon {}
          ^
file.cpp:6:12: error: no member named 'NoRegister' in namespace 'llvm::Hexagon'
  Hexagon::NoRegister;
  ~~~~~~~~~^
file.cpp:7:3: error: use of undeclared identifier 'Hexagon'; did you mean
'llvm::Hexagon'?
  Hexagon::NoRegister;
  ^~~~~~~
  llvm::Hexagon
file.cpp:2:11: note: 'llvm::Hexagon' declared here
namespace Hexagon {}
          ^
fatal error: too many errors emitted, stopping now
clang: ../tools/clang/lib/Sema/SemaDecl.cpp:1170: void
clang::Sema::EnterDeclaratorContext(clang::Scope *, clang::DeclContext *):
Assertion `Ancestor->getEntity() == CurContext && "ancestor context mismatch"'
failed.
#0 0x0000000002d1809c llvm::sys::PrintStackTrace(llvm::raw_ostream&)
/.../llvm/build/../lib/Support/Unix/Signals.inc:402:11
#1 0x0000000002d18589 PrintStackTraceSignalHandler(void*)
/.../llvm/build/../lib/Support/Unix/Signals.inc:466:1
#2 0x0000000002d16903 llvm::sys::RunSignalHandlers()
/.../llvm/build/../lib/Support/Signals.cpp:0:5
#3 0x0000000002d188e4 SignalHandler(int)
/.../llvm/build/../lib/Support/Unix/Signals.inc:256:1
#4 0x00007f2d354d3390 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
#5 0x00007f2d34037428 gsignal
/build/glibc-t3gR2i/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
#6 0x00007f2d3403902a abort /build/glibc-t3gR2i/glibc-2.23/stdlib/abort.c:91:0
#7 0x00007f2d3402fbd7 __assert_fail_base
/build/glibc-t3gR2i/glibc-2.23/assert/assert.c:92:0
#8 0x00007f2d3402fc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
#9 0x0000000004fc983e clang::Sema::EnterDeclaratorContext(clang::Scope*,
clang::DeclContext*)
/.../llvm/build/../tools/clang/lib/Sema/SemaDecl.cpp:1173:16
#10 0x0000000004f11f38 clang::Sema::ActOnCXXEnterDeclaratorScope(clang::Scope*,
clang::CXXScopeSpec&)
/.../llvm/build/../tools/clang/lib/Sema/SemaCXXScopeSpec.cpp:1066:7
#11 0x0000000004b3e380
clang::Parser::DeclaratorScopeObj::EnterDeclaratorScope()
/.../llvm/build/../tools/clang/include/clang/Parse/Parser.h:2337:11
#12 0x0000000004b351e5 clang::Parser::ParseDirectDeclarator(clang::Declarator&)
/.../llvm/build/../tools/clang/lib/Parse/ParseDecl.cpp:5267:9
#13 0x0000000004b3448d
clang::Parser::ParseDeclaratorInternal(clang::Declarator&, void
(clang::Parser::*)(clang::Declarator&))
/.../llvm/build/../tools/clang/lib/Parse/ParseDecl.cpp:0:11
#14 0x0000000004b1abb8 clang::Parser::ParseDeclarator(clang::Declarator&)
/.../llvm/build/../tools/clang/lib/Parse/ParseDecl.cpp:4951:1
#15 0x0000000004b2b3cc clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&,
unsigned int, clang::SourceLocation*, clang::Parser::ForRangeInit*)
/.../llvm/build/../tools/clang/lib/Parse/ParseDecl.cpp:1758:3
#16 0x0000000004b06062
clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec&, clang::AccessSpecifier)
/.../llvm/build/../tools/clang/lib/Parse/Parser.cpp:985:10
#17 0x0000000004b057a0
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier)
/.../llvm/build/../tools/clang/lib/Parse/Parser.cpp:1001:12
#18 0x0000000004b0509b
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*)
/.../llvm/build/../tools/clang/lib/Parse/Parser.cpp:851:12
#19 0x0000000004b0403e
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
/.../llvm/build/../tools/clang/lib/Parse/Parser.cpp:627:12
#20 0x0000000004afecef clang::ParseAST(clang::Sema&, bool, bool)
/.../llvm/build/../tools/clang/lib/Parse/ParseAST.cpp:147:14
#21 0x00000000036bedbc clang::ASTFrontendAction::ExecuteAction()
/.../llvm/build/../tools/clang/lib/Frontend/FrontendAction.cpp:560:1
#22 0x00000000036be860 clang::FrontendAction::Execute()
/.../llvm/build/../tools/clang/lib/Frontend/FrontendAction.cpp:463:7
#23 0x0000000003651ba7
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
/.../llvm/build/../tools/clang/lib/Frontend/CompilerInstance.cpp:954:7
#24 0x0000000003828b15
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
/.../llvm/build/../tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:249:8
#25 0x0000000000e048bf cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) /.../llvm/build/../tools/clang/tools/driver/cc1_main.cpp:221:11
#26 0x0000000000df81f9 ExecuteCC1Tool(llvm::ArrayRef<char const*>,
llvm::StringRef) /.../llvm/build/../tools/clang/tools/driver/driver.cpp:299:5
#27 0x0000000000df6e70 main
/.../llvm/build/../tools/clang/tools/driver/driver.cpp:380:5
#28 0x00007f2d34022830 __libc_start_main
/build/glibc-t3gR2i/glibc-2.23/csu/../csu/libc-start.c:325:0
#29 0x0000000000df5ff9 _start (/.../llvm/build/bin/clang+0xdf5ff9)
Stack dump:
0.      Program arguments: /.../llvm/build/bin/clang -cc1 -fsyntax-only
-ferror-limit 5 file.cpp
1.      file.cpp:15:24: current parser token 'checkRegisters'

-- 
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/20170106/9da89518/attachment.html>


More information about the llvm-bugs mailing list