blob: 908220ed38595de8b83a04c302eda868a385cbe8 [file] [log] [blame]
# Copyright (c) 2016, 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.
.class public LTest;
.super Ljava/lang/Object;
# Empty sparse switch
.method public static test1(I)I
.registers 1
sparse-switch v0, :sparse_switch_data
const/4 v0, 0x1
return v0
:sparse_switch_data
.sparse-switch
.end sparse-switch
.end method
# Empty sparse switch after data
.method public static test2(I)I
.registers 1
goto :sparse_switch
:sparse_switch_data
.sparse-switch
.end sparse-switch
:sparse_switch
sparse-switch v0, :sparse_switch_data
const/4 v0, 0x2
return v0
.end method
# Sparse switch after data
.method public static test3(I)I
.registers 1
goto :sparse_switch
:case_2
const/4 v0, 0x3
goto :return
:sparse_switch_data
.sparse-switch
0x2 -> :case_2
0x4 -> :case_4
.end sparse-switch
:sparse_switch
sparse-switch v0, :sparse_switch_data
const/4 v0, 0x5
goto :return
:case_4
const/4 v0, 0x4
:return
return v0
.end method
.method public static main([Ljava/lang/String;)V
.locals 2
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const/4 v1, 0x0
invoke-static {v1}, LTest;->test1(I)I
move-result v1
invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V
const/4 v1, 0x0
invoke-static {v1}, LTest;->test2(I)I
move-result v1
invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V
const/4 v1, 0x2
invoke-static {v1}, LTest;->test3(I)I
move-result v1
invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V
const/4 v1, 0x4
invoke-static {v1}, LTest;->test3(I)I
move-result v1
invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V
const/4 v1, 0x6
invoke-static {v1}, LTest;->test3(I)I
move-result v1
invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V
return-void
.end method