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

            Bug ID: 30491
           Summary: [regression] clang crash on __has_nothrow_copy
           Product: clang
           Version: 3.9
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++14
          Assignee: unassignedclangb...@nondot.org
          Reporter: blastr...@free.fr
                CC: llvm-bugs@lists.llvm.org
    Classification: Unclassified

The following code compiles on clang 3.8 but makes clang 3.9 crash:

    struct StringWrapper
    {
      StringWrapper(StringWrapper const&) noexcept(false)
      {}
    };

    struct AccountID : public StringWrapper
    {
      using StringWrapper::StringWrapper;
    };

    static_assert(!__has_nothrow_copy(AccountID), "no");

Here is the backtrace:

    #0 0x0000000000f13d08 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/home/philippe/.local/bin/clang-3.9+0xf13d08)
    #1 0x0000000000f143e6 SignalHandler(int)
(/home/philippe/.local/bin/clang-3.9+0xf143e6)
    #2 0x00007ff87fb58d40 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x10d40)
    #3 0x00000000022b56b8 clang::FunctionDecl::getNumParams() const
(/home/philippe/.local/bin/clang-3.9+0x22b56b8)
    #4 0x00000000022d71d4
clang::CXXConstructorDecl::isCopyOrMoveConstructor(unsigned int&) const
(/home/philippe/.local/bin/clang-3.9+0x22d71d4)
    #5 0x00000000022d4439 clang::CXXConstructorDecl::isCopyConstructor(unsigned
int&) const (/home/philippe/.local/bin/clang-3.9+0x22d4439)
    #6 0x0000000001d8fe82 evaluateTypeTrait(clang::Sema&, clang::TypeTrait,
clang::SourceLocation, llvm::ArrayRef<clang::TypeSourceInfo*>,
clang::SourceLocation) (/home/philippe/.local/bin/clang-3.9+0x1d8fe82)
    #7 0x0000000001d8d3c4 clang::Sema::BuildTypeTrait(clang::TypeTrait,
clang::SourceLocation, llvm::ArrayRef<clang::TypeSourceInfo*>,
clang::SourceLocation) (/home/philippe/.local/bin/clang-3.9+0x1d8d3c4)
    #8 0x0000000001d9010a clang::Sema::ActOnTypeTrait(clang::TypeTrait,
clang::SourceLocation, llvm::ArrayRef<clang::OpaquePtr<clang::QualType> >,
clang::SourceLocation) (/home/philippe/.local/bin/clang-3.9+0x1d9010a)
    #9 0x00000000019c6870 clang::Parser::ParseTypeTrait()
(/home/philippe/.local/bin/clang-3.9+0x19c6870)
    #10 0x00000000019addfe clang::Parser::ParseCastExpression(bool, bool,
bool&, clang::Parser::TypeCastState)
(/home/philippe/.local/bin/clang-3.9+0x19addfe)
    #11 0x00000000019adbd8
clang::Parser::ParseConstantExpression(clang::Parser::TypeCastState)
(/home/philippe/.local/bin/clang-3.9+0x19adbd8)
    #12 0x000000000199bb49
clang::Parser::ParseStaticAssertDeclaration(clang::SourceLocation&)
(/home/philippe/.local/bin/clang-3.9+0x199bb49)
    #13 0x0000000001982354 clang::Parser::ParseDeclaration(unsigned int,
clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&)
(/home/philippe/.local/bin/clang-3.9+0x1982354)
    #14 0x000000000196f6fe
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) (/home/philippe/.local/bin/clang-3.9+0x196f6fe)
    #15 0x000000000196ecdc
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
(/home/philippe/.local/bin/clang-3.9+0x196ecdc)
    #16 0x000000000196b596 clang::ParseAST(clang::Sema&, bool, bool)
(/home/philippe/.local/bin/clang-3.9+0x196b596)
    #17 0x0000000001365f3c clang::FrontendAction::Execute()
(/home/philippe/.local/bin/clang-3.9+0x1365f3c)
    #18 0x000000000132fca8
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/home/philippe/.local/bin/clang-3.9+0x132fca8)
    #19 0x00000000013df67b
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/home/philippe/.local/bin/clang-3.9+0x13df67b)
    #20 0x000000000070d8ad cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/home/philippe/.local/bin/clang-3.9+0x70d8ad)
    #21 0x000000000070cd6e main (/home/philippe/.local/bin/clang-3.9+0x70cd6e)
    #22 0x00007ff87e6df5f0 __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x205f0)
    #23 0x0000000000709d29 _start
(/home/philippe/.local/bin/clang-3.9+0x709d29)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to