summaryrefslogtreecommitdiffstats
path: root/gcc/objc/lang-specs.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/objc/lang-specs.h')
-rw-r--r--gcc/objc/lang-specs.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/gcc/objc/lang-specs.h b/gcc/objc/lang-specs.h
index d6d50e0663a..f9e2c141f20 100644
--- a/gcc/objc/lang-specs.h
+++ b/gcc/objc/lang-specs.h
@@ -24,20 +24,28 @@ Boston, MA 02111-1307, USA. */
{".m", "@objective-c"},
{"@objective-c",
#if USE_CPPLIB
+ /* cc1obj has an integrated ISO C preprocessor. We should invoke the
+ external preprocessor if -save-temps or -traditional is given. */
"%{E|M|MM:%(trad_capable_cpp) -lang-objc %{ansi:-std=c89} %(cpp_options)}\
- %{!E:%{!M:%{!MM:cc1obj -lang-objc %(cpp_options) %(cc1_options) %{gen-decls}\
- %{!fsyntax-only:%{!S:-o %{|!pipe:%g.s} |\n\
- as %(asm_options) %{!pipe:%g.s} %A }}}}}"
+ %{!E:%{!M:%{!MM:\
+ %{save-temps:%(trad_capable_cpp) -lang-objc %{ansi:-std=c89}\
+ %(cpp_options) %b.mi \n\
+ cc1obj -fpreprocessed %b.mi -lang-objc %(cc1_options) %{gen-decls}}\
+ %{!save-temps:\
+ %{traditional|ftraditional|traditional-cpp:\
+ tradcpp0 -lang-objc %{ansi:-std=c89} %(cpp_options) %{!pipe:%g.mi} |\n\
+ cc1obj -fpreprocessed %{!pipe:%g.mi} -lang-objc %(cc1_options) %{gen-decls}}\
+ %{!traditional:%{!ftraditional:%{!traditional-cpp:\
+ cc1obj -lang-objc %{ansi:-std=c89} %(cpp_options) %(cc1_options) %{gen-decls}}}}}\
+ %{!fsyntax-only:%(invoke_as)}}}}"
#else /* ! USE_CPPLIB */
"%(trad_capable_cpp) -lang-objc %{ansi:-std=c89} %(cpp_options)\
%{!M:%{!MM:%{!E:%{!pipe:%g.mi} |\n\
cc1obj -lang-objc %{!pipe:%g.mi} %(cc1_options) %{gen-decls}\
- %{!fsyntax-only:%{!S:-o %{|!pipe:%g.s} |\n\
- as %(asm_options) %{!pipe:%g.s} %A }}}}}\n"
+ %{!fsyntax-only:%(invoke_as)}}}}\n"
#endif /* ! USE_CPPLIB */
},
{".mi", "@objc-cpp-output"},
{"@objc-cpp-output",
"%{!M:%{!MM:%{!E:cc1obj -lang-objc %i %(cc1_options) %{gen-decls}\
- %{!fsyntax-only:%{!S:-o %{|!pipe:%g.s} |\n\
- as %(asm_options) %{!pipe:%g.s} %A }}}}}"},
+ %{!fsyntax-only:%(invoke_as)}}}}"},
OpenPOWER on IntegriCloud