| // Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| package com.android.tools.r8.jasmin; |
| |
| import com.android.tools.r8.jasmin.JasminBuilder.ClassFileVersion; |
| import org.junit.Test; |
| |
| public class Regress72758525 extends JasminTestBase { |
| |
| private JasminBuilder buildClass() { |
| JasminBuilder builder = new JasminBuilder(ClassFileVersion.JDK_1_4); |
| JasminBuilder.ClassBuilder clazz = builder.addClass("Test"); |
| |
| clazz.addDefaultConstructor(); |
| |
| clazz.addMainMethod( |
| ".limit stack 25", |
| ".limit locals 1", |
| "aload 0", |
| "dup", |
| "lconst_0", |
| "dconst_1", |
| "fconst_0", |
| "lconst_1", |
| "iconst_5", |
| "fconst_1", |
| "dconst_1", |
| "new Test", |
| "dup", |
| "invokespecial Test/<init>()V", |
| "lconst_0", |
| "new java/lang/Object", |
| "dup", |
| "invokespecial java/lang/Object/<init>()V", |
| "iconst_m1", |
| "dup2", |
| "dup2_x2", |
| "L0:", |
| "ineg", |
| "new java/lang/Object", |
| "dup", |
| "invokespecial java/lang/Object/<init>()V", |
| "dup2_x2", |
| "pop2", |
| "pop", |
| "aload 0", |
| "ifnull L0", |
| "i2f", |
| "invokestatic java/lang/Float/isNaN(F)Z", |
| "return"); |
| return builder; |
| } |
| |
| @Test |
| public void test() throws Exception { |
| JasminBuilder builder = buildClass(); |
| runOnArtD8(builder, "Test"); |
| } |
| } |