]> granicus.if.org Git - clang/commit
Add Attribute NoThrow as an Exception Specifier Type
authorErich Keane <erich.keane@intel.com>
Thu, 30 May 2019 17:31:54 +0000 (17:31 +0000)
committerErich Keane <erich.keane@intel.com>
Thu, 30 May 2019 17:31:54 +0000 (17:31 +0000)
commitb4651bd20f476f639700b73cd01850fb957de987
treee53dc29bf0f5857ce2d1a1b76c17ef3484709524
parent0995aac68ee0d35648cd8a7577689a8bec29be6d
Add Attribute NoThrow as an Exception Specifier Type

In response to https://bugs.llvm.org/show_bug.cgi?id=33235, it became
clear that the current mechanism of hacking through checks for the
exception specification of a function gets confused really quickly when
there are alternate exception specifiers.

This patch introcues EST_NoThrow, which is the equivilent of
EST_noexcept when caused by EST_noThrow. The existing implementation is
left in place to cover functions with no FunctionProtoType.

Differential Revision: https://reviews.llvm.org/D62435

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362119 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
include/clang-c/Index.h
include/clang/AST/Decl.h
include/clang/AST/Type.h
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Basic/ExceptionSpecificationType.h
lib/AST/ASTContext.cpp
lib/AST/JSONNodeDumper.cpp
lib/AST/Type.cpp
lib/Sema/SemaDeclAttr.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaExprCXX.cpp
lib/Sema/SemaType.cpp
test/SemaCXX/nothrow-vs-exception-specs.cpp [new file with mode: 0644]
tools/libclang/CXType.cpp