diff --git a/harbour/ChangeLog b/harbour/ChangeLog index e74f78d31b..290ccdf66b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,16 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-09-24 13:57 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/source/vm/itemapi.c + * modified (optimized manually) hb_itemPutNLen() to not exploit bug + in ICC optimizer when itemapi.c is compiled by ICC with -fpic switch. + + * harbour/source/vm/vmmt/Makefile + * removed hack for ICC compilers which disabled HB_VM_ALL in ICC builds + BTW it was not enough (my mistake) and the problem was exploited also + when itemapi.c was compiled standalone + 2009-09-24 13:49 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.prg % Using -undef:.ARCH. diff --git a/harbour/source/vm/itemapi.c b/harbour/source/vm/itemapi.c index 4f2b8b9da1..1e07f4014f 100644 --- a/harbour/source/vm/itemapi.c +++ b/harbour/source/vm/itemapi.c @@ -1047,9 +1047,6 @@ PHB_ITEM hb_itemPutNLen( PHB_ITEM pItem, double dNumber, int iWidth, int iDec ) { HB_TRACE(HB_TR_DEBUG, ("hb_itemPutNLen(%p, %lf, %d, %d)", pItem, dNumber, iWidth, iDec)); - if( iWidth <= 0 || iWidth > 99 ) - iWidth = HB_DBL_LENGTH( dNumber ); - if( iDec < 0 ) { HB_STACK_TLS_PRELOAD @@ -1062,14 +1059,10 @@ PHB_ITEM hb_itemPutNLen( PHB_ITEM pItem, double dNumber, int iWidth, int iDec ) if( ( double ) lNumber == dNumber ) { - if( HB_LIM_INT( lNumber ) ) - return hb_itemPutNILen( pItem, ( int ) lNumber, iWidth ); - else -#ifdef HB_LONG_LONG_OFF - return hb_itemPutNLLen( pItem, ( long ) lNumber, iWidth ); -#else - return hb_itemPutNLLLen( pItem, ( LONGLONG ) lNumber, iWidth ); -#endif + if( iWidth <= 0 || iWidth > 99 ) + iWidth = HB_DBL_LENGTH( dNumber ); + + return hb_itemPutNIntLen( pItem, lNumber, iWidth ); } } diff --git a/harbour/source/vm/vmmt/Makefile b/harbour/source/vm/vmmt/Makefile index e2dde267a5..d640095531 100644 --- a/harbour/source/vm/vmmt/Makefile +++ b/harbour/source/vm/vmmt/Makefile @@ -27,13 +27,6 @@ else endif endif -ifeq ($(HB_HVM_ALL),yes) - # we disable it due to compiler bug (internal error) when using -fpic option. [20090920] - ifeq ($(HB_PLATFORM)-$(HB_COMPILER),linux-icc) - HB_HVM_ALL := no - endif -endif - ifeq ($(HB_HVM_ALL),yes) C_SOURCES := \