Just really ! The array arr has the type void ***, the cast happens on the
first derefencing of arr. So the result remains a void **, which is for
sure a pointer. This leads to a pointer truncation,
therefore to a warning and a build failure. It is clear, that the first
element of the array arr is in fact the integer value of a type with
sizeof(void *).
Wouldn't is better to have for this cast monster a structure. Something
like
struct sFieldArray {
size_t count;
void *arr[1];
}
?
Regards,
i.A. Kai Tietz
Richard Henderson <[EMAIL PROTECTED]>
08.03.2007 19:08
To
Kai Tietz <[EMAIL PROTECTED]>
cc
Ian Lance Taylor <[EMAIL PROTECTED]>, [email protected]
Subject
Re: What does coding-style tells about integer types for pointers ?
On Thu, Mar 08, 2007 at 06:06:57PM +0100, Kai Tietz wrote:
> In gcc the file emutls.c assumes that a long has sizeof void * in
function
> emutls_destroy.
Not really. It assumes you can store the size of the array
in min(sizeof(long), sizeof(void*)) bytes.
r~