diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 3 | ||||
-rw-r--r-- | clang/test/Sema/redefine_extname.c | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index bc3e42739d3..6cfc5012f67 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -4057,7 +4057,8 @@ void Sema::notePreviousDefinition(const NamedDecl *Old, SourceLocation New) { } // Redefinition coming from different files or couldn't do better above. - Diag(Old->getLocation(), diag::note_previous_definition); + if (Old->getLocation().isValid()) + Diag(Old->getLocation(), diag::note_previous_definition); } /// We've just determined that \p Old and \p New both appear to be definitions diff --git a/clang/test/Sema/redefine_extname.c b/clang/test/Sema/redefine_extname.c index 8202176c9f7..b1e8dab9244 100644 --- a/clang/test/Sema/redefine_extname.c +++ b/clang/test/Sema/redefine_extname.c @@ -4,3 +4,4 @@ #pragma redefine_extname foo_static bar_static static int foo_static() { return 1; } // expected-warning {{#pragma redefine_extname is applicable to external C declarations only; not applied to function 'foo_static'}} +unsigned __int128_t; // expected-error {{redefinition of '__int128_t' as different kind of symbol}} |