mirror of
https://github.com/postgres/postgres.git
synced 2026-01-26 09:41:40 +03:00
Work around buggy alignas in older g++
Older g++ (<9.3) mishandle the alignas specifier (raise warnings that the alignment is too large), but the more or less equivalent attribute works. So as a workaround, #define alignas to that attribute for those versions. see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89357> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/3119480.1769189606%40sss.pgh.pa.us
This commit is contained in:
@@ -262,6 +262,16 @@
|
||||
*/
|
||||
#endif
|
||||
|
||||
/*
|
||||
* alignas is buggy in g++ < 9, but the more or less equivalent attribute
|
||||
* works.
|
||||
*
|
||||
* <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89357>
|
||||
*/
|
||||
#if defined(__cplusplus) && defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 9
|
||||
#define alignas(a) __attribute__((aligned(a)))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Use "pg_attribute_always_inline" in place of "inline" for functions that
|
||||
* we wish to force inlining of, even when the compiler's heuristics would
|
||||
|
||||
Reference in New Issue
Block a user