diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-03-17 16:03:44 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-03-17 16:03:44 +0000 |
commit | 319aa6c4b5a2142da7310ed1b4ccd6e02d3f88ea (patch) | |
tree | 5807c6e5ffa7019b0cd602117b1a9a67f0cd89d5 /clang | |
parent | 4ad3da2843da1e8c8da6a87548ae8ec393512c23 (diff) | |
download | bcm5719-llvm-319aa6c4b5a2142da7310ed1b4ccd6e02d3f88ea.tar.gz bcm5719-llvm-319aa6c4b5a2142da7310ed1b4ccd6e02d3f88ea.zip |
Remove warning about shadowing a built-in; built-ins aren't actually
considered to be a part of the translation unit unless they're named
in a way that brings them into existence.
llvm-svn: 98729
Diffstat (limited to 'clang')
-rw-r--r-- | clang/include/clang/Basic/DiagnosticSemaKinds.td | 3 | ||||
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 10 | ||||
-rw-r--r-- | clang/test/Sema/warn-shadow.c | 2 |
3 files changed, 3 insertions, 12 deletions
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index b2b4306bfa8..6e19051ce38 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -113,8 +113,7 @@ def warn_decl_shadow : "local variable|" "variable in %2|" "static data member of %2|" - "field of %2|" - "global built-in function}1">, + "field of %2}1">, InGroup<Shadow>, DefaultIgnore; // C++ using declarations diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index f4b9cf4cdeb..d562a52694e 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -2482,16 +2482,8 @@ void Sema::DiagnoseShadow(NamedDecl* D, const LookupResult& R) { DeclarationName Name = D->getDeclName(); // Return if lookup has no result. - if (R.getResultKind() != LookupResult::Found) { - // Emit warning for built-in shadowing. - if (Name.getAsIdentifierInfo() && - Name.getAsIdentifierInfo()->getBuiltinID()) - Diag(D->getLocation(), diag::warn_decl_shadow) - << Name - << 4 // global builtin - << Context.getTranslationUnitDecl(); + if (R.getResultKind() != LookupResult::Found) return; - } // Return if not variable decl. NamedDecl* ShadowedDecl = R.getFoundDecl(); diff --git a/clang/test/Sema/warn-shadow.c b/clang/test/Sema/warn-shadow.c index f75c140be16..dacf66d5920 100644 --- a/clang/test/Sema/warn-shadow.c +++ b/clang/test/Sema/warn-shadow.c @@ -16,5 +16,5 @@ void foo() { } } - int __sync_fetch_and_add; // expected-warning {{declaration shadows a global built-in function}} + int sin; // okay; 'sin' has not been declared, even though it's a builtin. } |