From: Douglas Gregor Date: Tue, 17 Feb 2009 16:03:01 +0000 (+0000) Subject: Remove the error about redefining library functions. It's causing too X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=655753a757b3eae4306cf59e84a63b78ebb2b9a7;p=clang Remove the error about redefining library functions. It's causing too much pain when compiling the Linux kernel (PR3592). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64767 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/DiagnosticSemaKinds.def b/include/clang/Basic/DiagnosticSemaKinds.def index 3f7ad9a5ca..11db059c26 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.def +++ b/include/clang/Basic/DiagnosticSemaKinds.def @@ -97,10 +97,6 @@ DIAG(warn_redecl_library_builtin, WARNING, "incompatible redeclaration of library function %0 will be ignored") DIAG(err_builtin_definition, ERROR, "definition of builtin function %0") -DIAG(err_builtin_lib_definition, ERROR, - "definition of library function %0 in a hosted implementation") -DIAG(note_builtin_lib_def_freestanding, NOTE, - "use -ffreestanding to compile as a freestanding implementation") /// parser diagnostics DIAG(ext_typedef_without_a_name, EXTWARN, diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index bf6a637ac2..b5e6bd6973 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -2802,12 +2802,10 @@ Sema::DeclTy *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, DeclTy *D) { // Builtin functions cannot be defined. if (unsigned BuiltinID = FD->getBuiltinID(Context)) { - if (Context.BuiltinInfo.isPredefinedLibFunction(BuiltinID)) { - Diag(FD->getLocation(), diag::err_builtin_lib_definition) << FD; - Diag(FD->getLocation(), diag::note_builtin_lib_def_freestanding); - } else + if (!Context.BuiltinInfo.isPredefinedLibFunction(BuiltinID)) { Diag(FD->getLocation(), diag::err_builtin_definition) << FD; - FD->setInvalidDecl(); + FD->setInvalidDecl(); + } } PushDeclContext(FnBodyScope, FD); diff --git a/test/Sema/implicit-builtin-decl.c b/test/Sema/implicit-builtin-decl.c index efaf3ed455..4c28d8cf3e 100644 --- a/test/Sema/implicit-builtin-decl.c +++ b/test/Sema/implicit-builtin-decl.c @@ -36,8 +36,6 @@ int f0() { } void * realloc(void *p, int size) { // expected-warning{{incompatible redeclaration of library function 'realloc' will be ignored}} \ -// expected-note{{'realloc' is a builtin with type 'void *(void *, unsigned long)'}} \ -// expected-error{{definition of library function 'realloc' in a hosted implementation}} \ - // expected-note{{use -ffreestanding to compile as a freestanding implementation}} +// expected-note{{'realloc' is a builtin with type 'void *(void *, unsigned long)'}} return p; }