llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.48k stars 11.77k forks source link

The redecl chain doesn't get updated when newer decl has computed exception spec and the previous doesn't. #22061

Closed vgvassilev closed 9 years ago

vgvassilev commented 9 years ago
Bugzilla Link 21687
Resolution FIXED
Resolved on Mar 10, 2015 02:24
Version unspecified
OS All
CC @Axel-Naumann,@DougGregor,@zygoloid
vgvassilev commented 9 years ago

Fixed in r231738.

vgvassilev commented 9 years ago

23:03:16-vvassilev~/workspace/llvm/cmake_modules_enabled/tools/clang/lib/StaticAnalyzer/Core$ /home/vvassilev/workspace/llvm/obj/Debug+Asserts/bin/clang -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name BugReporter.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -relaxed-aliasing -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version 2.22 -momit-leaf-frame-pointer -dwarf-column-info -ffunction-sections -fdata-sections -coverage-file /home/vvassilev/workspace/llvm/cmake_modules_enabled/tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BugReporter.cpp.o -resource-dir /home/vvassilev/workspace/llvm/release/Release+Asserts/bin/../lib/clang/3.6.0 -D CLANG_ENABLE_ARCMT -D CLANG_ENABLE_OBJC_REWRITER -D CLANG_ENABLE_STATIC_ANALYZER -D GTEST_HAS_RTTI=0 -D _GNU_SOURCE -D STDC_CONSTANT_MACROS -D STDC_FORMAT_MACROS -D STDC_LIMIT_MACROS -D NDEBUG -I /home/vvassilev/workspace/llvm/cmake_modules_enabled/tools/clang/lib/StaticAnalyzer/Core -I /home/vvassilev/workspace/llvm/src/tools/clang/lib/StaticAnalyzer/Core -I /home/vvassilev/workspace/llvm/src/tools/clang/include -I /home/vvassilev/workspace/llvm/cmake_modules_enabled/tools/clang/include -I /home/vvassilev/workspace/llvm/cmake_modules_enabled/include -I /home/vvassilev/workspace/llvm/src/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward -internal-isystem /usr/local/include -internal-isystem /home/vvassilev/workspace/llvm/release/Release+Asserts/bin/../lib/clang/3.6.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Woverloaded-virtual -Wcast-qual -Wno-nested-anon-types -pedantic -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /home/vvassilev/workspace/llvm/cmake_modules_enabled/tools/clang/lib/StaticAnalyzer/Core -ferror-limit 19 -fmessage-length 185 -fvisibility-inlines-hidden -mstackrealign -fmodules -fmodules-cache-path=/tmp/org.llvm.clang/ModuleCache -fno-rtti -fobjc-runtime=gcc -fno-common -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o CMakeFiles/clangStaticAnalyzerCore.dir/BugReporter.cpp.o -x c++ /home/vvassilev/workspace/llvm/src/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp clang: /home/vvassilev/workspace/llvm/src/tools/clang/lib/AST/Type.cpp:1701: bool clang::FunctionProtoType::isNothrow(const clang::ASTContext &, bool) const: Assertion `EST != EST_Unevaluated && EST != EST_Uninstantiated' failed. 0 clang 0x000000000393ac7e llvm::sys::PrintStackTrace(_IO_FILE) + 46 1 clang 0x000000000393ba3b 2 clang 0x000000000393dd34 3 libpthread.so.0 0x00007f2c8f664cb0 4 libc.so.6 0x00007f2c8e47a0d5 gsignal + 53 5 libc.so.6 0x00007f2c8e47d83b abort + 379 6 libc.so.6 0x00007f2c8e472d9e 7 libc.so.6 0x00007f2c8e472e42 8 clang 0x000000000266d728 clang::FunctionProtoType::isNothrow(clang::ASTContext const&, bool) const + 104 9 clang 0x0000000000ef4632 clang::CodeGen::CodeGenModule::ConstructAttributeList(clang::CodeGen::CGFunctionInfo const&, clang::Decl const, llvm::SmallVector<llvm::AttributeSet, 8u>&, unsigned int&, bool) + 466 10 clang 0x0000000000dc0d54 clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributes(clang::Decl const, clang::CodeGen::CGFunctionInfo const&, llvm::Function) + 84 11 clang 0x0000000000dc1d68 clang::CodeGen::CodeGenModule::SetFunctionAttributes(clang::GlobalDecl, llvm::Function, bool, bool) + 216 12 clang 0x0000000000dc4984 clang::CodeGen::CodeGenModule::GetOrCreateLLVMFunction(llvm::StringRef, llvm::Type, clang::GlobalDecl, bool, bool, bool, llvm::AttributeSet) + 788 13 clang 0x0000000000eebbf0 clang::CodeGen::CodeGenModule::getAddrOfCXXStructor(clang::CXXMethodDecl const, clang::CodeGen::StructorType, clang::CodeGen::CGFunctionInfo const, llvm::FunctionType, bool) + 544 14 clang 0x0000000000e8dda2 15 clang 0x0000000000eeb4f3 clang::CodeGen::CodeGenModule::TryEmitDefinitionAsAlias(clang::GlobalDecl, clang::GlobalDecl, bool) + 483 16 clang 0x0000000000eeb2ee clang::CodeGen::CodeGenModule::TryEmitBaseDestructorAsAlias(clang::CXXDestructorDecl const) + 974 17 clang 0x0000000000e8d75e 18 clang 0x0000000000dc328b clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue) + 491 19 clang 0x0000000000dbda98 clang::CodeGen::CodeGenModule::EmitDeferred() + 376 20 clang 0x0000000000dbd2ef clang::CodeGen::CodeGenModule::Release() + 31 21 clang 0x0000000000d1f0c1 22 clang 0x0000000000d06c02 23 clang 0x00000000010382fc clang::ParseAST(clang::Sema&, bool, bool) + 780 24 clang 0x00000000009a6cb9 clang::ASTFrontendAction::ExecuteAction() + 345 25 clang 0x0000000000d062c7 clang::CodeGenAction::ExecuteAction() + 1527 26 clang 0x00000000009a64c8 clang::FrontendAction::Execute() + 120 27 clang 0x0000000000962ad8 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 824 28 clang 0x0000000000919b17 clang::ExecuteCompilerInvocation(clang::CompilerInstance) + 1063 29 clang 0x0000000000902245 cc1_main(llvm::ArrayRef<char const>, char const, void*) + 741 30 clang 0x0000000000911c3b 31 clang 0x0000000000910d14 main + 1028 32 libc.so.6 0x00007f2c8e46576d libc_start_main + 237 33 clang 0x0000000000901609 Stack dump:

  1. Program arguments: /home/vvassilev/workspace/llvm/obj/Debug+Asserts/bin/clang -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name BugReporter.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -relaxed-aliasing -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version 2.22 -momit-leaf-frame-pointer -dwarf-column-info -ffunction-sections -fdata-sections -coverage-file /home/vvassilev/workspace/llvm/cmake_modules_enabled/tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BugReporter.cpp.o -resource-dir /home/vvassilev/workspace/llvm/release/Release+Asserts/bin/../lib/clang/3.6.0 -D CLANG_ENABLE_ARCMT -D CLANG_ENABLE_OBJC_REWRITER -D CLANG_ENABLE_STATIC_ANALYZER -D GTEST_HAS_RTTI=0 -D _GNU_SOURCE -D STDC_CONSTANT_MACROS -D STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D NDEBUG -I /home/vvassilev/workspace/llvm/cmake_modules_enabled/tools/clang/lib/StaticAnalyzer/Core -I /home/vvassilev/workspace/llvm/src/tools/clang/lib/StaticAnalyzer/Core -I /home/vvassilev/workspace/llvm/src/tools/clang/include -I /home/vvassilev/workspace/llvm/cmake_modules_enabled/tools/clang/include -I /home/vvassilev/workspace/llvm/cmake_modules_enabled/include -I /home/vvassilev/workspace/llvm/src/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward -internal-isystem /usr/local/include -internal-isystem /home/vvassilev/workspace/llvm/release/Release+Asserts/bin/../lib/clang/3.6.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Woverloaded-virtual -Wcast-qual -Wno-nested-anon-types -pedantic -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /home/vvassilev/workspace/llvm/cmake_modules_enabled/tools/clang/lib/StaticAnalyzer/Core -ferror-limit 19 -fmessage-length 185 -fvisibility-inlines-hidden -mstackrealign -fmodules -fmodules-cache-path=/tmp/org.llvm.clang/ModuleCache -fno-rtti -fobjc-runtime=gcc -fno-common -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o CMakeFiles/clangStaticAnalyzerCore.dir/BugReporter.cpp.o -x c++ /home/vvassilev/workspace/llvm/src/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp