This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Adding warning for constexpr's
- From: Andres Tiraboschi <andres dot tiraboschi at tallertechnologies dot com>
- To: Joseph Myers <joseph at codesourcery dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 15 Jun 2015 11:53:47 -0300
- Subject: Re: [PATCH] Adding warning for constexpr's
- Authentication-results: sourceware.org; auth=none
- References: <1434143128-13785-1-git-send-email-andres dot tiraboschi at tallertechnologies dot com> <alpine dot DEB dot 2 dot 10 dot 1506122133340 dot 17561 at digraph dot polyomino dot org dot uk>
Hi, thanks for your answer. I was trying with warning_at this way
instead that I was doing before:
+ else if (TREE_CODE(init) == CALL_EXPR)
+ {
+ tree fn = TREE_OPERAND(CALL_EXPR_FN(init), 0);
+ if (DECL_DECLARED_CONSTEXPR_P(fn) && warn_constexpr)
+ warning_at (DECL_SOURCE_LINE(decl), OPT_Wconstexpr,
"function %q+F cannot be evaluated at compile time", fn);
+
where "decl" is the declaration that is being initializated. For some
reason this isn't working. Checking with gdb I realised that
warning_at in this case is returnin false. I don't know if I am
missing something.
2015-06-12 18:35 GMT-03:00 Joseph Myers <joseph@codesourcery.com>:
> On Fri, 12 Jun 2015, Andres Tiraboschi wrote:
>
>> Hi, this patch is for adding a warning when a constexpr cannot be evaluated at compile time.
>> This is a single case:
>> type var = fun(args...), with fun declared as a constexpr.
>
> All options need documenting in invoke.texi. All diagnostics need
> testcases added to the testsuite. C++-specific options go in c.opt and
> should be listed as C++ ObjC++, not Common. All new diagnostics should
> use warning_at etc. with explicit locations passed, unless there is some
> strong reason it's hard to get the relevant location when the warning is
> given.
>
> --
> Joseph S. Myers
> joseph@codesourcery.com