Hello Eno,

I noticed that mcs does not report locations for constants. The
attached patch fixes this matter. The patch is pretty massive
(as I had to compress it), but the fixes are pretty simple - I
just added Location parameter to everywhere BlahConstant is
created.
Unfortunately not for constants only. Could you make diff against mcs
SVN HEAD version ?


The patch got out of date (just in two days after) - anyways
attached the patch for the latest head.

Oups, something is wrong I got it today.
However, not sure about this patch. I am not convinced about usefulness of this patch. On several places this location doesn't make any sense.
For instance

+        public static Constant Constantify (Type t, Location loc)
        {

This method converts 'new int()' syntax not zero constant. I think if someone uses this location it is mcs coding error because it is not real constant.

In similar way here

        public override Constant Increment ()
        {
-            return new ByteConstant (checked ((byte)(Value + 1)));
+            return new ByteConstant (checked ((byte)(Value + 1)), loc);
        }

Returned constant is not real constant (it doesn't have any reference to source code) it is more like operator.

BTW I noticed that compiler-tester does not work fine for libs
and partial sources - maybe someone missed to commit it?
Could you be more specific ?


It stops at *-lib.cs, saying below:

test-317.cs...  OK
test-318.cs...  OK
test-319-lib.cs...
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object in [0x00020] (at C:\cygwin\home\atsushi\svn\mcs\tools\compiler-tester\compiler-tester.cs:395) TestRunner.PositiveChecker:ExecuteFile (System.Reflection.MethodInfo entry_point, System.String filename) in [0x00147] (at C:\cygwin\home\atsushi\svn\mcs\tools\compiler-tester\compiler-tester.cs:353) TestRunner.PositiveChecker:Check (System.String filename) in [0x0006c] (at C:\cygwin\home\atsushi\svn\mcs\tools\compiler-tester\compiler-tester.cs:153) TestRunner.Checker:Do (System.String filename) in [0x00150] (at C:\cygwin\home\atsushi\svn\mcs\tools\compiler-tester\compiler-tester.cs:687) TestRunner.Tester:Main (System.String[] args)
make[1]: *** [run-test-local] Error 1
make[1]: Leaving directory `/home/atsushi/svn/mcs/tests'
make: *** [do-run-test] Error 1

The attached workaround (not a fix) lets run-test completed, but
it still reports below:

The latest changes caused regression in 4 file(s)
test-353-p2.cs
test-361-p2.cs
test-388-p2.cs
test-389-p2.cs

They happen even though I haven't made any changes.

This looks strange. Are you using mono or Microsoft runtime ?

Marek

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to