@@ -905,26 +905,26 @@ define i1 @parent8(ptr %a, ptr %bogus1, ptr %b) personality ptr @esfp{
905
905
; FNATTRS-SAME: ptr nonnull [[A:%.*]], ptr nocapture readnone [[BOGUS1:%.*]], ptr nonnull [[B:%.*]]) #[[ATTR7]] personality ptr @esfp {
906
906
; FNATTRS-NEXT: entry:
907
907
; FNATTRS-NEXT: invoke void @use2nonnull(ptr [[A]], ptr [[B]])
908
- ; FNATTRS-NEXT: to label [[CONT:%.*]] unwind label [[EXC:%.*]]
908
+ ; FNATTRS-NEXT: to label [[CONT:%.*]] unwind label [[EXC:%.*]]
909
909
; FNATTRS: cont:
910
910
; FNATTRS-NEXT: [[NULL_CHECK:%.*]] = icmp eq ptr [[B]], null
911
911
; FNATTRS-NEXT: ret i1 [[NULL_CHECK]]
912
912
; FNATTRS: exc:
913
913
; FNATTRS-NEXT: [[LP:%.*]] = landingpad { ptr, i32 }
914
- ; FNATTRS-NEXT: filter [0 x ptr] zeroinitializer
914
+ ; FNATTRS-NEXT: filter [0 x ptr] zeroinitializer
915
915
; FNATTRS-NEXT: unreachable
916
916
;
917
917
; ATTRIBUTOR-LABEL: define i1 @parent8(
918
918
; ATTRIBUTOR-SAME: ptr nonnull [[A:%.*]], ptr nocapture nofree readnone [[BOGUS1:%.*]], ptr nonnull [[B:%.*]]) #[[ATTR8]] personality ptr @esfp {
919
919
; ATTRIBUTOR-NEXT: entry:
920
920
; ATTRIBUTOR-NEXT: invoke void @use2nonnull(ptr nonnull [[A]], ptr nonnull [[B]])
921
- ; ATTRIBUTOR-NEXT: to label [[CONT:%.*]] unwind label [[EXC:%.*]]
921
+ ; ATTRIBUTOR-NEXT: to label [[CONT:%.*]] unwind label [[EXC:%.*]]
922
922
; ATTRIBUTOR: cont:
923
923
; ATTRIBUTOR-NEXT: [[NULL_CHECK:%.*]] = icmp eq ptr [[B]], null
924
924
; ATTRIBUTOR-NEXT: ret i1 [[NULL_CHECK]]
925
925
; ATTRIBUTOR: exc:
926
926
; ATTRIBUTOR-NEXT: [[LP:%.*]] = landingpad { ptr, i32 }
927
- ; ATTRIBUTOR-NEXT: filter [0 x ptr] zeroinitializer
927
+ ; ATTRIBUTOR-NEXT: filter [0 x ptr] zeroinitializer
928
928
; ATTRIBUTOR-NEXT: unreachable
929
929
;
930
930
@@ -1415,5 +1415,20 @@ define void @PR43833_simple(ptr %0, i32 %1) {
1415
1415
br i1 %11 , label %7 , label %8
1416
1416
}
1417
1417
1418
+ define ptr @pr91177_non_inbounds_gep (ptr nonnull %arg ) {
1419
+ ; FNATTRS-LABEL: define ptr @pr91177_non_inbounds_gep(
1420
+ ; FNATTRS-SAME: ptr nonnull readnone [[ARG:%.*]]) #[[ATTR0]] {
1421
+ ; FNATTRS-NEXT: [[RES:%.*]] = getelementptr i8, ptr [[ARG]], i64 -8
1422
+ ; FNATTRS-NEXT: ret ptr [[RES]]
1423
+ ;
1424
+ ; ATTRIBUTOR-LABEL: define ptr @pr91177_non_inbounds_gep(
1425
+ ; ATTRIBUTOR-SAME: ptr nofree nonnull readnone [[ARG:%.*]]) #[[ATTR0]] {
1426
+ ; ATTRIBUTOR-NEXT: [[RES:%.*]] = getelementptr i8, ptr [[ARG]], i64 -8
1427
+ ; ATTRIBUTOR-NEXT: ret ptr [[RES]]
1428
+ ;
1429
+ %res = getelementptr i8 , ptr %arg , i64 -8
1430
+ ret ptr %res
1431
+ }
1432
+
1418
1433
attributes #0 = { null_pointer_is_valid }
1419
1434
attributes #1 = { nounwind willreturn}
0 commit comments