diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2011-10-18 20:40:38 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2011-10-18 20:40:38 +0000 |
| commit | b274318bbaa3f64db85f8a813319c04b97518949 (patch) | |
| tree | a03800b447cf8eb3268078890f06317c29e940d5 | |
| parent | 6918617e3299fd8f314e8717dbb6635cacac6187 (diff) | |
| download | bcm5719-llvm-b274318bbaa3f64db85f8a813319c04b97518949.tar.gz bcm5719-llvm-b274318bbaa3f64db85f8a813319c04b97518949.zip | |
Frontend: Support -iframework.
llvm-svn: 142418
| -rw-r--r-- | clang/include/clang/Driver/CC1Options.td | 2 | ||||
| -rw-r--r-- | clang/include/clang/Driver/Options.td | 2 | ||||
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 4 | ||||
| -rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 4 | ||||
| -rw-r--r-- | clang/test/Frontend/Inputs/TestFramework.framework/Headers/TestFramework.h | 1 | ||||
| -rw-r--r-- | clang/test/Frontend/iframework.c | 3 |
6 files changed, 11 insertions, 5 deletions
diff --git a/clang/include/clang/Driver/CC1Options.td b/clang/include/clang/Driver/CC1Options.td index 0599e05fc73..71007251095 100644 --- a/clang/include/clang/Driver/CC1Options.td +++ b/clang/include/clang/Driver/CC1Options.td @@ -639,6 +639,8 @@ def objc_isystem : JoinedOrSeparate<"-objc-isystem">, def objcxx_isystem : JoinedOrSeparate<"-objcxx-isystem">, MetaVarName<"<directory>">, HelpText<"Add directory to the ObjC++ SYSTEM include search path">; +def iframework : JoinedOrSeparate<"-iframework">, MetaVarName<"<directory>">, + HelpText<"Add directory to SYSTEM framework search path">; def isystem : JoinedOrSeparate<"-isystem">, MetaVarName<"<directory>">, HelpText<"Add directory to SYSTEM include search path">; def iwithsysroot : JoinedOrSeparate<"-iwithsysroot">,MetaVarName<"<directory>">, diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index c8295ea63d2..813509705cc 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -517,7 +517,7 @@ def g_Joined : Joined<"-g">, Group<g_Group>; def headerpad__max__install__names : Joined<"-headerpad_max_install_names">; def index_header_map : Flag<"-index-header-map">; def idirafter : JoinedOrSeparate<"-idirafter">, Group<clang_i_Group>; -def iframework : JoinedOrSeparate<"-iframework">, Group<clang_i_Group>; +def iframework : Joined<"-iframework">, Group<clang_i_Group>; def imacros : JoinedOrSeparate<"-imacros">, Group<clang_i_Group>; def image__base : Separate<"-image_base">; def include_ : JoinedOrSeparate<"-include">, Group<clang_i_Group>, EnumName<"include">; diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 3a6d737dec2..2dcb61bfb24 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -1437,10 +1437,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, types::ID InputType = Inputs[0].getType(); if (!Args.hasArg(options::OPT_fallow_unsupported)) { Arg *Unsupported; - if ((Unsupported = Args.getLastArg(options::OPT_iframework))) - D.Diag(diag::err_drv_clang_unsupported) - << Unsupported->getOption().getName(); - if (types::isCXX(InputType) && getToolChain().getTriple().isOSDarwin() && getToolChain().getTriple().getArch() == llvm::Triple::x86) { diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 6a7d2ac10d4..05d2e692e55 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1450,6 +1450,10 @@ static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args) { OPT_iwithsysroot), ie = Args.filtered_end(); it != ie; ++it) Opts.AddPath((*it)->getValue(Args), frontend::System, true, false, !(*it)->getOption().matches(OPT_iwithsysroot)); + for (arg_iterator it = Args.filtered_begin(OPT_iframework), + ie = Args.filtered_end(); it != ie; ++it) + Opts.AddPath((*it)->getValue(Args), frontend::System, true, true, + true); // Add the paths for the various language specific isystem flags. for (arg_iterator it = Args.filtered_begin(OPT_c_isystem), diff --git a/clang/test/Frontend/Inputs/TestFramework.framework/Headers/TestFramework.h b/clang/test/Frontend/Inputs/TestFramework.framework/Headers/TestFramework.h new file mode 100644 index 00000000000..49048ca4529 --- /dev/null +++ b/clang/test/Frontend/Inputs/TestFramework.framework/Headers/TestFramework.h @@ -0,0 +1 @@ +static int f0(void) {} diff --git a/clang/test/Frontend/iframework.c b/clang/test/Frontend/iframework.c new file mode 100644 index 00000000000..0c241fd4891 --- /dev/null +++ b/clang/test/Frontend/iframework.c @@ -0,0 +1,3 @@ +// RUN: %clang -fsyntax-only -iframework%S/Inputs %s -Xclang -verify + +#include <TestFramework/TestFramework.h> |

