mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-14 14:56:47 +00:00
[Sema] PR25181 Fix crash when method declaration with throw spec fails to parse correctly
Fixes crash referenced in PR25181 where dyn_cast is called on a null instance of LM.Method. Reviewers: majnemer, rnk Patch by Don Hinton Differential Revision: http://reviews.llvm.org/D17072 llvm-svn: 261292
This commit is contained in:
parent
eafc693c90
commit
bde5ede526
@ -52,7 +52,8 @@ NamedDecl *Parser::ParseCXXInlineMethodDef(AccessSpecifier AS,
|
||||
}
|
||||
}
|
||||
|
||||
HandleMemberFunctionDeclDelays(D, FnD);
|
||||
if (FnD)
|
||||
HandleMemberFunctionDeclDelays(D, FnD);
|
||||
|
||||
D.complete(FnD);
|
||||
|
||||
|
7
clang/test/SemaCXX/pr25181-crash-on-invalid.cpp
Normal file
7
clang/test/SemaCXX/pr25181-crash-on-invalid.cpp
Normal file
@ -0,0 +1,7 @@
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
|
||||
// Don't crash (PR25181).
|
||||
|
||||
template <typename T> class Foo { // expected-note {{template parameter is declared here}}
|
||||
template <typename T> // expected-error {{declaration of 'T' shadows template parameter}}
|
||||
void Foo<T>::method(T *) const throw() {} // expected-error {{nested name specifier 'Foo<T>::' for declaration does not refer into a class, class template or class template partial specialization}}
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user