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 in restricted pointers (C99)?


The Thodes wrote:
GCC 3.3.1 on i686-pc-cygwin does not squawk if I try to pass the same
address twice to a fn taking two restrict-qualified ptrs as args... (src,
output follows)

This is a programmer bug, not a compiler bug. The ISO C99 standard says that the behaviour of the program is undefined. There is no requirement for the compiler to emit a diagnostic here. It is the programmer's responsibility to use restrict correctly, and there is no requirement for the compiler to do any checking of it.


In general, it is not possible for a compiler to determine when there are problems with uses of the restrict keyword. Doing this would require perfect interprocedural aliasing analysis, and that is difficult to impossible. Thus the compiler is not required to emit any warnings, even in obvious cases like this. If we did have perfect aliasing info, then we wouldn't need the restrict keyword. The restrict keyword exists as an optimization, because compilers can't determine this info themselves.

We could perhaps emit a warning in an obvious case like this as an enhancement. We will never be able to warn for all incorrect uses though.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



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