mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Try to detect runtime unavailability of __builtin_mul_overflow(int64).
On some systems the results of 64 bit __builtin_mul_overflow() operations can be computed at compile time, but not at runtime. The known cases are arm buildfar animals using clang where the runtime operation is implemented in a unavailable function. Try to avoid compile-time computation by using volatile arguments to __builtin_mul_overflow(). In that case we hopefully will get a link error when unavailable, similar to what buildfarm animals dangomushi and gull are reporting. Author: Andres Freund Discussion: https://postgr.es/m/20171213213754.pydkyjs6bt2hvsdb@alap3.anarazel.de
This commit is contained in:
4
configure
vendored
4
configure
vendored
@ -14488,8 +14488,10 @@ else
|
||||
int
|
||||
main ()
|
||||
{
|
||||
PG_INT64_TYPE a = 1;
|
||||
PG_INT64_TYPE b = 1;
|
||||
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, &result);
|
||||
|
||||
;
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user