forked from OSchip/llvm-project
[Sema] Null check in BuildDeclarationNameExpr
Qualtype may point to null if we cannot infer its type yet. Fixes PR33843 Differential Revision: https://reviews.llvm.org/D38158 llvm-svn: 314124
This commit is contained in:
parent
a23c1a37d0
commit
3103896914
|
@ -2803,6 +2803,8 @@ ExprResult Sema::BuildDeclarationNameExpr(
|
|||
|
||||
{
|
||||
QualType type = VD->getType();
|
||||
if (type.isNull())
|
||||
return ExprError();
|
||||
if (auto *FPT = type->getAs<FunctionProtoType>()) {
|
||||
// C++ [except.spec]p17:
|
||||
// An exception-specification is considered to be needed when:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -std=c++14 -verify %s
|
||||
// RUN: %clang_cc1 -fsyntax-only -std=c++17 -verify %s
|
||||
auto check1() {
|
||||
return 1;
|
||||
return s; // expected-error {{use of undeclared identifier 's'}}
|
||||
|
@ -19,3 +19,5 @@ struct FooRecord { };
|
|||
FooRecord::NestedNamespace::type x; // expected-error {{no member named 'NestedNamespace' in 'FooRecord'; did you mean 'BarNamespace::NestedNamespace'?}}
|
||||
|
||||
void cast_expr(int g) { +int(n)(g); } // expected-error {{undeclared identifier 'n'}}
|
||||
|
||||
void bind() { for (const auto& [test,_] : _test_) { }; } // expected-error {{undeclared identifier '_test_'}}
|
||||
|
|
Loading…
Reference in New Issue