//java -XX:-UseOnStackReplacement -XX:+PrintCompilation -XX:CompileCommand=compileOnly,SelfLink.foo -XX:CompileCommand=quiet -XX:-TieredCompilation -XX:+PrintEscapeAnalysis -XX:+PrintEliminateAllocations -XX:CompileCommand=TraceEscapeAnalysis,SelfLink.foo -Xbatch SelfLink
class SelfLink {
    static class Node {
        Node next;
    }
    public static void foo() {
        Node a = new Node();
        a.next = a;
    }

    static Node head = new Node();
    public static void foo2() {
        Node a = new Node();
        a.next = head;
    }

    public static void main(String[] args) {
        for (int i = 0; i< 30000; ++i) {
            foo();
            foo2();
        }
    }
}
