On Wed, 25 Jun 2014, Sebastian Huber wrote:

> In case __auto_type discards const and volatile qualifiers, then shouldn't
> this generate a warning (-Wconst-qual)
> 
> __auto_type __atomic_load_ptr = (PTR);
> 
> ?

No.  The discarding is for qualifiers on the type itself (remembering that 
qualifiers on rvalues aren't that well-defined in ISO C), not on the 
target of any pointer.

> Why is it necessary to discard the const and/or volatile qualifiers in the
> __auto_type at all?  I think for <stdatomic.h> it should be sufficient to
> discard them only in __typeof__.

__auto_type is, by design, meant to be consistent with typeof (while 
avoiding multiple evaluation when VLAs are involved, as well as avoiding 
exponential blowup of the size of the expansion with nested calls to 
macros).

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to