1*52c8f0bbSPedro Falcato // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py 2*52c8f0bbSPedro Falcato // RUN: %clang_cc1 -fcheck-new -triple x86_64-linux-gnu -disable-O0-optnone \ 3*52c8f0bbSPedro Falcato // RUN: -emit-llvm -o - %s | FileCheck %s 4*52c8f0bbSPedro Falcato 5*52c8f0bbSPedro Falcato struct A { A(); }; 6*52c8f0bbSPedro Falcato 7*52c8f0bbSPedro Falcato // CHECK-LABEL: @_Z5test0v( 8*52c8f0bbSPedro Falcato // CHECK-NEXT: entry: 9*52c8f0bbSPedro Falcato // CHECK-NEXT: [[CALL:%.*]] = call noalias noundef ptr @_Znwm(i64 noundef 1) #[[ATTR3:[0-9]+]] 10*52c8f0bbSPedro Falcato // CHECK-NEXT: [[NEW_ISNULL:%.*]] = icmp eq ptr [[CALL]], null 11*52c8f0bbSPedro Falcato // CHECK-NEXT: br i1 [[NEW_ISNULL]], label [[NEW_CONT:%.*]], label [[NEW_NOTNULL:%.*]] 12*52c8f0bbSPedro Falcato // CHECK: new.notnull: 13*52c8f0bbSPedro Falcato // CHECK-NEXT: call void @_ZN1AC1Ev(ptr noundef nonnull align 1 dereferenceable(1) [[CALL]]) 14*52c8f0bbSPedro Falcato // CHECK-NEXT: br label [[NEW_CONT]] 15*52c8f0bbSPedro Falcato // CHECK: new.cont: 16*52c8f0bbSPedro Falcato // CHECK-NEXT: [[TMP0:%.*]] = phi ptr [ [[CALL]], [[NEW_NOTNULL]] ], [ null, [[ENTRY:%.*]] ] 17*52c8f0bbSPedro Falcato // CHECK-NEXT: ret ptr [[TMP0]] 18*52c8f0bbSPedro Falcato // test0()19*52c8f0bbSPedro FalcatoA *test0() { 20*52c8f0bbSPedro Falcato return new A(); 21*52c8f0bbSPedro Falcato } 22*52c8f0bbSPedro Falcato 23*52c8f0bbSPedro Falcato // CHECK-LABEL: @_Z5test1v( 24*52c8f0bbSPedro Falcato // CHECK-NEXT: entry: 25*52c8f0bbSPedro Falcato // CHECK-NEXT: [[CALL:%.*]] = call noalias noundef ptr @_Znwm(i64 noundef 4) #[[ATTR3]] 26*52c8f0bbSPedro Falcato // CHECK-NEXT: ret ptr [[CALL]] 27*52c8f0bbSPedro Falcato // test1()28*52c8f0bbSPedro Falcatoint *test1() { 29*52c8f0bbSPedro Falcato return new int; 30*52c8f0bbSPedro Falcato } 31