about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--NEWS4
-rw-r--r--include/stap-probe.h15
3 files changed, 21 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index de634b4d41..182051a727 100644
--- a/ChangeLog
+++ b/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.
diff --git a/NEWS b/NEWS
index e85b4c6e30..c431d72539 100644
--- a/NEWS
+++ b/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
diff --git a/include/stap-probe.h b/include/stap-probe.h
index 5f725562cb..e2963506aa 100644
--- a/include/stap-probe.h
+++ b/include/stap-probe.h
@@ -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