diff options
author | Daniel Dunbar <daniel@zuster.org> | 2011-10-11 18:20:16 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2011-10-11 18:20:16 +0000 |
commit | 92d6d404833468120f9a86fb360691ac60585551 (patch) | |
tree | ece0ab51d3ed5e4169bef6920b5ac1e686e98f03 | |
parent | a268fc0f2229eb132ebc8501b140093aeb5516bf (diff) |
Driver: Add support for a new -nostdlibinc option.
- This disables the system include directories, but not the compiler builtin
directories. Useful for projects that want to use things like the intrinsic
headers, but are otherwise freestanding.
- I'm willing to reconsider the option naming, I also considered providing an
explicit -builtinc (which would match -nobuiltininc), but this is more
consistent with existing options.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141692 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | docs/tools/clang.pod | 8 | ||||
-rw-r--r-- | include/clang/Driver/Options.td | 1 | ||||
-rw-r--r-- | lib/Driver/Tools.cpp | 2 | ||||
-rw-r--r-- | test/Driver/nostdlibinc.c | 10 |
4 files changed, 20 insertions, 1 deletions
diff --git a/docs/tools/clang.pod b/docs/tools/clang.pod index 704cc8743b..964b143ac9 100644 --- a/docs/tools/clang.pod +++ b/docs/tools/clang.pod @@ -459,7 +459,13 @@ Add the specified directory to the search path for framework include files. =item B<-nostdinc> -Do not search the standard system directories for include files. +Do not search the standard system directories or compiler builtin directories +for include files. + +=item B<-nostdlibinc> + +Do not search the standard system directories for include files, but do search +compiler builting include directories. =item B<-nobuiltininc> diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index a0520f0bea..ae8c7945cb 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -624,6 +624,7 @@ def noprebind : Flag<"-noprebind">; def noseglinkedit : Flag<"-noseglinkedit">; def nostartfiles : Flag<"-nostartfiles">; def nostdinc : Flag<"-nostdinc">; +def nostdlibinc : Flag<"-nostdlibinc">; def nostdincxx : Flag<"-nostdinc++">; def nostdlib : Flag<"-nostdlib">; def object : Flag<"-object">; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 07d2a68189..e0efe82286 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1486,6 +1486,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-nostdsysteminc"); CmdArgs.push_back("-nobuiltininc"); } else { + if (Args.hasArg(options::OPT_nostdlibinc)) + CmdArgs.push_back("-nostdsysteminc"); Args.AddLastArg(CmdArgs, options::OPT_nostdincxx); Args.AddLastArg(CmdArgs, options::OPT_nobuiltininc); } diff --git a/test/Driver/nostdlibinc.c b/test/Driver/nostdlibinc.c new file mode 100644 index 0000000000..f7ee712d86 --- /dev/null +++ b/test/Driver/nostdlibinc.c @@ -0,0 +1,10 @@ +// RUN: %clang -ccc-host-triple x86_64-unknown-unknown \ +// RUN: -nostdlibinc -ffreestanding -fsyntax-only %s + +#if !__has_include("stddef.h") +#error "expected to be able to find compiler builtin headers!" +#endif + +#if __has_include("stdlib.h") +#error "expected to *not* be able to find standard C headers" +#endif |