Parcourir la source

* convert non-constant enums in in-expressions to longint if we use the
generic jumps code

git-svn-id: branches/jvmbackend@18697 -

Jonas Maebe il y a 14 ans
Parent
commit
c8c75d7e1d
1 fichiers modifiés avec 7 ajouts et 3 suppressions
  1. 7 3
      compiler/jvm/njvmset.pas

+ 7 - 3
compiler/jvm/njvmset.pas

@@ -68,9 +68,13 @@ implementation
           begin
             if right.nodetype=setconstn then
               tjvmsetconstnode(right).setconsttype:=sct_notransform;
-            if isenum and
-               (left.nodetype=ordconstn) then
-              tjvmordconstnode(left).enumconstok:=true;
+            if isenum then
+              if (left.nodetype=ordconstn) then
+                tjvmordconstnode(left).enumconstok:=true
+              else
+                { not very clean, since we now have "longint in enumset", but
+                  the code generator doesn't really mind }
+                inserttypeconv_explicit(left,s32inttype);
           end;
         result:=inherited pass_1;
         if assigned(result) then