@@ -905,26 +905,26 @@ define i1 @parent8(ptr %a, ptr %bogus1, ptr %b) personality ptr @esfp{
905905; FNATTRS-SAME: ptr nonnull [[A:%.*]], ptr nocapture readnone [[BOGUS1:%.*]], ptr nonnull [[B:%.*]]) #[[ATTR7]] personality ptr @esfp {
906906; FNATTRS-NEXT: entry:
907907; 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:%.*]]
909909; FNATTRS: cont:
910910; FNATTRS-NEXT: [[NULL_CHECK:%.*]] = icmp eq ptr [[B]], null
911911; FNATTRS-NEXT: ret i1 [[NULL_CHECK]]
912912; FNATTRS: exc:
913913; FNATTRS-NEXT: [[LP:%.*]] = landingpad { ptr, i32 }
914- ; FNATTRS-NEXT: filter [0 x ptr] zeroinitializer
914+ ; FNATTRS-NEXT: filter [0 x ptr] zeroinitializer
915915; FNATTRS-NEXT: unreachable
916916;
917917; ATTRIBUTOR-LABEL: define i1 @parent8(
918918; ATTRIBUTOR-SAME: ptr nonnull [[A:%.*]], ptr nocapture nofree readnone [[BOGUS1:%.*]], ptr nonnull [[B:%.*]]) #[[ATTR8]] personality ptr @esfp {
919919; ATTRIBUTOR-NEXT: entry:
920920; 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:%.*]]
922922; ATTRIBUTOR: cont:
923923; ATTRIBUTOR-NEXT: [[NULL_CHECK:%.*]] = icmp eq ptr [[B]], null
924924; ATTRIBUTOR-NEXT: ret i1 [[NULL_CHECK]]
925925; ATTRIBUTOR: exc:
926926; ATTRIBUTOR-NEXT: [[LP:%.*]] = landingpad { ptr, i32 }
927- ; ATTRIBUTOR-NEXT: filter [0 x ptr] zeroinitializer
927+ ; ATTRIBUTOR-NEXT: filter [0 x ptr] zeroinitializer
928928; ATTRIBUTOR-NEXT: unreachable
929929;
930930
@@ -1415,5 +1415,20 @@ define void @PR43833_simple(ptr %0, i32 %1) {
14151415 br i1 %11 , label %7 , label %8
14161416}
14171417
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+
14181433attributes #0 = { null_pointer_is_valid }
14191434attributes #1 = { nounwind willreturn}
0 commit comments