On Thu, Mar 09, 2017 at 11:25:49PM +0100, Marek Polacek wrote:
> We are crashing left and right with enumerators in attribute nonnull 
> arguments.
> Albeit handle_nonnull_attribute calls default_conversion to accept various
> integer constants (default_conversion calls scalar_constant_value which can
> turn CONST_DECLs into INTEGER_CSTs), it doesn't save the converted result to
> the attribute list, so those CONST_DECLs will stay in the list.  But the code
> later in the game assumes that the list only contains INTEGER_CSTs, which
> causes trouble (e.g. get_nonnull_operand).
> 
> Bootstrapped/regtested on x86_64-linux, ok for trunk?
> 
> 2017-03-09  Marek Polacek  <pola...@redhat.com>
> 
>       PR c++/79962
>       PR c++/79984
>       * c-attribs.c (handle_nonnull_attribute): Save the result of default
>       conversion to the attribute list.
> 
>       * c-c++-common/nonnull-3.c: New test.
>       * g++.dg/Wnonnull3.C: New test.

And this was meant to go to g++.dg/warn/.  I'll fix it up before committing.

        Marek

Reply via email to