mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 17:53:37 +08:00
[BZ #16195] Fix build warnings from systemtap probes in non-systemtap configurations
Joseph pointed out in the bug report (and in an earlier thread) that systemtap probes cause build time warnings like the following: ../sysdeps/ieee754/dbl-64/e_atan2.c:602:4: warning: the address of 'p' will always evaluate as 'true' [-Waddress] due to the fact that we're now passing non-weak variables to LIBC_PROBE in the libm probes. This happens only on configurations that do not enable systemtap. The macro definition of LIBC_PROBE in this case only acts as a sanity checker to ensure that the number parameters passed to LIBC_PROBE is equal to the argument count parameter passed before it. This can be done in a much simpler manner by just adding a macro definition for each number of arguments. I am assuming here that we don't really want to bother with supporting LIBC_PROBE with an indeterminate number of arguments and if there is a need for a probe to have more data than what is currently supported (4 arguments), one could simply add an additional macro here.
This commit is contained in:
parent
416e014536
commit
520d437b94
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
||||
2013-12-03 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
|
||||
[BZ #16195]
|
||||
* include/stap-probe.h [!USE_STAP_PROBE && !__ASSEMBLER__]
|
||||
(LIBC_PROBE): Change definition to call STAP_PROBE* macros.
|
||||
(STAP_PROBE0): New macro.
|
||||
(STAP_PROBE1): Likewise.
|
||||
(STAP_PROBE2): Likewise.
|
||||
(STAP_PROBE3): Likewise.
|
||||
(STAP_PROBE4): Likewise.
|
||||
|
||||
2013-12-02 Ondřej Bílka <neleai@seznam.cz>
|
||||
|
||||
* manual/llio.texi (Memory-mapped I/O): Add shm_open and shm_close.
|
||||
|
4
NEWS
4
NEWS
@ -19,8 +19,8 @@ Version 2.19
|
||||
15892, 15893, 15895, 15897, 15905, 15909, 15917, 15919, 15921, 15923,
|
||||
15939, 15948, 15963, 15966, 15985, 15988, 15997, 16032, 16034, 16036,
|
||||
16037, 16041, 16055, 16071, 16072, 16074, 16077, 16078, 16103, 16112,
|
||||
16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172, 16214, 16245,
|
||||
16271.
|
||||
16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172, 16195, 16214,
|
||||
16245, 16271.
|
||||
|
||||
* The public headers no longer use __unused nor __block. This change is to
|
||||
support compiling programs that are derived from BSD sources and use
|
||||
|
@ -61,13 +61,14 @@
|
||||
|
||||
# ifndef __ASSEMBLER__
|
||||
/* Evaluate all the arguments and verify that N matches their number. */
|
||||
# define LIBC_PROBE(name, n, ...) \
|
||||
do { \
|
||||
_Bool __libc_probe_args[] = { 0, ## __VA_ARGS__ }; \
|
||||
_Bool __libc_probe_verify_n[(sizeof __libc_probe_args / sizeof (_Bool)) \
|
||||
== n + 1 ? 1 : -1]; \
|
||||
(void) __libc_probe_verify_n; \
|
||||
} while (0)
|
||||
#define LIBC_PROBE(name, n, ...) STAP_PROBE##n (__VA_ARGS__)
|
||||
|
||||
#define STAP_PROBE0()
|
||||
#define STAP_PROBE1(a1)
|
||||
#define STAP_PROBE2(a1, a2)
|
||||
#define STAP_PROBE3(a1, a2, a3)
|
||||
#define STAP_PROBE4(a1, a2, a3, a4)
|
||||
|
||||
# else
|
||||
# define LIBC_PROBE(name, n, ...) /* Nothing. */
|
||||
# endif
|
||||
|
Loading…
Reference in New Issue
Block a user