diff options
-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 |