bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Module with preprocessor utilities


From: Florian Weimer
Subject: Re: Module with preprocessor utilities
Date: Fri, 24 Jul 2020 10:56:41 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

* Marc Nieper-Wißkirchen:

> Am Fr., 24. Juli 2020 um 10:05 Uhr schrieb Florian Weimer 
> <fweimer@redhat.com>:
>
>> It's still a candidate for an RFE.  Martin Sebor has been working on
>> such warnings.  I'm going to talk to him.
>
> It may also be useful for optimizations because the compiler may make
> assumptions.
>
>> >> It's also undefined when you pass the address of something that is not
>> >> the first element of an array of type double to foo1.  (Undefined in the
>> >> sense that the standard does not say what happens in that case.)
>> >
>> > Yes, but a pointer to (an existing) double fulfills this requirement.
>>
>> I don't think that's how the standard defines “first element of an
>> array”.  I suspect the intent was that it the pointer has to point to an
>> array of at least the indicated number of elements, but that's not what
>> the standard says.
>
> According to ISO C, "an array type describes a contiguously allocated
> nonempty set of objects with a particular member object type, called
> the element type". Thus, given
>
> double x;
> double *p = &x;
>
> the pointer p points to the first element of an array (of length 1).

This is the case that is unclear:

double x[2];
double *p = &x[1];

The standard explicitly says “first element of an array”. 

Thanks,
Florian




reply via email to

[Prev in Thread] Current Thread [Next in Thread]