summaryrefslogtreecommitdiff
path: root/vm_exec.h
diff options
context:
space:
mode:
Diffstat (limited to 'vm_exec.h')
-rw-r--r--vm_exec.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/vm_exec.h b/vm_exec.h
index 29120975ce..4362ace467 100644
--- a/vm_exec.h
+++ b/vm_exec.h
@@ -75,7 +75,7 @@ error !
#define LABEL(x) INSN_LABEL_##x
#define ELABEL(x) INSN_ELABEL_##x
-#define LABEL_PTR(x) &&LABEL(x)
+#define LABEL_PTR(x) RB_GNUC_EXTENSION(&&LABEL(x))
#define INSN_ENTRY_SIG(insn) \
if (0) fprintf(stderr, "exec: %s@(%d, %d)@%s:%d\n", #insn, \
@@ -106,7 +106,7 @@ error !
/* for GCC 3.4.x */
#define TC_DISPATCH(insn) \
INSN_DISPATCH_SIG(insn); \
- goto *(void const *)GET_CURRENT_INSN(); \
+ RB_GNUC_EXTENSION_BLOCK(goto *(void const *)GET_CURRENT_INSN()); \
;
#else
@@ -115,7 +115,7 @@ error !
#define TC_DISPATCH(insn) \
DISPATCH_ARCH_DEPEND_WAY(insns_address_table[GET_CURRENT_INSN()]); \
INSN_DISPATCH_SIG(insn); \
- goto *insns_address_table[GET_CURRENT_INSN()]; \
+ RB_GNUC_EXTENSION_BLOCK(goto *insns_address_table[GET_CURRENT_INSN()]); \
rb_bug("tc error");