From: Eric Christopher Date: Mon, 2 May 2011 21:18:22 +0000 (+0000) Subject: Add the -mstackrealign option which just communicates the need to X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1a584022c86bd0778cf7ad1fbea08c78869cf216;p=clang Add the -mstackrealign option which just communicates the need to force align the stack to the backend. Fixes rdar://9289631 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130725 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Driver/CC1Options.td b/include/clang/Driver/CC1Options.td index d243bf989f..dd0984634d 100644 --- a/include/clang/Driver/CC1Options.td +++ b/include/clang/Driver/CC1Options.td @@ -178,6 +178,8 @@ def mconstructor_aliases : Flag<"-mconstructor-aliases">, HelpText<"Emit complete constructors and destructors as aliases when possible">; def mms_bitfields : Flag<"-mms-bitfields">, HelpText<"Set the default structure layout to be compatible with the Microsoft compiler standard.">; +def mstackrealign : Flag<"-mstackrealign">, + HelpText<"Force realign the stack at entry to every function.">; def O : Joined<"-O">, HelpText<"Optimization level">; def Os : Flag<"-Os">, HelpText<"Optimize for size">; def Oz : Flag<"-Oz">, HelpText<"Optimize for size, regardless of performance">; diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index 38f0c57af7..b587a51a3b 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -513,6 +513,7 @@ def mlinker_version_EQ : Joined<"-mlinker-version=">, Flags<[NoForward]>; def mllvm : Separate<"-mllvm">; def mmacosx_version_min_EQ : Joined<"-mmacosx-version-min=">, Group; def mms_bitfields : Flag<"-mms-bitfields">, Group; +def mstackrealign : Flag<"-mstackrealign">, Group; def mmmx : Flag<"-mmmx">, Group; def mno_3dnowa : Flag<"-mno-3dnowa">, Group; def mno_3dnow : Flag<"-mno-3dnow">, Group; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 89cf228d95..bf73ca2c30 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1546,6 +1546,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(Args.MakeArgString(llvm::Twine(StackProtectorLevel))); } + // Translate -mstackrealign + if (Args.hasArg(options::OPT_mstackrealign)) { + CmdArgs.push_back("-backend-option"); + CmdArgs.push_back("-force-align-stack"); + } + // Forward -f options with positive and negative forms; we translate // these by hand.