This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Build failure with probe patch
- From: Pedro Alves <palves at redhat dot com>
- To: Sergio Durigan Junior <sergiodj at redhat dot com>, Steve Ellcey <sellcey at imgtec dot com>
- Cc: jose dot marchesi at oracle dot com, gdb-patches at sourceware dot org
- Date: Thu, 19 Feb 2015 10:42:42 +0000
- Subject: Re: Build failure with probe patch
- Authentication-results: sourceware.org; auth=none
- References: <bac100bc-73de-4bf6-86b5-912ad6887c5a at BAMAIL02 dot ba dot imgtec dot org> <87wq3ercw0 dot fsf at redhat dot com>
On 02/18/2015 11:57 PM, Sergio Durigan Junior wrote:
> On Wednesday, February 18 2015, Steve Ellcey wrote:
>
>> Is anyone else seeing this error when building the top-of-tree gdb:
>>
>>
>> cc1: warnings being treated as errors
>> /scratch/sellcey/gdb-bug/src/gdb/gdb/dtrace-probe.c: In function 'dtrace_get_probes':
>> /scratch/sellcey/gdb-bug/src/gdb/gdb/dtrace-probe.c:624: warning: dereferencing type-punned pointer will break strict-aliasing rules
>> make[1]: *** [dtrace-probe.o] Error 1
>
> Thanks for your report.
>
> I don't see anything like this in any of our builders here:
>
> <http://gdb-build.sergiodj.net/waterfall>
>
>> I get this when building gdb on a CentOS 5 system with GCC 4.1.2 but I do not
>> see it when building on a Ubuntu 12.04 system with GCC 4.6.3. I am not sure
>> if this is due to the old GCC or if it is a legitimate error.
>
> According to:
>
> <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41874>
>
> This warning has been removed from GCC. And by looking at the code
> referenced by it, I don't see anything wrong there. So I'd say you can
> ignore this (and probably update your GCC).
>
Actually, the code in that GCC bug is valid (char can alias anything),
but the GDB code being warned about is invalid (C99/N1256, 6.5/7) -
the dtrace code is aliasing pointers of incompatible types.
See:
https://gcc.gnu.org/ml/gcc-help/2013-03/msg00118.html
I fixed up all similar cases I found in the GDB codebase a while ago:
https://sourceware.org/ml/gdb-patches/2013-03/msg00449.html
https://sourceware.org/ml/gdb-patches/2013-03/msg00578.html
Compiling with -Wstrict-aliasing=1 shows that dtrace-probe.c warning
with recent GCC's too, but then again, it also dumps a truckload
of false positives.
Thanks,
Pedro Alves