gcc's support for __attribute__((noinline)) hasn't been around forever.

Buildfarm member gaur says it wasn't there in 2.95.3.  Guess that 3.0
and later have it.
This commit is contained in:
Tom Lane 2017-10-14 15:52:00 -04:00
parent 4de2d4fba3
commit 82aff8d336
1 changed files with 6 additions and 5 deletions

View File

@ -644,12 +644,13 @@ typedef NameData *Name;
/*
* Forcing a function not to be inlined can be useful if it's the slow-path of
* a performance critical function, or should be visible in profiles to allow
* for proper cost attribution.
* Forcing a function not to be inlined can be useful if it's the slow path of
* a performance-critical function, or should be visible in profiles to allow
* for proper cost attribution. Note that unlike the pg_attribute_XXX macros
* above, this should be placed before the function's return type and name.
*/
/* GCC, Sunpro and XLC support noinline via __attribute */
#if defined(__GNUC__) || defined(__SUNPRO_C) || defined(__IBMC__)
/* GCC, Sunpro and XLC support noinline via __attribute__ */
#if (defined(__GNUC__) && __GNUC__ > 2) || defined(__SUNPRO_C) || defined(__IBMC__)
#define pg_noinline __attribute__((noinline))
/* msvc via declspec */
#elif defined(_MSC_VER)