diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 427b3409e4f2014fafcbe59d8c2add81c3244af2..9c1ad9e597ec282782061ec88296e84e086c2f6d 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -1818,6 +1818,13 @@ const char *PatmosToolChain::GetForcedPicModel() const { return 0; } +bool PatmosToolChain::UseFramePointerDefault() const { + if (Arg *A = getArgs().getLastArg(options::OPT_O_Group)) + if (A->getOption().matches(options::OPT_O0)) + return true; + return false; +} + void PatmosToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs, ArgStringList &CC1Args) const { diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index e8efbe343e2c5299517bb113f7cd611605861394..783ca67a40e46e478a75b1253dd5b54029ce060d 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h @@ -606,6 +606,10 @@ public: } virtual bool IsUsingLTODefault() const { return true; } + virtual bool UseFramePointerDefault() const; + virtual bool UseLeafFramePointerDefault() const { + return UseFramePointerDefault(); + } virtual bool isPICDefault() const { return false; } virtual bool isPIEDefault() const { return false; }