Index: lib/Sema/SemaOpenMP.cpp =================================================================== --- lib/Sema/SemaOpenMP.cpp +++ lib/Sema/SemaOpenMP.cpp @@ -12433,6 +12433,11 @@ LookupResult Lookup(*this, Id, LookupOrdinaryName); LookupParsedName(Lookup, CurScope, &ScopeSpec, true); + if (Lookup.empty()) { + Diag(Id.getLoc(), diag::err_undeclared_var_use) << Id.getName(); + return; + } + if (Lookup.isAmbiguous()) return; Lookup.suppressDiagnostics(); Index: test/OpenMP/declare_target_messages.cpp =================================================================== --- test/OpenMP/declare_target_messages.cpp +++ test/OpenMP/declare_target_messages.cpp @@ -13,6 +13,10 @@ #pragma omp declare target map(a) // expected-error {{unexpected 'map' clause, only 'to' or 'link' clauses expected}} +#pragma omp declare target to(i) // expected-error {{use of undeclared identifier 'i'}} + +#pragma omp declare target link(j) // expected-error {{use of undeclared identifier 'j'}} + void c(); // expected-warning {{declaration is not declared in any declare target region}} extern int b;