diff options
author | Erich Keane <erich.keane@intel.com> | 2019-06-03 18:36:33 +0000 |
---|---|---|
committer | Erich Keane <erich.keane@intel.com> | 2019-06-03 18:36:33 +0000 |
commit | bf37536a351a2db55efe830437866010ae050eea (patch) | |
tree | 0461135e2f85fd0422730863abd3eda088f24710 /clang/lib | |
parent | 81ef625080cb7097044b4461fee0ac5567a44c75 (diff) | |
download | bcm5719-llvm-bf37536a351a2db55efe830437866010ae050eea.tar.gz bcm5719-llvm-bf37536a351a2db55efe830437866010ae050eea.zip |
Make NoThrow FunctionLike, make FunctionLike include references, fix
prettyprint
__declspec(nothrow) should work on function pointers as well as function
references, so this changes it to FunctionLike. Additionally,
FunctionLike needed to be modified to permit function references.
Finally, the TypePrinter didn't properly print the NoThrow exception
specifier, so make sure we get that right as well.
llvm-svn: 362435
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/AST/DeclBase.cpp | 2 | ||||
-rw-r--r-- | clang/lib/AST/TypePrinter.cpp | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/AST/DeclBase.cpp b/clang/lib/AST/DeclBase.cpp index 511925d1b14..31985486d1d 100644 --- a/clang/lib/AST/DeclBase.cpp +++ b/clang/lib/AST/DeclBase.cpp @@ -957,6 +957,8 @@ const FunctionType *Decl::getFunctionType(bool BlocksToo) const { if (Ty->isFunctionPointerType()) Ty = Ty->getAs<PointerType>()->getPointeeType(); + else if (Ty->isFunctionReferenceType()) + Ty = Ty->getAs<ReferenceType>()->getPointeeType(); else if (BlocksToo && Ty->isBlockPointerType()) Ty = Ty->getAs<BlockPointerType>()->getPointeeType(); diff --git a/clang/lib/AST/TypePrinter.cpp b/clang/lib/AST/TypePrinter.cpp index 13b105bc572..ca3e3466684 100644 --- a/clang/lib/AST/TypePrinter.cpp +++ b/clang/lib/AST/TypePrinter.cpp @@ -734,6 +734,8 @@ FunctionProtoType::printExceptionSpecification(raw_ostream &OS, OS << getExceptionType(I).stream(Policy); } OS << ')'; + } else if (EST_NoThrow == getExceptionSpecType()) { + OS << " __attribute__((nothrow))"; } else if (isNoexceptExceptionSpec(getExceptionSpecType())) { OS << " noexcept"; // FIXME:Is it useful to print out the expression for a non-dependent |