test/compiler/6711117/Test.java

Mon, 28 Jul 2014 15:06:38 -0700

author
fzhinkin
date
Mon, 28 Jul 2014 15:06:38 -0700
changeset 6997
dbb05f6d93c4
parent 1907
c18cbe5936b8
child 6876
710a3c8b516e
permissions
-rw-r--r--

8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on
Summary: call rtm_deopt() only if there were no compilation bailouts before.
Reviewed-by: kvn

     1 /*
     2  * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     8  *
     9  * This code is distributed in the hope that it will be useful, but WITHOUT
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    12  * version 2 for more details (a copy is included in the LICENSE file that
    13  * accompanied this code).
    14  *
    15  * You should have received a copy of the GNU General Public License version
    16  * 2 along with this work; if not, write to the Free Software Foundation,
    17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18  *
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    22  *
    23  */
    25 /*
    26  * @test
    27  * @bug 6711117
    28  * @summary Assertion in 64bit server vm (flat != TypePtr::BOTTOM,"cannot alias-analyze an untyped ptr")
    29  * @run main/othervm -Xcomp -XX:+IgnoreUnrecognizedVMOptions -XX:+AggressiveOpts -XX:+UseCompressedOops Test
    30  */
    32 final class Test_Class_0 {
    33     final static char var_1 = 'E';
    34     short var_2 = 16213;
    35     final static String var_3 = "jiiibmmsk";
    38     public Test_Class_0()
    39     {
    40         var_2 ^= 'M';
    41         final String var_18 = var_3;
    42         var_2--;
    43         var_2 |= (byte)('D' / (byte)var_2) - ((byte)1.6680514E38F << + ((byte)'O') & 7320241275829036032L);
    44         func_2(((!false & false | false ? true : false) ? true : true | !true) ? var_2 : 834513107);
    45         var_2 >>>= var_1;
    46         "smiosoebk".codePointCount(true ^ (false ^ ! !false) ? (byte)- ((byte)430513598) : + ((byte)'_'), ~ (true ? (byte)']' : (byte)-2.8272547997066827E307));
    47         var_2 -= true ? var_1 : var_1;
    48         var_2 ^= var_1;
    49         var_2 &= (var_2 |= ~ ((byte)(var_2 *= var_2)));
    50         long var_19 = 0L;
    51         short var_20 = var_2 += 'P';
    52         while (var_19 < 1)
    53         {
    54             var_2 ^= true ? (byte)- +1.2219539475209E308 : (byte)1.2748408476894178E308;
    55             var_19++;
    56             var_2 = (byte)((1489358000 == (var_20 | 7816908224315289600L) ? var_1 : var_1) ^ var_19);
    57             var_20--;
    58         }
    59         var_20 -= 'f';
    60         var_20 <<= (((new Test_Class_0[(byte)var_20])[(byte)var_2]).var_2 *= false ? 'g' : 'x');
    61     }
    66     static float func_0()
    67     {
    68         ((new Test_Class_0[(byte)7.774490796987995E307])[(byte)'v']).var_2 <<= false ^ !false ? (short)'v' : "".codePointCount(594464985, 579036736);
    69         ((new Test_Class_0[(byte)(((new Test_Class_0[(byte)1361657519])[(byte)2.3703713E38F]).var_2-- - (short)3.5589388134844986E307)])[((true ? !true : false) ^ (!false ? true : !true) ? !false : false) ? (byte)7.047289E37F : (byte)- ((byte)2.6620062118475144E307)]).var_2 *= 3273943364390983680L;
    70         --((new Test_Class_0[false ? (byte)(short)1.4965069E36F : (byte)286322022])[(byte)- ((byte)2.742619E38F)]).var_2;
    71         long var_4;
    72         {
    73             double var_5;
    74         }
    75         var_4 = (byte)1.3509231E38F;
    76         ((new Test_Class_0[(byte)'_'])[('g' | 1427123046096105472L) < var_1 >> (byte)(int)(byte)7697616672011068416L ? (byte)var_1 : (byte)1251856579]).var_2--;
    77         switch (--((new Test_Class_0[(byte)5.0656327E37F])[(byte)'e']).var_2 != ++((new Test_Class_0[(byte)(int)1.3728667270920175E308])[(byte)+ + -1.6338179407381788E308]).var_2 | !var_3.equalsIgnoreCase("iiwwwln") ? (false ? (byte)1.8291216E38F : (byte)4.778575546584698E307) : (byte)1048254181)
    78         {
    79             case 99:
    81         }
    82         {
    83             byte var_6 = 13;
    84         }
    85         var_4 = --((new Test_Class_0[!var_3.endsWith("qaoioore") ^ false ? (byte)2.827362738392923E307 : (byte)~4890175967151316992L])[(byte)(short)var_1]).var_2;
    86         ++((new Test_Class_0[(byte)(1.0075552E38F + (short)2083553541)])[(byte)(short)(byte)(short)1.6872205E38F]).var_2;
    87         return ((new Test_Class_0[(byte)var_1])[(byte)+ +5760973323384750080L]).var_2 - (false ? (byte)'i' : (var_4 = (short)1.2458781351126844E308) + 2.131006E38F);
    88     }
    90     public static long func_1(String arg_0, Object arg_1, final long arg_2)
    91     {
    92         arg_0 = false ? arg_0 : "fgbrpgsq";
    93         ((new Test_Class_0[(byte)- ((byte)']')])[false ? (byte)757239006 : (byte)1866002020]).var_2 ^= (short)(true ? (byte)(((new Test_Class_0[(byte)1416194866])[(byte)1.2309887362692395E308]).var_2 >>= (int)~ ~ ~arg_2) : (byte)5804970709284726784L);
    94         final long var_7 = (long)(- + ((long)+ - + - -2.5396583E38F) - - +1.8770165E38F % 2472404173160781824L < --((new Test_Class_0[(byte)5.569360482341752E307])[(byte)(double)(byte)8131142397821553664L]).var_2 ^ true ? (false ? (byte)- -1.163275451591927E308 : (byte)var_1) : (false ? (byte)1843746036 : (byte)1.0209668642291047E308));
    95         arg_0 = (arg_0 = arg_0.substring(699480935));
    96         switch (((new Test_Class_0[(byte)(5415649243316856832L >> 861936806)])[true | true & !false ? (byte)(short)- -7.785169683394908E307 : (byte)+ ((byte)arg_2)]).var_2++)
    97         {
    98             case 42:
   100             case 102:
   102         }
   103         arg_1 = (true || false ? false : true) ? (arg_0 = (arg_0 = "jbfaru")) : arg_0;
   104         arg_1 = new byte[(byte)2.669957E38F];
   105         boolean var_8 = ! ((false ? (short)1.4259420861834744E308 : (short)7.352115508157158E307) != 1.7635658130722812E308);
   106         arg_1 = new Object[(byte)- ((byte)(short)1.8950693E38F)];
   107         arg_0 = arg_0;
   108         return (byte)1.4762239057269886E308 & 4923938844759802880L;
   109     }
   111     double[][] func_2(final int arg_0)
   112     {
   113         var_2 >>>= (var_2 >>= var_2++);
   114         float var_9 = 0F;
   115         var_2 %= var_2;
   116         do
   117         {
   118             ++var_2;
   119             var_9++;
   120             var_2++;
   121         } while (true && (var_9 < 1 && false));
   122         double var_10 = 0;
   123         final int var_11 = 11903395;
   124         do
   125         {
   126             --var_2;
   127             var_10++;
   128             ++var_2;
   129         } while ((false & true || false) && (var_10 < 2 && ~ ((byte)'[') == (byte)(1.1943192E38F % ('c' << var_1) % (byte)((var_2 |= var_2) + 591679039 / ~5932100696448264192L))));
   130         String var_12 = "jkwnk";
   131         var_12 = var_3;
   132         var_12 = (var_12 = (var_12 = var_3));
   133         var_12 = "qrhdwx";
   134         var_12 = var_12;
   135         short var_13 = (true && true) ^ true | ! (!true || 1646418779 <= (byte)var_1) ? var_2 : var_2;
   136         return new double[(byte)var_1][true || false ^ !true ^ true ? (byte)arg_0 : (byte)var_10];
   137     }
   139     private final int func_3()
   140     {
   141         long var_14 = 's' * (~ ~6656240461354863616L * 3151744928387344384L) << ~ (((var_2 >>>= 6600935261424147456L) % 1798503219359364096L | - ~3832249967647077376L / - ((byte)~1529201870915276800L)) / var_2);
   142         {
   143             var_14 |= !false | (byte)1078230528 >= (byte)1.3972878565417081E308 | (true | !true & !true & !false) ? var_1 : '_';
   144         }
   145         long var_15 = 7589204885152164864L;
   146         var_2 ^= (var_1 < (byte)'r' ? 475314139 : 'Z') <= 1943074698 ? 'h' : var_1;
   147         return 'V' * (false ? (byte)5.498204E37F : (byte)1.0137001669765466E308);
   148     }
   150     protected static boolean func_4(boolean arg_0, byte arg_1, boolean arg_2)
   151     {
   152         arg_1++;
   153         arg_1 &= (((((new Test_Class_0[arg_1][arg_1][arg_1])[arg_1])[arg_1])[arg_1]).var_2 |= arg_2 ? (short)~3038084056596854784L : (short)+ (arg_1 = arg_1));
   154         arg_0 |= true;
   155         arg_1 %= (arg_1 |= ((new Test_Class_0[arg_1])[arg_1]).var_2--);
   156         if (false)
   157         {
   158             arg_0 |= arg_2;
   159         }
   160         else
   161         {
   162             ++(((new Test_Class_0[arg_1][arg_1][arg_1])[arg_1 += var_1])[(!arg_2 | (arg_0 &= false)) ^ (arg_0 | arg_0) ? arg_1 : (arg_1 <<= 3192041751921364992L)][arg_1 /= arg_1]).var_2;
   163         }
   164         arg_1 &= +(new byte[arg_1])[arg_1];
   165         arg_1 <<= 3632133838014908416L;
   166         byte[] var_16 = (new byte[arg_1][arg_1--])[arg_1];
   167         long var_17;
   168         arg_1 ^= ~ arg_1--;
   169         arg_0 ^= (arg_2 ^= 1186877294 >= ((new Test_Class_0[arg_1][arg_1])[arg_1][arg_1]).var_2) & arg_2;
   170         return var_3.startsWith(var_3);
   171     }
   173     public String toString()
   174     {
   175         String result =  "[\n";
   176         result += "Test_Class_0.var_2 = "; result += Test.Printer.print(var_2);
   177         result += "\n";
   178         result += "Test_Class_0.var_1 = "; result += Test.Printer.print(var_1);
   179         result += "\n";
   180         result += "Test_Class_0.var_3 = "; result += Test.Printer.print(var_3);
   181         result += "";
   182         result += "\n]";
   183         return result;
   184     }
   185 }
   188 class Test_Class_1 {
   189     static int var_21 = 670918363;
   190     final float var_22 = 8.650798E37F;
   191     static int var_23 = 1774228457;
   192     final int var_24 = 1282736974;
   193     final byte var_25 = !false & false | true ? (byte)7.677121016144275E307 : (byte)'r';
   194     static long var_26 = 2939310115459338240L;
   195     final long var_27 = var_25 - 7555453173456381952L;
   196     double var_28;
   197     static String var_29;
   200     public Test_Class_1()
   201     {
   202         var_29 = Test_Class_0.var_3;
   203         ((false ? false || ! !true : ! (! !true & !true)) ? new Test_Class_0() : new Test_Class_0()).var_2++;
   204         var_23 -= 2.963694E38F;
   205     }
   210     public String toString()
   211     {
   212         String result =  "[\n";
   213         result += "Test_Class_1.var_21 = "; result += Test.Printer.print(var_21);
   214         result += "\n";
   215         result += "Test_Class_1.var_23 = "; result += Test.Printer.print(var_23);
   216         result += "\n";
   217         result += "Test_Class_1.var_24 = "; result += Test.Printer.print(var_24);
   218         result += "\n";
   219         result += "Test_Class_1.var_26 = "; result += Test.Printer.print(var_26);
   220         result += "\n";
   221         result += "Test_Class_1.var_27 = "; result += Test.Printer.print(var_27);
   222         result += "\n";
   223         result += "Test_Class_1.var_28 = "; result += Test.Printer.print(var_28);
   224         result += "\n";
   225         result += "Test_Class_1.var_22 = "; result += Test.Printer.print(var_22);
   226         result += "\n";
   227         result += "Test_Class_1.var_25 = "; result += Test.Printer.print(var_25);
   228         result += "\n";
   229         result += "Test_Class_1.var_29 = "; result += Test.Printer.print(var_29);
   230         result += "";
   231         result += "\n]";
   232         return result;
   233     }
   234 }
   237 class Test_Class_2 {
   238     double var_30;
   239     static byte var_31;
   240     static char var_32;
   241     float var_33;
   242     double var_34 = !false & (true ? true : ! !true && false) ? 'q' - 4789231433793305600L - (var_33 = -1.0677024E38F) : 2.65473560313378E307;
   243     final double var_35 = ~Test_Class_1.var_26 == 5.145660681364723E307 | false ? 1.4134775E38F : 1.77223030708671E308;
   244     final int var_36 = Test_Class_1.var_23 |= Test_Class_1.var_21++;
   247     public Test_Class_2()
   248     {
   249         Test_Class_0.var_3.replace(Test_Class_0.var_1, 'Q');
   250         var_32 = (var_32 = (var_32 = '_'));
   251         Test_Class_1.var_26 |= Test_Class_0.var_1;
   252         Test_Class_1.var_29 = (Test_Class_1.var_29 = Test_Class_0.var_3);
   253         var_32 = Test_Class_0.var_1;
   254         var_33 = ((new Test_Class_0[(byte)851412948463452160L])[var_31 = new Test_Class_1().var_25]).var_2;
   255         var_33 = ! (((!false | false) & (false || !true) ? false : ! !false) | false) ? new Test_Class_1().var_25 : (var_31 = new Test_Class_1().var_25);
   256         float var_38 = 0F;
   257         var_34 /= 5336005797857974272L;
   258         for ("ccnyq".endsWith((new String[(byte)Test_Class_1.var_26])[var_31 = (var_31 = (var_31 = (byte)4.7927775E37F))]); var_38 < 2; var_32 = '^' <= Test_Class_0.var_1 ^ true ? (var_32 = Test_Class_0.var_1) : (var_32 = 'V'))
   259         {
   260             var_32 = true ? 'a' : (var_32 = Test_Class_0.var_1);
   261             var_38++;
   262             var_33 = new Test_Class_1().var_24;
   263             var_32 = ! (true || true ? !false : (short)3.2844383E37F < 2.1400662E38F) ? (char)1.2691096999143248E308 : (! !false ^ true ? 's' : 'q');
   264         }
   265         var_32 = 'B';
   266         {
   267             var_32 = Test_Class_0.var_1;
   268         }
   269         var_32 = Test_Class_0.var_1;
   270         Test_Class_1.var_29 = "ov";
   271         Test_Class_1.var_29 = "smtolghw";
   272     }
   278     protected final static String func_0(final long[][] arg_0, byte arg_1, char arg_2)
   279     {
   280         arg_1 <<= (((new Test_Class_2[arg_1])[arg_1]).var_34 > new Test_Class_0().var_2 | true ? new Test_Class_0() : (new Test_Class_0[arg_1][arg_1])[new Test_Class_1().var_25][new Test_Class_1().var_25]).var_2;
   281         Test_Class_1.var_26 >>>= (!true | !true | (new boolean[arg_1])[arg_1] || true ? (new Test_Class_1[arg_1])[arg_1] : new Test_Class_1()).var_27;
   282         float var_37 = 0F;
   283         arg_2 >>= ((new Test_Class_1[arg_1][arg_1])[arg_1][arg_1]).var_25;
   284         do
   285         {
   286             ((new Test_Class_2[arg_1 /= 2055714081])[arg_1]).var_34 = 'l';
   287             var_37++;
   288             Test_Class_1.var_29 = Test_Class_0.var_3;
   289         } while ((false ? false : false) && var_37 < 7);
   290         Test_Class_1.var_29 = Test_Class_0.var_3 + "";
   291         ((new Test_Class_2[new Test_Class_1().var_25][new Test_Class_1().var_25])[new Test_Class_1().var_25][arg_1 |= new Test_Class_0().var_2]).var_34 += Test_Class_0.var_1;
   292         return "esb";
   293     }
   295     public String toString()
   296     {
   297         String result =  "[\n";
   298         result += "Test_Class_2.var_32 = "; result += Test.Printer.print(var_32);
   299         result += "\n";
   300         result += "Test_Class_2.var_36 = "; result += Test.Printer.print(var_36);
   301         result += "\n";
   302         result += "Test_Class_2.var_30 = "; result += Test.Printer.print(var_30);
   303         result += "\n";
   304         result += "Test_Class_2.var_34 = "; result += Test.Printer.print(var_34);
   305         result += "\n";
   306         result += "Test_Class_2.var_35 = "; result += Test.Printer.print(var_35);
   307         result += "\n";
   308         result += "Test_Class_2.var_33 = "; result += Test.Printer.print(var_33);
   309         result += "\n";
   310         result += "Test_Class_2.var_31 = "; result += Test.Printer.print(var_31);
   311         result += "";
   312         result += "\n]";
   313         return result;
   314     }
   315 }
   318 final class Test_Class_3 extends Test_Class_2 {
   319     byte var_39 = 23;
   320     static boolean var_40 = false;
   323     public Test_Class_3()
   324     {
   325         if (true)
   326         {
   327             Test_Class_1.var_21 |= new Test_Class_1().var_27;
   328         }
   329         else
   330         {
   331             final float var_46 = 7.9266674E37F;
   332             ++Test_Class_1.var_26;
   333         }
   334         {
   335             Test_Class_1.var_23++;
   336         }
   337         var_30 = ((new Test_Class_1[var_39][var_39])[var_39][var_39]).var_25;
   338         if (var_40 &= (var_40 |= (var_40 |= var_40)))
   339         {
   340             Test_Class_0.var_3.indexOf(Test_Class_1.var_29 = "xfgyblg", 'X' >>> ((Test_Class_1)(new Object[var_39])[((new Test_Class_1[var_39])[var_39]).var_25]).var_27);
   341         }
   342         else
   343         {
   344             var_40 &= var_40 && var_40;
   345         }
   346         ((Test_Class_2)(((new boolean[var_39])[var_39++] ? (var_40 &= var_40) : (var_40 &= false)) ? (new Test_Class_2[var_39][var_39])[var_39][var_39] : (new Object[var_39][var_39])[var_39][var_39])).var_33 = (var_40 ? new Test_Class_1() : new Test_Class_1()).var_25;
   347         switch (var_39)
   348         {
   349             case 24:
   351         }
   352         var_39 += (((var_40 ^= true) ? new Test_Class_0() : new Test_Class_0()).var_2 ^= var_40 & (var_40 | false) ? var_39-- : var_36);
   353         new Test_Class_0().var_2 %= (new Test_Class_0().var_2 += (var_39 ^= Test_Class_1.var_26));
   354     }
   359     private static String func_0()
   360     {
   361         --Test_Class_1.var_26;
   362         {
   363             Test_Class_1.var_29 = var_40 ? Test_Class_0.var_3 : "rahqjhqf";
   364         }
   365         if (var_40 ^= var_40)
   366         {
   367             Test_Class_1.var_26 >>= (Test_Class_2.var_32 = Test_Class_0.var_1) / new Test_Class_0().var_2;
   368         }
   369         else
   370         {
   371             ++Test_Class_1.var_21;
   372         }
   373         ++Test_Class_1.var_26;
   374         int var_41 = 0;
   375         ++Test_Class_1.var_26;
   376         do
   377         {
   378             var_40 = (var_40 = true);
   379             var_41++;
   380             Test_Class_0 var_42 = new Test_Class_0();
   381         } while (var_41 < 1);
   382         Test_Class_1.var_29 = "f";
   383         Test_Class_1 var_43;
   384         var_43 = (var_43 = new Test_Class_1());
   385         Test_Class_2.var_32 = 'V';
   386         long var_44 = 0L;
   387         Test_Class_1.var_23--;
   388         while (var_40 && (var_44 < 1 && var_40))
   389         {
   390             Test_Class_1.var_29 = "bsgewkmk";
   391             var_44++;
   392             Test_Class_1.var_29 = "ktegattny";
   393             var_40 &= var_40 ^ (var_40 |= (short)4.4487427E37F < 'n') & true;
   394         }
   395         Test_Class_1.var_23 %= (((var_40 |= true & (var_40 &= var_40)) ^ true ? new Test_Class_0() : new Test_Class_0()).var_2 -= 1.6638270827800162E308);
   396         float var_45;
   397         var_32 = (Test_Class_2.var_32 = Test_Class_0.var_1);
   398         return false ? "fluk" : "wt";
   399     }
   401     public String toString()
   402     {
   403         String result =  "[\n";
   404         result += "Test_Class_3.var_32 = "; result += Test.Printer.print(var_32);
   405         result += "\n";
   406         result += "Test_Class_3.var_36 = "; result += Test.Printer.print(var_36);
   407         result += "\n";
   408         result += "Test_Class_3.var_30 = "; result += Test.Printer.print(var_30);
   409         result += "\n";
   410         result += "Test_Class_3.var_34 = "; result += Test.Printer.print(var_34);
   411         result += "\n";
   412         result += "Test_Class_3.var_35 = "; result += Test.Printer.print(var_35);
   413         result += "\n";
   414         result += "Test_Class_3.var_33 = "; result += Test.Printer.print(var_33);
   415         result += "\n";
   416         result += "Test_Class_3.var_31 = "; result += Test.Printer.print(var_31);
   417         result += "\n";
   418         result += "Test_Class_3.var_39 = "; result += Test.Printer.print(var_39);
   419         result += "\n";
   420         result += "Test_Class_3.var_40 = "; result += Test.Printer.print(var_40);
   421         result += "";
   422         result += "\n]";
   423         return result;
   424     }
   425 }
   428 class Test_Class_4 {
   429     final float var_47 = 1.9043434E38F;
   430     final byte var_48 = 32;
   431     final float var_49 = 2.8176504E38F;
   432     final char var_50 = 'r';
   433     final String var_51 = "uwgmnjpg";
   434     static int var_52;
   435     short[] var_53;
   436     Test_Class_1 var_54;
   439     public Test_Class_4()
   440     {
   441         final float var_55 = (3.1554042E38F == var_50 ^ (Test_Class_3.var_40 |= true) ? (Test_Class_3.var_40 ^= Test_Class_3.var_40) ^ true : Test_Class_3.var_40) ? new Test_Class_0().var_2 : 2.965321E38F;
   442         new Test_Class_0().var_2 = (new Test_Class_0().var_2 >>= +new Test_Class_1().var_25);
   443         ((Test_Class_1.var_29 = (Test_Class_1.var_29 = (Test_Class_1.var_29 = "l"))) + "").equalsIgnoreCase(Test_Class_1.var_29 = "garnio");
   444         double var_56 = 0;
   445         Test_Class_1.var_29 = var_51;
   446         while (var_56 < 1)
   447         {
   448             ((Test_Class_3)(Test_Class_2)(new Object[var_48])[var_48]).var_33 = ++Test_Class_1.var_26;
   449             var_56++;
   450             Test_Class_1.var_29 = (Test_Class_1.var_29 = "fvyjrih");
   451             float[] var_57;
   452         }
   453         {
   454             ((new Test_Class_2[var_48])[((new Test_Class_3[var_48][var_48])[var_48][var_48]).var_39]).var_34 *= 2.2119221943262553E307;
   455             Test_Class_2.var_32 = true ? 'q' : 't';
   456             ((new Test_Class_3[--((Test_Class_3)new Test_Class_2()).var_39])[var_48]).var_33 = new Test_Class_0().var_2;
   457             int var_58 = 'i' >> (var_48 << Test_Class_0.var_1);
   458         }
   459         Test_Class_3.var_40 &= true && var_51.equalsIgnoreCase(var_51) || new Test_Class_0().var_2 < --((new Test_Class_3[var_48])[var_48]).var_39;
   460         ((Test_Class_3)(Test_Class_2)(new Object[var_48][var_48])[var_48][var_48]).var_34 += Test_Class_1.var_26--;
   461         var_54 = new Test_Class_1();
   462         Test_Class_3.var_40 |= (long)(!true ^ var_47 > ((Test_Class_2)(new Object[var_48])[var_48]).var_34 ? (Test_Class_2.var_31 = (Test_Class_3.var_31 = (Test_Class_3.var_31 = var_48))) : (var_54 = new Test_Class_1()).var_25) <= var_48;
   463         (Test_Class_3.var_40 ? (true ? new Test_Class_0() : new Test_Class_0()) : new Test_Class_0()).var_2 &= var_48;
   464         (Test_Class_3.var_40 ? (Test_Class_3)new Test_Class_2() : (new Test_Class_3[var_48][var_48])[var_48][var_48]).var_34 += Test_Class_1.var_21;
   465         Test_Class_3 var_59;
   466         Test_Class_2.var_32 = 'H';
   467         --Test_Class_1.var_26;
   468     }
   474     public String toString()
   475     {
   476         String result =  "[\n";
   477         result += "Test_Class_4.var_50 = "; result += Test.Printer.print(var_50);
   478         result += "\n";
   479         result += "Test_Class_4.var_52 = "; result += Test.Printer.print(var_52);
   480         result += "\n";
   481         result += "Test_Class_4.var_53 = "; result += Test.Printer.print(var_53);
   482         result += "\n";
   483         result += "Test_Class_4.var_47 = "; result += Test.Printer.print(var_47);
   484         result += "\n";
   485         result += "Test_Class_4.var_49 = "; result += Test.Printer.print(var_49);
   486         result += "\n";
   487         result += "Test_Class_4.var_48 = "; result += Test.Printer.print(var_48);
   488         result += "\n";
   489         result += "Test_Class_4.var_51 = "; result += Test.Printer.print(var_51);
   490         result += "\n";
   491         result += "Test_Class_4.var_54 = "; result += Test.Printer.print(var_54);
   492         result += "";
   493         result += "\n]";
   494         return result;
   495     }
   496 }
   499 class Test_Class_5 extends Test_Class_4 {
   500     char var_60 = '_';
   501     final byte var_61 = 101;
   504     public Test_Class_5()
   505     {
   506         Test_Class_0.var_3.indexOf(Test_Class_1.var_21, (Test_Class_3.var_40 |= Test_Class_3.var_40) ? new Test_Class_1().var_24 : 'i');
   507     }
   512     final char func_0(Test_Class_1 arg_0, final Test_Class_1 arg_1)
   513     {
   514         long var_62 = 0L;
   515         "aoal".toLowerCase();
   516         for (byte var_63 = arg_0.var_25; var_62 < 1 && "ji".startsWith("dikrs".endsWith("va") ? (Test_Class_1.var_29 = "mvp") : Test_Class_0.var_3, Test_Class_1.var_23); ((Test_Class_2)(new Object[arg_0.var_25])[var_63]).var_34 -= new Test_Class_2().var_36)
   517         {
   518             ((Test_Class_3.var_40 ? false : Test_Class_3.var_40) ? (Test_Class_0)(new Object[arg_1.var_25][arg_1.var_25])[arg_1.var_25][var_63] : (Test_Class_0)(new Object[var_48][var_48])[var_63][var_63]).var_2 += true ^ Test_Class_3.var_40 ^ (((new Test_Class_3[var_63][var_63])[var_63][var_61]).var_35 != 2.1423512E38F | ! !false) ? var_49 + ~var_48 : 3.1549515E38F;
   519             var_62++;
   520             (!false & ((Test_Class_3.var_40 |= (Test_Class_3.var_40 ^= true)) & true) ? (Test_Class_2)(new Object[var_63])[var_63] : (new Test_Class_2[var_63][var_61])[var_63][arg_0.var_25]).var_33 = (var_60 *= (var_60 *= ((new Test_Class_3[var_48][var_61])[var_61][var_63]).var_35));
   521             float var_64;
   522         }
   523         Test_Class_1.var_29 = "xyenjknu";
   524         Test_Class_3.var_40 ^= (Test_Class_3.var_40 = !false & true) ? Test_Class_3.var_40 : Test_Class_3.var_40;
   525         ((new Test_Class_2[var_48][arg_1.var_25])[arg_0.var_25][var_48]).var_33 = var_61;
   526         Test_Class_1.var_21 |= --(((new Test_Class_3[Test_Class_3.var_31 = arg_0.var_25][var_61])[var_61])[(((new Test_Class_3[var_48][var_61])[var_48])[((Test_Class_3)(new Test_Class_2[var_48][arg_0.var_25])[var_61][var_48]).var_39]).var_39 >>>= var_60]).var_39;
   527         var_51.compareToIgnoreCase("hgcaybk");
   528         Test_Class_0 var_65 = (Test_Class_1.var_29 = "t").codePointBefore(1602805584) >= (float)((new Test_Class_3[var_48][var_61])[var_48][Test_Class_2.var_31 = arg_1.var_25]).var_39 - 7.256386549028811E307 ? new Test_Class_0() : ((new Test_Class_0[arg_0.var_25][var_48][var_48])[arg_0.var_25])[arg_0.var_25][Test_Class_2.var_31 = arg_1.var_25];
   529         return 'U';
   530     }
   532     protected static Test_Class_1 func_1(final short arg_0, long arg_1)
   533     {
   534         --new Test_Class_0().var_2;
   535         "xb".length();
   536         if ((Test_Class_3.var_40 ^= (Test_Class_2.var_32 = Test_Class_0.var_1) == 1.2609472E38F) ? (Test_Class_3.var_40 = (Test_Class_3.var_40 = Test_Class_3.var_40)) : true)
   537         {
   538             --Test_Class_1.var_26;
   539         }
   540         else
   541         {
   542             "ybbe".substring(209378562, var_52 = (Test_Class_1.var_21 |= (Test_Class_2.var_31 = (byte)'a')));
   543         }
   544         Test_Class_3.var_40 &= (Test_Class_3.var_40 &= true) && (Test_Class_1.var_29 = (Test_Class_1.var_29 = Test_Class_0.var_3)).endsWith(Test_Class_0.var_3);
   545         (false ? new Test_Class_0() : new Test_Class_0()).var_2 >>= new Test_Class_1().var_25;
   546         return 9.430116214455637E307 <= (true ? (Test_Class_3)new Test_Class_2() : (Test_Class_3)new Test_Class_2()).var_34 ? new Test_Class_1() : new Test_Class_1();
   547     }
   549     public String toString()
   550     {
   551         String result =  "[\n";
   552         result += "Test_Class_5.var_50 = "; result += Test.Printer.print(var_50);
   553         result += "\n";
   554         result += "Test_Class_5.var_60 = "; result += Test.Printer.print(var_60);
   555         result += "\n";
   556         result += "Test_Class_5.var_52 = "; result += Test.Printer.print(var_52);
   557         result += "\n";
   558         result += "Test_Class_5.var_53 = "; result += Test.Printer.print(var_53);
   559         result += "\n";
   560         result += "Test_Class_5.var_47 = "; result += Test.Printer.print(var_47);
   561         result += "\n";
   562         result += "Test_Class_5.var_49 = "; result += Test.Printer.print(var_49);
   563         result += "\n";
   564         result += "Test_Class_5.var_48 = "; result += Test.Printer.print(var_48);
   565         result += "\n";
   566         result += "Test_Class_5.var_61 = "; result += Test.Printer.print(var_61);
   567         result += "\n";
   568         result += "Test_Class_5.var_51 = "; result += Test.Printer.print(var_51);
   569         result += "\n";
   570         result += "Test_Class_5.var_54 = "; result += Test.Printer.print(var_54);
   571         result += "";
   572         result += "\n]";
   573         return result;
   574     }
   575 }
   577 public class Test {
   578     Test_Class_4 var_66;
   579     Test_Class_3 var_67;
   580     Test_Class_5 var_68;
   581     Test_Class_2[] var_69;
   582     long var_70 = ++Test_Class_1.var_26 & Test_Class_1.var_21++;
   583     final static double var_71 = 3.566207721984698E307;
   584     static boolean var_72;
   585     final static String var_73 = "nmxx";
   588     private final char func_0(Test_Class_3 arg_0, final boolean[] arg_1)
   589     {
   590         ((Test_Class_5)(arg_1[arg_0.var_39++] ? new Test_Class_2[(var_67 = arg_0).var_39] : (new Object[arg_0.var_39])[arg_0.var_39])).var_54 = new Test_Class_1();
   591         new Test_Class_0();
   592         (((new Test[arg_0.var_39][arg_0.var_39][arg_0.var_39])[++arg_0.var_39])[arg_0.var_39][arg_0.var_39]).var_66 = (var_68 = (new Test_Class_5[arg_0.var_39][arg_0.var_39])[arg_0.var_39][arg_0.var_39]);
   593         ((new Test[arg_0.var_39])[(arg_0 = (var_67 = (arg_0 = arg_0))).var_39]).var_70 = ((new long[arg_0.var_39][arg_0.var_39])[arg_0.var_39])[arg_0.var_39 = ((var_67 = (arg_0 = arg_0)).var_39 -= new Test_Class_0().var_2)] << ']';
   594         arg_0 = (new Test_Class_0().var_2 *= ((new Test_Class_2[arg_0.var_39])[arg_0.var_39]).var_34) >= arg_0.var_39 ? (var_67 = arg_0) : (arg_0 = arg_0);
   595         Test_Class_1.var_26--;
   596         Test_Class_4 var_74 = var_66 = (Test_Class_5)(new Test_Class_4[arg_0.var_39])[arg_0.var_39];
   597         Test_Class_3.var_40 ^= ! (Test_Class_3.var_40 &= (Test_Class_3.var_40 ^= Test_Class_3.var_40) | (Test_Class_3.var_40 &= Test_Class_3.var_40));
   598         var_72 = (arg_1[(var_67 = arg_0).var_39] | !Test_Class_3.var_40 & !Test_Class_3.var_40 ? (Test_Class_1.var_29 = var_73).endsWith((var_66 = var_74).var_51) && (Test_Class_3.var_40 ^= Test_Class_3.var_40) : (Test_Class_3.var_40 ^= Test_Class_3.var_40)) ^ !Test_Class_3.var_40;
   599         Test_Class_3.var_40 &= (Test_Class_3.var_40 &= (Test_Class_3.var_40 = Test_Class_3.var_40) & Test_Class_3.var_40 ^ Test_Class_3.var_40);
   600         arg_0.var_39 -= --var_70;
   601         int var_75;
   602         double var_76;
   603         {
   604             boolean var_77;
   605             var_70 ^= new Test_Class_0().var_2++;
   606         }
   607         Test_Class_1.var_26 /= Test_Class_0.var_3.lastIndexOf(~new Test_Class_1().var_25, Test_Class_1.var_21);
   608         Test_Class_1.var_26 |= Test_Class_1.var_21;
   609         (((new Test_Class_3[arg_0.var_39][arg_0.var_39][var_74.var_48])[arg_0.var_39])[arg_0.var_39][arg_0.var_39]).var_34 %= (var_67 = arg_0).var_39;
   610         Test_Class_1.var_21 &= arg_0.var_39;
   611         var_68 = (var_68 = (Test_Class_5)var_74);
   612         var_72 = false;
   613         return new Test_Class_5().var_60 ^= 'v';
   614     }
   616     public static Test_Class_2 func_1(byte[][] arg_0, final int arg_1, Test_Class_1 arg_2, final Test_Class_1 arg_3)
   617     {
   618         ((new Test[arg_3.var_25])[((Test_Class_3)new Test_Class_2()).var_39 *= --Test_Class_1.var_26]).var_67 = (((new Test[arg_2.var_25])[(((new Test[arg_2.var_25][arg_2.var_25])[arg_3.var_25][arg_3.var_25]).var_67 = (new Test_Class_3[arg_2.var_25][arg_2.var_25])[arg_2.var_25][arg_3.var_25]).var_39 %= Test_Class_1.var_26]).var_67 = (((new Test[arg_3.var_25][arg_2.var_25])[arg_3.var_25][arg_2.var_25]).var_67 = (((new Test[arg_3.var_25])[arg_2.var_25]).var_67 = (Test_Class_3)new Test_Class_2())));
   619         {
   620             --Test_Class_1.var_26;
   621         }
   622         if (!Test_Class_3.var_40)
   623         {
   624             "jfqj".replaceAll("ac", Test_Class_0.var_3);
   625         }
   626         else
   627         {
   628             arg_2 = (((new Test_Class_5[arg_3.var_25][arg_2.var_25])[((new Test_Class_3[arg_2.var_25])[arg_3.var_25]).var_39][((Test_Class_3)(new Test_Class_2[arg_2.var_25])[arg_3.var_25]).var_39]).var_54 = arg_3);
   629             new Test_Class_1();
   630         }
   631         if (true)
   632         {
   633             Test_Class_0.func_0();
   634         }
   635         else
   636         {
   637             Test_Class_1.var_23 /= Test_Class_1.var_26;
   638         }
   639         Test_Class_1.var_26--;
   640         Test_Class_1.var_23 ^= Test_Class_0.var_1;
   641         return new Test_Class_2();
   642     }
   644     public static String execute()
   645     {
   646         try {
   647             Test t = new Test();
   648             try { t.test(); }
   649             catch(Throwable e) { }
   650             try { return t.toString(); }
   651             catch (Throwable e) { return "Error during result conversion to String"; }
   652         } catch (Throwable e) { return "Error during test execution"; }
   653     }
   655     public static void main(String[] args)
   656     {
   657         try {
   658             Test t = new Test();
   659             try { t.test(); }
   660             catch(Throwable e) { }
   661             try { System.out.println(t); }
   662             catch(Throwable e) { }
   663         } catch (Throwable e) { }
   664     }
   666     private void test()
   667     {
   668         double var_78 = 0;
   669         --Test_Class_1.var_26;
   670         long var_79;
   671         for (var_70 /= 8.089457748637276E307; var_78 < 162 && !true & (true ? Test_Class_3.var_40 : (Test_Class_3.var_40 ^= Test_Class_3.var_40)); Test_Class_1.var_26 -= 1.2513521E38F)
   672         {
   673             short var_80 = 10682;
   674             Test_Class_1.var_21--;
   675             var_78++;
   676             var_72 = (Test_Class_3.var_40 |= (Test_Class_3.var_40 ^= false));
   677             ++Test_Class_1.var_26;
   678         }
   679         Test_Class_2 var_81;
   680         new Test_Class_4();
   681         int var_82 = 0;
   682         ++Test_Class_1.var_23;
   683         do
   684         {
   685             --Test_Class_1.var_26;
   686             var_82++;
   687             ++Test_Class_1.var_21;
   688         } while ((Test_Class_3.var_40 ^= false & false) && var_82 < 256);
   689         Test_Class_1.var_23 |= (var_68 = (var_68 = (Test_Class_5)(var_66 = new Test_Class_4()))).var_48 + (Test_Class_1.var_26 >>> new Test_Class_0().var_2);
   690         (true ? new Test_Class_5() : (var_68 = (var_68 = new Test_Class_5()))).var_60 *= Test_Class_0.var_1;
   691     }
   692     public String toString()
   693     {
   694         String result =  "[\n";
   695         result += "Test.var_69 = "; result += Printer.print(var_69);
   696         result += "\n";
   697         result += "Test.var_70 = "; result += Printer.print(var_70);
   698         result += "\n";
   699         result += "Test.var_71 = "; result += Printer.print(var_71);
   700         result += "\n";
   701         result += "Test.var_73 = "; result += Printer.print(var_73);
   702         result += "\n";
   703         result += "Test.var_68 = "; result += Printer.print(var_68);
   704         result += "\n";
   705         result += "Test.var_66 = "; result += Printer.print(var_66);
   706         result += "\n";
   707         result += "Test.var_72 = "; result += Printer.print(var_72);
   708         result += "\n";
   709         result += "Test.var_67 = "; result += Printer.print(var_67);
   710         result += "";
   711         result += "\n]";
   712         return result;
   713     }
   714     static class Printer
   715     {
   716         public static String print(boolean arg) { return String.valueOf(arg); }
   717         public static String print(byte arg)    { return String.valueOf(arg); }
   718         public static String print(short arg)   { return String.valueOf(arg); }
   719         public static String print(char arg)    { return String.valueOf((int)arg); }
   720         public static String print(int arg)     { return String.valueOf(arg); }
   721         public static String print(long arg)    { return String.valueOf(arg); }
   722         public static String print(float arg)   { return String.valueOf(arg); }
   723         public static String print(double arg)  { return String.valueOf(arg); }
   726         public static String print(Object arg)
   727         {
   728             return print_r(new java.util.Stack(), arg);
   729         }
   731         private static String print_r(java.util.Stack visitedObjects, Object arg)
   732         {
   733             String result = "";
   734             if (arg == null)
   735                 result += "null";
   736             else
   737             if (arg.getClass().isArray())
   738             {
   739                 for (int i = 0; i < visitedObjects.size(); i++)
   740                     if (visitedObjects.elementAt(i) == arg) return "<recursive>";
   742                 visitedObjects.push(arg);
   744                 final String delimiter = ", ";
   745                 result += "[";
   747                 if (arg instanceof Object[])
   748                 {
   749                     Object[] array = (Object[]) arg;
   750                     for (int i = 0; i < array.length; i++)
   751                     {
   752                         result += print_r(visitedObjects, array[i]);
   753                         if (i < array.length - 1) result += delimiter;
   754                     }
   755                 }
   756                 else
   757                 if (arg instanceof boolean[])
   758                 {
   759                     boolean[] array = (boolean[]) arg;
   760                     for (int i = 0; i < array.length; i++)
   761                     {
   762                         result += print(array[i]);
   763                         if (i < array.length - 1) result += delimiter;
   764                     }
   765                 }
   766                 else
   767                 if (arg instanceof byte[])
   768                 {
   769                     byte[] array = (byte[]) arg;
   770                     for (int i = 0; i < array.length; i++)
   771                     {
   772                         result += print(array[i]);
   773                         if (i < array.length - 1) result += delimiter;
   774                     }
   775                 }
   776                 else
   777                 if (arg instanceof short[])
   778                 {
   779                     short[] array = (short[]) arg;
   780                     for (int i = 0; i < array.length; i++)
   781                     {
   782                         result += print(array[i]);
   783                         if (i < array.length - 1) result += delimiter;
   784                     }
   785                 }
   786                 else
   787                 if (arg instanceof char[])
   788                 {
   789                     char[] array = (char[]) arg;
   790                     for (int i = 0; i < array.length; i++)
   791                     {
   792                         result += print(array[i]);
   793                         if (i < array.length - 1) result += delimiter;
   794                     }
   795                 }
   796                 else
   797                 if (arg instanceof int[])
   798                 {
   799                      int[] array = (int[]) arg;
   800                      for (int i = 0; i < array.length; i++)
   801                      {
   802                         result += print(array[i]);
   803                         if (i < array.length - 1) result += delimiter;
   804                      }
   805                 }
   806                 else
   807                 if (arg instanceof long[])
   808                 {
   809                     long[] array = (long[]) arg;
   810                     for (int i = 0; i < array.length; i++)
   811                     {
   812                         result += print(array[i]);
   813                         if (i < array.length - 1) result += delimiter;
   814                     }
   815                 }
   816                 else
   817                 if (arg instanceof float[])
   818                 {
   819                     float[] array = (float[]) arg;
   820                     for (int i = 0; i < array.length; i++)
   821                     {
   822                         result += print(array[i]);
   823                         if (i < array.length - 1) result += delimiter;
   824                     }
   825                 }
   826                 else
   827                 if (arg instanceof double[])
   828                 {
   829                     double[] array = (double[]) arg;
   830                     for (int i = 0; i < array.length; i++)
   831                     {
   832                         result += print(array[i]);
   833                         if (i < array.length - 1) result += delimiter;
   834                     }
   835                 }
   837                 result += "]";
   838                 visitedObjects.pop();
   840             } else
   841             {
   842                 result += arg.toString();
   843             }
   845             return result;
   846         }
   847     }
   848 }

mercurial