From a3d3bd215bcd9dd39b547e8401b157cdbde7e6d0 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 8 May 2013 02:12:03 +0000 Subject: C++1y: Add a step limit to constexpr evaluation, to catch runaway loops. llvm-svn: 181388 --- clang/lib/Frontend/CompilerInvocation.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'clang/lib/Frontend/CompilerInvocation.cpp') diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 42ea96f..9c8eea1 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1251,6 +1251,8 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, Diags); Opts.ConstexprCallDepth = Args.getLastArgIntValue(OPT_fconstexpr_depth, 512, Diags); + Opts.ConstexprStepLimit = Args.getLastArgIntValue(OPT_fconstexpr_steps, + 1048576, Diags); Opts.BracketDepth = Args.getLastArgIntValue(OPT_fbracket_depth, 256, Diags); Opts.DelayedTemplateParsing = Args.hasArg(OPT_fdelayed_template_parsing); Opts.NumLargeByValueCopy = Args.getLastArgIntValue(OPT_Wlarge_by_value_copy_EQ, -- cgit v1.1