Hi all I picked up this weird code generation problem (it was also present in 2.0.0). I reported it as bug 4277 today. Unfortunately I can only reproduce it in a specific context, so please e-mail me for the unit.
The problem is when you define an array of constant strings. For example: const RFCMonthNames : Array[1..12] of String = ( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); is usually assembled as something like: TC_P$TESTARRAY_RFCMONTHNAMES DD _$PROGRAM$_L4, _$PROGRAM$_L5, _$PROGRAM$_L6, _$PROGRAM$_L7, ...... DD -1,3 _$PROGRAM$_L4: DB "Jan",0 DD -1,3 _$PROGRAM$_L5: DB "Feb",0 DD -1,3 .... which is correct, but the exact same code (in a different unit) is compiled differently, causing access violations when accessed: TC_CDATETIME_RFCMONTHNAMES DD _$CDATETIME$_L2046 DD -1,3 _$CDATETIME$_L2046: DB "Jan",0 DD _$CDATETIME$_L2047 DD -1,3 _$CDATETIME$_L2047: DB "Feb",0 DD _$CDATETIME$_L2048 DD -1,3 _$CDATETIME$_L2048: DB "Mar",0 DD _$CDATETIME$_L2049 DD -1,3 _$CDATETIME$_L2049: DB "Apr",0 ........ Regards David _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel