This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bug on sizeof(void) == 1, must be undefined or negative, == -100000.



On Jun 17, 2005, at 5:27 PM, jc-nospam@jr-pizarro.jazztel.es wrote:


On Jun 17, 2005, at 17:05:37, pinskia@physics.uc.edu wrote:


void *z = y; // -> z = 0xBAD0DAD5 z++; // adding +0? adding +1? adding +4? abort this error?

Since this is a GNU extension, GCC defines as adding 1. See the documentation
where this is documented.
http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Pointer-Arith.html#Pointer- Arith



In GNU C, addition and subtraction operations are supported on pointers to void and on pointers to functions. This is done by treating the size of a void or of a function as 1.


A consequence of this is that sizeof is also allowed on void and on function types, and returns 1.

The option -Wpointer-arith requests a warning if these extensions are used.

-- Pinski


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]