diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-10-04 01:58:22 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-10-04 01:58:22 +0000 |
commit | 289728d5a6ed09bc657f04ec4db6e1ee0c5121cf (patch) | |
tree | 2bc0c763349a188818e2c57b307dfd37d1aaea72 /clang/lib | |
parent | 9bfa970a40095db93018a0b16a48e2710dab0d9e (diff) | |
download | bcm5719-llvm-289728d5a6ed09bc657f04ec4db6e1ee0c5121cf.tar.gz bcm5719-llvm-289728d5a6ed09bc657f04ec4db6e1ee0c5121cf.zip |
We allow implicit function declarations as an extension in all C dialects. Remove OpenCL special case.
llvm-svn: 314872
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 06009b17564..7f3f8110029 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -12642,17 +12642,15 @@ NamedDecl *Sema::ImplicitlyDefineFunction(SourceLocation Loc, } // Extension in C99. Legal in C90, but warn about it. + // OpenCL v2.0 s6.9.u - Implicit function declaration is not supported. unsigned diag_id; if (II.getName().startswith("__builtin_")) diag_id = diag::warn_builtin_unknown; - // OpenCL v2.0 s6.9.u - Implicit function declaration is not supported. - else if (getLangOpts().OpenCL) - diag_id = diag::err_opencl_implicit_function_decl; - else if (getLangOpts().C99) + else if (getLangOpts().C99 || getLangOpts().OpenCL) diag_id = diag::ext_implicit_function_decl; else diag_id = diag::warn_implicit_function_decl; - Diag(Loc, diag_id) << &II; + Diag(Loc, diag_id) << &II << getLangOpts().OpenCL; // If we found a prior declaration of this function, don't bother building // another one. We've already pushed that one into scope, so there's nothing |