Author: Haojian Wu
Date: 2021-09-23T16:37:37+02:00
New Revision: 3778c1cd6ef5a3286d5d49e842a2c65fffb8f3a6

URL: 
https://github.com/llvm/llvm-project/commit/3778c1cd6ef5a3286d5d49e842a2c65fffb8f3a6
DIFF: 
https://github.com/llvm/llvm-project/commit/3778c1cd6ef5a3286d5d49e842a2c65fffb8f3a6.diff

LOG: [Sema] Fix a null pointer reference crash.

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

Added: 
    clang/test/SemaCXX/rounding-math-crash.cpp

Modified: 
    clang/lib/Sema/SemaDecl.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 79080098026c6..db7c9f9418042 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -14493,7 +14493,7 @@ Decl *Sema::ActOnFinishFunctionBody(Decl *dcl, Stmt 
*Body,
   FunctionScopeInfo *FSI = getCurFunction();
   FunctionDecl *FD = dcl ? dcl->getAsFunction() : nullptr;
 
-  if (FSI->UsesFPIntrin && !FD->hasAttr<StrictFPAttr>())
+  if (FSI->UsesFPIntrin && FD && !FD->hasAttr<StrictFPAttr>())
     FD->addAttr(StrictFPAttr::CreateImplicit(Context));
 
   sema::AnalysisBasedWarnings::Policy WP = AnalysisWarnings.getDefaultPolicy();

diff  --git a/clang/test/SemaCXX/rounding-math-crash.cpp 
b/clang/test/SemaCXX/rounding-math-crash.cpp
new file mode 100644
index 0000000000000..32f1fc0f792c3
--- /dev/null
+++ b/clang/test/SemaCXX/rounding-math-crash.cpp
@@ -0,0 +1,3 @@
+// RUN: %clang_cc1 -fsyntax-only -frounding-math -verify %s
+
+template <class b> b::a() {}  // expected-error {{nested name specifier}}


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to