On 20/04/17 17:33 +0200, Marek Polacek wrote:
On Thu, Apr 20, 2017 at 05:22:00PM +0200, Jakub Jelinek wrote:
On Thu, Apr 20, 2017 at 04:09:20PM +0100, Jonathan Wakely wrote:
> --- a/gcc/cp/init.c
> +++ b/gcc/cp/init.c
> @@ -3128,11 +3128,14 @@ build_new_1 (vec<tree, va_gc> **placement, tree type, 
tree nelts,
>      {
>        warning (OPT_Waligned_new_, "%<new%> of type %qT with extended "
>           "alignment %d", elt_type, TYPE_ALIGN_UNIT (elt_type));
> -      inform (input_location, "uses %qD, which does not have an alignment "
> -        "parameter", alloc_fn);
> -      if (!aligned_new_threshold)
> -  inform (input_location, "use %<-faligned-new%> to enable C++17 "
> -                          "over-aligned new support");
> +      if (diagnostic_report_warnings_p (global_dc, input_location))
> +  {
> +    inform (input_location, "uses %qD, which does not have an alignment "
> +            "parameter", alloc_fn);
> +    if (!aligned_new_threshold)
> +      inform (input_location, "use %<-faligned-new%> to enable C++17 "
> +                              "over-aligned new support");
> +  }

This looks weird.  I'd expect instead:
      if (warning (OPT_Waligned_new_, "%<new%> of type %qT with extended "
                   "alignment %d", elt_type, TYPE_ALIGN_UNIT (elt_type)))
        {
          inform (input_location, "uses %qD, which does not have an alignment "
                  "parameter", alloc_fn);
          if (!aligned_new_threshold)
            inform (input_location, "use %<-faligned-new%> to enable C++17 "
                                    "over-aligned new support");
        }
That is a standard idiom used if some inform or later warning/error depends
on whether earlier warning/error has been diagnosed.

Yes.

If that works, this is ok for trunk and 7.1 (we don't have a rc1 yet, it is
ok now).

One more thing, the test passes even without the patch.  Did you mean to add
// { dg-options "-Wall -w" }
?

Good catch. My original testcase used <type_traits> but I changed it
to not depend on the library, and didn't fix the dg-options.


Reply via email to