diff options
Diffstat (limited to 'test/624-checker-stringops/src/Main.java')
-rw-r--r-- | test/624-checker-stringops/src/Main.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/624-checker-stringops/src/Main.java b/test/624-checker-stringops/src/Main.java index d965e3ffce..75b782e8c0 100644 --- a/test/624-checker-stringops/src/Main.java +++ b/test/624-checker-stringops/src/Main.java @@ -258,6 +258,20 @@ public class Main { return b.length(); } + // Regression b/33656359: StringBuffer x is passed to constructor of String + // (this caused old code to crash due to missing nullptr check). + // + /// CHECK-START: void Main.doesNothing() instruction_simplifier (before) + /// CHECK-DAG: InvokeVirtual intrinsic:StringBufferToString + // + /// CHECK-START: void Main.doesNothing() instruction_simplifier (after) + /// CHECK-DAG: InvokeVirtual intrinsic:StringBufferToString + static void doesNothing() { + StringBuffer x = new StringBuffer(); + String y = new String(x); + x.toString(); + } + public static void main(String[] args) { expectEquals(1865, liveIndexOf()); expectEquals(29, deadIndexOf()); @@ -281,6 +295,8 @@ public class Main { expectEquals(0, bufferDeadLoop()); expectEquals(0, builderDeadLoop()); + doesNothing(); + System.out.println("passed"); } |