https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82995

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P4
             Status|WAITING                     |NEW
                 CC|                            |kargl at gcc dot gnu.org
   Target Milestone|---                         |8.0

--- Comment #2 from kargl at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #1)
> IMO the code is invalid: you cannot call my_sum with only one argument. I
> get a segfault for all the revision I have tested from 4.8 up to trunk
> (8.0), except with my instrumented trunk for which I get 0.
> 
> I am a little bit surprised that the mismatch between caller and callee is
> not detected, but I think a compiler does have to (I did not look at the
> standard legalese).

The code is valid.  From 2008, page 299

  An optional dummy argument that is not present is subject to the
  following restrictions.

   (1) If it is a data object, it shall not be referenced or be
       defined. ...
    ...

  Except as noted in the list above, it may be supplied as an actual
  argument corresponding to an optional dummy argument, which is then
  also considered not to be present.

By (1), one would think that the absent optional argument cannot
be referenced within my_sum().  However, the exception explicitly
allows this case as the MASK argument of SUM is optional.

Reply via email to