diff options
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 0a7ca4d2f9c..93f97f66eec 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -8046,8 +8046,12 @@ VarDecl *Sema::BuildExceptionDeclaration(Scope *S, Invalid = true; } else if (T->isObjCObjectPointerType()) { if (!getLangOptions().ObjCNonFragileABI) { - Diag(Loc, diag::err_objc_pointer_cxx_catch_fragile); - Invalid = true; + if (T->isObjCIdType() || T->isObjCQualifiedIdType()) + Diag(Loc, diag::warn_objc_pointer_cxx_catch_fragile); + else { + Diag(Loc, diag::err_objc_pointer_cxx_catch_fragile); + Invalid = true; + } } } } |