Details
Description
When compiling with gcc 5.0 We get link failures on missing putByIndexBeyondVectorLengthWithoutAttributes
Problem is we are depending upon a behavior of compiler where we are expecting it to emit template and not optimize them away. gcc 5.0 bites us since it does optimize away one of instance after inlining
gcc-5.0 - O2
==============
readelf -sW JSObject.o | c++filt | grep putByIndexBeyondVectorLengthWithoutAttributes
298: 00000000 284 FUNC WEAK HIDDEN 43 void JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes<(unsigned char)22>(JSC::ExecState*, unsigned int, JSC::JSValue)
300: 00000000 264 FUNC WEAK HIDDEN 45 void JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes<(unsigned char)26>(JSC::ExecState*, unsigned int, JSC::JSValue)
gcc-5.0 - O1
============
readelf -sW a.o | c++filt | grep putByIndexBeyondVectorLengthWithoutAttributes
505: 00000000 224 FUNC WEAK DEFAULT 128 void JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes<(unsigned char)20>(JSC::ExecState*, unsigned int, JSC::JSValue)
507: 00000000 252 FUNC WEAK DEFAULT 138 void JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes<(unsigned char)22>(JSC::ExecState*, unsigned int, JSC::JSValue)
510: 00000000 224 FUNC WEAK DEFAULT 147 void JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes<(unsigned char)26>(JSC::ExecState*, unsigned int, JSC::JSValue)