builtin-multi-conf.patch
application/octet-stream
Filename: builtin-multi-conf.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| config/c-compiler.m4 | 6 | 2 |
| configure | 5 | 1 |
diff --git a/config/c-compiler.m4 b/config/c-compiler.m4
index ed26644a48..a3dc7f9cac 100644
--- a/config/c-compiler.m4
+++ b/config/c-compiler.m4
@@ -310,8 +310,12 @@ fi])# PGAC_C_BUILTIN_CONSTANT_P
AC_DEFUN([PGAC_C_BUILTIN_OP_OVERFLOW],
[AC_CACHE_CHECK(for __builtin_mul_overflow, pgac_cv__builtin_op_overflow,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([],
-[PG_INT64_TYPE result;
-__builtin_mul_overflow((PG_INT64_TYPE) 1, (PG_INT64_TYPE) 2, &result);]
+[PG_INT64_TYPE a;
+PG_INT64_TYPE b;
+PG_INT64_TYPE result;
+__builtin_mul_overflow(*(volatile PG_INT64_TYPE*) &a,
+ *(volatile PG_INT64_TYPE*) &b,
+ *(volatile PG_INT64_TYPE*) &result);]
)],
[pgac_cv__builtin_op_overflow=yes],
[pgac_cv__builtin_op_overflow=no])])
diff --git a/configure b/configure
index ca76ef0ab2..b6d60c97dc 100755
--- a/configure
+++ b/configure
@@ -14485,8 +14485,12 @@ else
int
main ()
{
+PG_INT64_TYPE a;
+PG_INT64_TYPE b;
PG_INT64_TYPE result;
-__builtin_mul_overflow((PG_INT64_TYPE) 1, (PG_INT64_TYPE) 2, &result);
+__builtin_mul_overflow(*(volatile PG_INT64_TYPE*) &a,
+ *(volatile PG_INT64_TYPE*) &b,
+ *(volatile PG_INT64_TYPE*) &result);
;
return 0;