* Workaround: Implement noinline attributes for problematic functions in str.cpp due to what appears to be GCC compiler bugs.

This commit is contained in:
Robert MacGregor 2021-09-01 21:12:12 -04:00
parent 09272e0e63
commit 1b55dce613
3 changed files with 7 additions and 2 deletions

View file

@ -284,8 +284,8 @@ class String::StringData : protected StringDataImpl
delete [] mUTF16;
}
void* operator new(size_t size, U32 len);
void* operator new( size_t size, U32 len, DataChunker& chunker );
void* TORQUE_NOINLINE operator new(size_t size, U32 len);
void* TORQUE_NOINLINE operator new( size_t size, U32 len, DataChunker& chunker );
void operator delete(void *);
bool isShared() const

View file

@ -165,5 +165,8 @@ typedef unsigned long U64;
#endif
#endif
// Set GCC noinline
#define TORQUE_NOINLINE __attribute__ ((noinline))
#endif // INCLUDED_TYPES_GCC_H

View file

@ -104,6 +104,8 @@ typedef unsigned _int64 U64;
// see msdn.microsoft.com "Compiler Warning (level 1) C4291" for more details
#pragma warning(disable: 4291)
// Set MSVC noline attribute
#define TORQUE_NOINLINE __declspec(noinline)
#endif // INCLUDED_TYPES_VISUALC_H