File tree Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -292,6 +292,7 @@ struct caml__roots_block {
292
292
*/
293
293
294
294
#define CAMLparam0 () \
295
+ int caml__missing_CAMLreturn = 0; \
295
296
struct caml__roots_block *caml__frame = Caml_state_field(local_roots)
296
297
297
298
#define CAMLparam1 (x ) \
@@ -451,7 +452,10 @@ struct caml__roots_block {
451
452
CAMLxparamN (x, (size))
452
453
453
454
454
- #define CAMLdrop Caml_state_field(local_roots) = caml__frame
455
+ #define CAMLdrop do { \
456
+ (void)caml__missing_CAMLreturn; \
457
+ Caml_state_field(local_roots) = caml__frame; \
458
+ } while (0)
455
459
456
460
#define CAMLreturn0 do{ \
457
461
CAMLdrop; \
@@ -466,7 +470,7 @@ struct caml__roots_block {
466
470
467
471
#define CAMLreturn (result ) CAMLreturnT(value, result)
468
472
469
- #define CAMLnoreturn ((void) caml__frame)
473
+ #define CAMLnoreturn ((void) caml__missing_CAMLreturn, (void) caml__frame)
470
474
471
475
472
476
/* convenience macro */
You can’t perform that action at this time.
0 commit comments