summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-04-02 08:43:18 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-04-02 08:43:18 +0000
commit4ad0071dc8784c1d262e8bd3dd3e9e62d322a395 (patch)
tree0c9a466373fd4e0fc4a66dee1f8a8149944add5f /configure.in
parent1f2082005453970b329bf14fc815933cd6d39915 (diff)
configure.in: do not use a variable for longjmp
* configure.in (ac_cv_func___builtin_setjmp): gcc 4.9 disallows a variable as the second argument of __builtin_longjmp(). [ruby-core:61800] [Bug #9692] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in9
1 files changed, 7 insertions, 2 deletions
diff --git a/configure.in b/configure.in
index 3845f05c7c..71b3da9613 100644
--- a/configure.in
+++ b/configure.in
@@ -2076,8 +2076,13 @@ AC_CACHE_CHECK(for sigsetjmp as a macro or function, ac_cv_func_sigsetjmp,
AC_CACHE_CHECK(for __builtin_setjmp, ac_cv_func___builtin_setjmp,
[AC_TRY_LINK([@%:@include <setjmp.h>
- jmp_buf jb; void t(v) int v; {__builtin_longjmp(jb, v);}],
- [__builtin_setjmp(jb);],
+ @%:@include <stdio.h>
+ jmp_buf jb;
+ void t(void) {__builtin_longjmp(jb, 1);}],
+ [
+ void (*volatile f)(void) = t;
+ if (!__builtin_setjmp(jb)) printf("%d\n", f != 0);
+ ],
[ac_cv_func___builtin_setjmp=yes],
[ac_cv_func___builtin_setjmp=no])
])