[Patch] Improve the old fix for 11095

Benjamin Kosnik bkoz@redhat.com
Fri Oct 10 15:14:00 GMT 2003


This use of __builtin_alloca is wrong... 

 	      if (__w > __len)
  		{
! 		  __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
! 							       * __w));
! 		  __pad<_CharT, _Traits>::_S_pad(__out, __out.fill(), __cs, 
  						 &__c, __w, __len, false);
  		  __len = __w;
  		}
! 	      __out._M_write(__cs, __len);


__cs is only valid in the scope of the if block, but is used outside of
it (in __out._M_write(__cs, __len).

-benjamin 



More information about the Libstdc++ mailing list