This revision was automatically updated to reflect the committed changes. Closed by commit rC328712: [Diag] Avoid emitting a redefinition note if no location is available. (authored by mattd, committed by ).
Repository: rC Clang https://reviews.llvm.org/D44901 Files: lib/Sema/SemaDecl.cpp test/Sema/redefine_extname.c Index: lib/Sema/SemaDecl.cpp =================================================================== --- lib/Sema/SemaDecl.cpp +++ lib/Sema/SemaDecl.cpp @@ -4057,7 +4057,8 @@ } // 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 Index: test/Sema/redefine_extname.c =================================================================== --- test/Sema/redefine_extname.c +++ 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}}
Index: lib/Sema/SemaDecl.cpp =================================================================== --- lib/Sema/SemaDecl.cpp +++ lib/Sema/SemaDecl.cpp @@ -4057,7 +4057,8 @@ } // 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 Index: test/Sema/redefine_extname.c =================================================================== --- test/Sema/redefine_extname.c +++ 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}}
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits