summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2017-10-04 01:58:22 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2017-10-04 01:58:22 +0000
commit289728d5a6ed09bc657f04ec4db6e1ee0c5121cf (patch)
tree2bc0c763349a188818e2c57b307dfd37d1aaea72 /clang/lib
parent9bfa970a40095db93018a0b16a48e2710dab0d9e (diff)
downloadbcm5719-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.cpp8
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
OpenPOWER on IntegriCloud