diff options
Diffstat (limited to 'include/clang/Driver')
| -rw-r--r-- | include/clang/Driver/CC1Options.td | 12 | ||||
| -rw-r--r-- | include/clang/Driver/Options.td | 29 | ||||
| -rw-r--r-- | include/clang/Driver/ToolChain.h | 7 |
3 files changed, 32 insertions, 16 deletions
diff --git a/include/clang/Driver/CC1Options.td b/include/clang/Driver/CC1Options.td index a9566f3f9d471..6a0d816920455 100644 --- a/include/clang/Driver/CC1Options.td +++ b/include/clang/Driver/CC1Options.td @@ -20,8 +20,8 @@ include "OptParser.td" def target_abi : Separate<"-target-abi">, HelpText<"Target a particular ABI type">; -def mcpu : Separate<"-mcpu">, - HelpText<"Target a specific cpu type ('-mcpu help' for details)">; +def target_cpu : Separate<"-target-cpu">, + HelpText<"Target a specific cpu type">; def target_feature : Separate<"-target-feature">, HelpText<"Target specific attributes">; def triple : Separate<"-triple">, @@ -104,6 +104,8 @@ def disable_llvm_optzns : Flag<"-disable-llvm-optzns">, HelpText<"Don't run LLVM optimization passes">; def disable_red_zone : Flag<"-disable-red-zone">, HelpText<"Do not emit code that uses the red zone.">; +def dwarf_debug_flags : Separate<"-dwarf-debug-flags">, + HelpText<"The string to embed in the Dwarf debug flags record.">; def g : Flag<"-g">, HelpText<"Generate source level debug information">; def fcatch_undefined_behavior : Flag<"-fcatch-undefined-behavior">, HelpText<"Generate runtime checks for undefined behavior.">; @@ -282,8 +284,6 @@ def rewrite_objc : Flag<"-rewrite-objc">, HelpText<"Rewrite ObjC into C (code rewriter example)">; def rewrite_macros : Flag<"-rewrite-macros">, HelpText<"Expand macros without full preprocessing">; -def rewrite_blocks : Flag<"-rewrite-blocks">, - HelpText<"Rewrite Blocks to C">; } @@ -304,8 +304,12 @@ def faltivec : Flag<"-faltivec">, HelpText<"Enable AltiVec vector initializer syntax">; def faccess_control : Flag<"-faccess-control">, HelpText<"Enable C++ access control">; +def fno_assume_sane_operator_new : Flag<"-fno-assume-sane-operator-new">, + HelpText<"Don't assume that C++'s global operator new can't alias any pointer">; def fdollars_in_identifiers : Flag<"-fdollars-in-identifiers">, HelpText<"Allow '$' in identifiers">; +def fno_dollars_in_identifiers : Flag<"-fno-dollars-in-identifiers">, + HelpText<"Disallow '$' in identifiers">; def femit_all_decls : Flag<"-femit-all-decls">, HelpText<"Emit all declarations, even if unused">; def fblocks : Flag<"-fblocks">, diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index 3592fc9468462..247e1f5117f9a 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -17,23 +17,27 @@ include "OptParser.td" ///////// // Groups -def I_Group : OptionGroup<"<I group>">; -def M_Group : OptionGroup<"<M group>">; +// Meta-group which defines +def CompileOnly_Group : OptionGroup<"<CompileOnly group>">; + +def I_Group : OptionGroup<"<I group>">, Group<CompileOnly_Group>; +def M_Group : OptionGroup<"<M group>">, Group<CompileOnly_Group>; def T_Group : OptionGroup<"<T group>">; -def O_Group : OptionGroup<"<O group>">; -def W_Group : OptionGroup<"<W group>">; +def O_Group : OptionGroup<"<O group>">, Group<CompileOnly_Group>; +def W_Group : OptionGroup<"<W group>">, Group<CompileOnly_Group>; def X_Group : OptionGroup<"<X group>">; def a_Group : OptionGroup<"<a group>">; def d_Group : OptionGroup<"<d group>">; -def f_Group : OptionGroup<"<f group>">; +def f_Group : OptionGroup<"<f group>">, Group<CompileOnly_Group>; def g_Group : OptionGroup<"<g group>">; -def i_Group : OptionGroup<"<i group>">; +def i_Group : OptionGroup<"<i group>">, Group<CompileOnly_Group>; def clang_i_Group : OptionGroup<"<clang i group>">, Group<i_Group>; -def m_Group : OptionGroup<"<m group>">; -def m_x86_Features_Group : OptionGroup<"<m x86 features group>">; +def m_Group : OptionGroup<"<m group>">, Group<CompileOnly_Group>; +def m_x86_Features_Group : OptionGroup<"<m x86 features group>">, Group<m_Group>; def u_Group : OptionGroup<"<u group>">; -def pedantic_Group : OptionGroup<"<pedantic group>">; +def pedantic_Group : OptionGroup<"<pedantic group>">, + Group<CompileOnly_Group>; // Temporary groups for clang options which we know we don't support, // but don't want to verbosely warn the user about. @@ -116,7 +120,7 @@ def A : JoinedOrSeparate<"-A">; def B : JoinedOrSeparate<"-B">, Flags<[Unsupported]>; def CC : Flag<"-CC">; def C : Flag<"-C">; -def D : JoinedOrSeparate<"-D">; +def D : JoinedOrSeparate<"-D">, Group<CompileOnly_Group>; def E : Flag<"-E">, Flags<[DriverOption]>, HelpText<"Only run the preprocessor">; def F : JoinedOrSeparate<"-F">; @@ -152,7 +156,7 @@ def Tbss : JoinedOrSeparate<"-Tbss">, Group<T_Group>; def Tdata : JoinedOrSeparate<"-Tdata">, Group<T_Group>; def Ttext : JoinedOrSeparate<"-Ttext">, Group<T_Group>; def T : JoinedOrSeparate<"-T">, Group<T_Group>; -def U : JoinedOrSeparate<"-U">; +def U : JoinedOrSeparate<"-U">, Group<CompileOnly_Group>; def V : JoinedOrSeparate<"-V">, Flags<[DriverOption, Unsupported]>; def Wa_COMMA : CommaJoined<"-Wa,">, HelpText<"Pass the comma separated arguments in <arg> to the assembler">, @@ -226,6 +230,7 @@ def fPIC : Flag<"-fPIC">, Group<f_Group>; def fPIE : Flag<"-fPIE">, Group<f_Group>; def fapple_kext : Flag<"-fapple-kext">, Group<f_Group>; def fasm_blocks : Flag<"-fasm-blocks">, Group<clang_ignored_f_Group>; +def fassume_sane_operator_new : Flag<"-fassume-sane-operator-new">, Group<f_Group>; def fastcp : Flag<"-fastcp">, Group<f_Group>; def fastf : Flag<"-fastf">, Group<f_Group>; def fast : Flag<"-fast">, Group<f_Group>; @@ -277,6 +282,7 @@ def fmudflap : Flag<"-fmudflap">, Group<f_Group>; def fnested_functions : Flag<"-fnested-functions">, Group<f_Group>; def fnext_runtime : Flag<"-fnext-runtime">, Group<f_Group>; def fno_asynchronous_unwind_tables : Flag<"-fno-asynchronous-unwind-tables">, Group<f_Group>; +def fno_assume_sane_operator_new : Flag<"-fno-assume-sane-operator-new">, Group<f_Group>; def fno_blocks : Flag<"-fno-blocks">, Group<f_Group>; def fno_builtin_strcat : Flag<"-fno-builtin-strcat">, Group<f_Group>; def fno_builtin_strcpy : Flag<"-fno-builtin-strcpy">, Group<f_Group>; @@ -389,6 +395,7 @@ def mcpu_EQ : Joined<"-mcpu=">, Group<m_Group>, Flags<[DriverOption]>; def mdynamic_no_pic : Joined<"-mdynamic-no-pic">, Group<m_Group>, Flags<[NoArgumentUnused]>; def mfix_and_continue : Flag<"-mfix-and-continue">, Group<clang_ignored_m_Group>; def mfloat_abi_EQ : Joined<"-mfloat-abi=">, Group<m_Group>; +def mfpu_EQ : Joined<"-mfpu=">, Group<m_Group>; def mhard_float : Flag<"-mhard-float">, Group<m_Group>; def miphoneos_version_min_EQ : Joined<"-miphoneos-version-min=">, Group<m_Group>; def mkernel : Flag<"-mkernel">, Group<m_Group>; diff --git a/include/clang/Driver/ToolChain.h b/include/clang/Driver/ToolChain.h index df651a6c3d006..b3c2d05ef5634 100644 --- a/include/clang/Driver/ToolChain.h +++ b/include/clang/Driver/ToolChain.h @@ -19,6 +19,7 @@ namespace clang { namespace driver { class Compilation; class DerivedArgList; + class Driver; class HostInfo; class InputArgList; class JobAction; @@ -49,7 +50,7 @@ public: // Accessors - const HostInfo &getHost() const { return Host; } + const Driver &getDriver() const; const llvm::Triple &getTriple() const { return Triple; } std::string getArchName() const { return Triple.getArchName(); } @@ -113,6 +114,10 @@ public: /// for this tool chain, or 0 if this tool chain does not force a /// particular PIC mode. virtual const char *GetForcedPicModel() const = 0; + + /// UseDwarfDebugFlags - Embed the compile options to clang into the Dwarf + /// compile unit information. + virtual bool UseDwarfDebugFlags() const { return false; } }; } // end namespace driver |
