r179057 - <rdar://problem/13559825> Further reduce template instantiation depth down to 256, since we're blowing the stack for a trivial "factorial" class template.

Rafael Ávila De Espíndola rafael.espindola at gmail.com
Mon Apr 8 20:48:34 PDT 2013


Should we add a test that computes the factorial? That way the bots should make sure we don't regress our stack usage.

Sent from my iPhone

On 2013-04-08, at 17:13, Douglas Gregor <dgregor at apple.com> wrote:

> Author: dgregor
> Date: Mon Apr  8 16:13:13 2013
> New Revision: 179057
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=179057&view=rev
> Log:
> <rdar://problem/13559825> Further reduce template instantiation depth down to 256, since we're blowing the stack for a trivial "factorial" class template.
> 
> Modified:
>    cfe/trunk/include/clang/Basic/LangOptions.def
>    cfe/trunk/lib/Frontend/CompilerInvocation.cpp
> 
> Modified: cfe/trunk/include/clang/Basic/LangOptions.def
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/LangOptions.def?rev=179057&r1=179056&r2=179057&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/LangOptions.def (original)
> +++ cfe/trunk/include/clang/Basic/LangOptions.def Mon Apr  8 16:13:13 2013
> @@ -156,7 +156,7 @@ ENUM_LANGOPT(StackProtector, StackProtec
> ENUM_LANGOPT(SignedOverflowBehavior, SignedOverflowBehaviorTy, 2, SOB_Undefined,
>              "signed integer overflow handling")
> 
> -BENIGN_LANGOPT(InstantiationDepth, 32, 512, 
> +BENIGN_LANGOPT(InstantiationDepth, 32, 256, 
>                "maximum template instantiation depth")
> BENIGN_LANGOPT(ConstexprCallDepth, 32, 512,
>                "maximum constexpr call depth")
> 
> Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=179057&r1=179056&r2=179057&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
> +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Mon Apr  8 16:13:13 2013
> @@ -1244,7 +1244,7 @@ static void ParseLangArgs(LangOptions &O
>   Opts.AccessControl = !Args.hasArg(OPT_fno_access_control);
>   Opts.ElideConstructors = !Args.hasArg(OPT_fno_elide_constructors);
>   Opts.MathErrno = Args.hasArg(OPT_fmath_errno);
> -  Opts.InstantiationDepth = Args.getLastArgIntValue(OPT_ftemplate_depth, 512,
> +  Opts.InstantiationDepth = Args.getLastArgIntValue(OPT_ftemplate_depth, 256,
>                                                     Diags);
>   Opts.ConstexprCallDepth = Args.getLastArgIntValue(OPT_fconstexpr_depth, 512,
>                                                     Diags);
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list