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)