aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSven van Haastregt <sven.vanhaastregt@arm.com>2019-06-19 12:48:22 +0000
committerSven van Haastregt <sven.vanhaastregt@arm.com>2019-06-19 12:48:22 +0000
commitaf1c230e70aeb72ec9d6363f8d91e3c7db3ef9f2 (patch)
tree28a994823d7abea31c5d75ae0600b9606a0946fe /clang/lib/Frontend/CompilerInvocation.cpp
parent9eed5d2f78d933e6cf73d389bdd884d72d97f11d (diff)
downloadllvm-af1c230e70aeb72ec9d6363f8d91e3c7db3ef9f2.zip
llvm-af1c230e70aeb72ec9d6363f8d91e3c7db3ef9f2.tar.gz
llvm-af1c230e70aeb72ec9d6363f8d91e3c7db3ef9f2.tar.bz2
[OpenCL] Split type and macro definitions into opencl-c-base.h
Using the -fdeclare-opencl-builtins option will require a way to predefine types and macros such as `int4`, `CLK_GLOBAL_MEM_FENCE`, etc. Move these out of opencl-c.h into opencl-c-base.h such that the latter can be shared by -fdeclare-opencl-builtins and -finclude-default-header. This changes the behaviour of -finclude-default-header when -fdeclare-opencl-builtins is specified: instead of including the full header, it will include the header with only the base definitions. Differential revision: https://reviews.llvm.org/D63256 llvm-svn: 363794
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index fc49aa6..d36af28 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -2194,9 +2194,15 @@ void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK,
Opts.NativeHalfType = 1;
Opts.NativeHalfArgsAndReturns = 1;
Opts.OpenCLCPlusPlus = Opts.CPlusPlus;
+
// Include default header file for OpenCL.
- if (Opts.IncludeDefaultHeader && !Opts.DeclareOpenCLBuiltins) {
- PPOpts.Includes.push_back("opencl-c.h");
+ if (Opts.IncludeDefaultHeader) {
+ if (Opts.DeclareOpenCLBuiltins) {
+ // Only include base header file for builtin types and constants.
+ PPOpts.Includes.push_back("opencl-c-base.h");
+ } else {
+ PPOpts.Includes.push_back("opencl-c.h");
+ }
}
}