1- // REQUIRES: system-darwin
21// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5
2+ // REQUIRES: system-darwin
33// RUN: %clang_cc1 -O0 -triple arm64-apple-iphoneos -fbounds-safety -fbounds-safety-bringup-missing-checks=return_size -emit-llvm %s -o - | FileCheck %s
44
55#include <ptrcheck.h>
7070// CHECK-NEXT: br label %[[LAND_END30]], !annotation [[META2]]
7171// CHECK: [[LAND_END30]]:
7272// CHECK-NEXT: [[TMP2:%.*]] = phi i1 [ false, %[[LAND_LHS_TRUE]] ], [ false, %[[ENTRY]] ], [ [[TMP1]], %[[LAND_END]] ], !annotation [[META2]]
73- // CHECK-NEXT: br i1 [[TMP2]], label %[[CONT:.*]], label %[[TRAP:.*]], !annotation [[META2]]
73+ // CHECK-NEXT: br i1 [[TMP2]], label %[[CONT:.*]], label %[[TRAP:.*]], !prof [[PROF3:![0-9]+]], ! annotation [[META2]]
7474// CHECK: [[TRAP]]:
7575// CHECK-NEXT: call void @llvm.ubsantrap(i8 25) #[[ATTR3:[0-9]+]], !annotation [[META2]]
7676// CHECK-NEXT: unreachable, !annotation [[META2]]
@@ -88,6 +88,9 @@ int *__counted_by(count) cb_in_from_bidi(int count, int *__bidi_indexable p) {
8888 return p ;
8989}
9090
91+ //
92+
93+ int * __counted_by (* count ) cb_in_from_bidi_redecl (int * count , int * __bidi_indexable p );
9194// CHECK-LABEL: define dso_local ptr @cb_in_from_bidi_redecl(
9295// CHECK-SAME: ptr noundef [[COUNT:%.*]], ptr noundef [[P:%.*]]) #[[ATTR0]] {
9396// CHECK-NEXT: [[ENTRY:.*]]:
@@ -156,7 +159,7 @@ int *__counted_by(count) cb_in_from_bidi(int count, int *__bidi_indexable p) {
156159// CHECK-NEXT: br label %[[LAND_END30]], !annotation [[META2]]
157160// CHECK: [[LAND_END30]]:
158161// CHECK-NEXT: [[TMP4:%.*]] = phi i1 [ false, %[[LAND_LHS_TRUE]] ], [ false, %[[ENTRY]] ], [ [[TMP3]], %[[LAND_END]] ], !annotation [[META2]]
159- // CHECK-NEXT: br i1 [[TMP4]], label %[[CONT:.*]], label %[[TRAP:.*]], !annotation [[META2]]
162+ // CHECK-NEXT: br i1 [[TMP4]], label %[[CONT:.*]], label %[[TRAP:.*]], !prof [[PROF3]], ! annotation [[META2]]
160163// CHECK: [[TRAP]]:
161164// CHECK-NEXT: call void @llvm.ubsantrap(i8 25) #[[ATTR3]], !annotation [[META2]]
162165// CHECK-NEXT: unreachable, !annotation [[META2]]
@@ -170,12 +173,13 @@ int *__counted_by(count) cb_in_from_bidi(int count, int *__bidi_indexable p) {
170173// CHECK-NEXT: [[WIDE_PTR_LB37:%.*]] = load ptr, ptr [[WIDE_PTR_LB_ADDR36]], align 8
171174// CHECK-NEXT: ret ptr [[WIDE_PTR_PTR33]]
172175//
173-
174- int * __counted_by (* count ) cb_in_from_bidi_redecl (int * count , int * __bidi_indexable p );
175176int * __counted_by (* count ) cb_in_from_bidi_redecl (int * count , int * __bidi_indexable p ) {
176177 return p ;
177178}
178179
180+ // FIXME: This had to be patched manually. `utils/update_cc_test_checks.py` seems
181+ // to generate CHECK lines here for something that's not a function body and so it
182+ // tries to match the IR for the same function twice.
179183int * __counted_by (* count ) cb_in_from_bidi_typeof (int * count , int * __bidi_indexable p );
180184__typeof__ (cb_in_from_bidi_typeof ) cb_in_from_bidi_typeof ;
181185extern __attribute__((weak_import )) __typeof__ (cb_in_from_bidi_typeof ) cb_in_from_bidi_typeof ;
@@ -248,7 +252,7 @@ extern __attribute__((weak_import)) __typeof__(cb_in_from_bidi_typeof) cb_in_fro
248252// CHECK-NEXT: br label %[[LAND_END30]], !annotation [[META2]]
249253// CHECK: [[LAND_END30]]:
250254// CHECK-NEXT: [[TMP4:%.*]] = phi i1 [ false, %[[LAND_LHS_TRUE]] ], [ false, %[[ENTRY]] ], [ [[TMP3]], %[[LAND_END]] ], !annotation [[META2]]
251- // CHECK-NEXT: br i1 [[TMP4]], label %[[CONT:.*]], label %[[TRAP:.*]], !annotation [[META2]]
255+ // CHECK-NEXT: br i1 [[TMP4]], label %[[CONT:.*]], label %[[TRAP:.*]], !prof [[PROF3]], ! annotation [[META2]]
252256// CHECK: [[TRAP]]:
253257// CHECK-NEXT: call void @llvm.ubsantrap(i8 25) #[[ATTR3]], !annotation [[META2]]
254258// CHECK-NEXT: unreachable, !annotation [[META2]]
@@ -326,7 +330,7 @@ int *__counted_by(*count) cb_in_from_bidi_typeof(int *count, int *__bidi_indexab
326330// CHECK-NEXT: br label %[[LAND_END13]], !annotation [[META2]]
327331// CHECK: [[LAND_END13]]:
328332// CHECK-NEXT: [[TMP12:%.*]] = phi i1 [ false, %[[LAND_LHS_TRUE]] ], [ false, %[[ENTRY]] ], [ [[TMP11]], %[[LAND_END]] ], !annotation [[META2]]
329- // CHECK-NEXT: br i1 [[TMP12]], label %[[CONT:.*]], label %[[TRAP:.*]], !annotation [[META2]]
333+ // CHECK-NEXT: br i1 [[TMP12]], label %[[CONT:.*]], label %[[TRAP:.*]], !prof [[PROF3]], ! annotation [[META2]]
330334// CHECK: [[TRAP]]:
331335// CHECK-NEXT: call void @llvm.ubsantrap(i8 25) #[[ATTR3]], !annotation [[META2]]
332336// CHECK-NEXT: unreachable, !annotation [[META2]]
@@ -399,7 +403,7 @@ int *__counted_by(count) cb_in_from_single(int count, int *__single p) {
399403// CHECK-NEXT: br label %[[LAND_END13]], !annotation [[META2]]
400404// CHECK: [[LAND_END13]]:
401405// CHECK-NEXT: [[TMP14:%.*]] = phi i1 [ false, %[[LAND_LHS_TRUE]] ], [ false, %[[ENTRY]] ], [ [[TMP13]], %[[LAND_END]] ], !annotation [[META2]]
402- // CHECK-NEXT: br i1 [[TMP14]], label %[[CONT:.*]], label %[[TRAP:.*]], !annotation [[META2]]
406+ // CHECK-NEXT: br i1 [[TMP14]], label %[[CONT:.*]], label %[[TRAP:.*]], !prof [[PROF3]], ! annotation [[META2]]
403407// CHECK: [[TRAP]]:
404408// CHECK-NEXT: call void @llvm.ubsantrap(i8 25) #[[ATTR3]], !annotation [[META2]]
405409// CHECK-NEXT: unreachable, !annotation [[META2]]
@@ -476,7 +480,7 @@ int *__counted_by(*count) cb_out_from_single(int *count, int *__single p) {
476480// CHECK-NEXT: br label %[[LAND_END13]], !annotation [[META2]]
477481// CHECK: [[LAND_END13]]:
478482// CHECK-NEXT: [[TMP13:%.*]] = phi i1 [ false, %[[LAND_LHS_TRUE]] ], [ false, %[[ENTRY]] ], [ [[TMP12]], %[[LOR_END]] ], !annotation [[META2]]
479- // CHECK-NEXT: br i1 [[TMP13]], label %[[CONT:.*]], label %[[TRAP:.*]], !annotation [[META2]]
483+ // CHECK-NEXT: br i1 [[TMP13]], label %[[CONT:.*]], label %[[TRAP:.*]], !prof [[PROF3]], ! annotation [[META2]]
480484// CHECK: [[TRAP]]:
481485// CHECK-NEXT: call void @llvm.ubsantrap(i8 25) #[[ATTR3]], !annotation [[META2]]
482486// CHECK-NEXT: unreachable, !annotation [[META2]]
@@ -565,7 +569,7 @@ int *__counted_by_or_null(count) cbn_in_from_single(int count, int *__single p)
565569// CHECK-NEXT: br label %[[LAND_END37]], !annotation [[META2]]
566570// CHECK: [[LAND_END37]]:
567571// CHECK-NEXT: [[TMP5:%.*]] = phi i1 [ false, %[[LAND_LHS_TRUE]] ], [ false, %[[ENTRY]] ], [ [[TMP4]], %[[LAND_END]] ], !annotation [[META2]]
568- // CHECK-NEXT: br i1 [[TMP5]], label %[[CONT:.*]], label %[[TRAP:.*]], !annotation [[META2]]
572+ // CHECK-NEXT: br i1 [[TMP5]], label %[[CONT:.*]], label %[[TRAP:.*]], !prof [[PROF3]], ! annotation [[META2]]
569573// CHECK: [[TRAP]]:
570574// CHECK-NEXT: call void @llvm.ubsantrap(i8 25) #[[ATTR3]], !annotation [[META2]]
571575// CHECK-NEXT: unreachable, !annotation [[META2]]
@@ -626,7 +630,7 @@ void *__sized_by(size) sb_in_from_bidi(int size, void *__bidi_indexable p) {
626630// CHECK-NEXT: br label %[[LAND_END]], !annotation [[META2]]
627631// CHECK: [[LAND_END]]:
628632// CHECK-NEXT: [[TMP1:%.*]] = phi i1 [ false, %[[LAND_LHS_TRUE]] ], [ false, %[[ENTRY]] ], [ [[CMP15]], %[[LAND_RHS]] ], !annotation [[META2]]
629- // CHECK-NEXT: br i1 [[TMP1]], label %[[CONT:.*]], label %[[TRAP:.*]], !annotation [[META2]]
633+ // CHECK-NEXT: br i1 [[TMP1]], label %[[CONT:.*]], label %[[TRAP:.*]], !prof [[PROF3]], ! annotation [[META2]]
630634// CHECK: [[TRAP]]:
631635// CHECK-NEXT: call void @llvm.ubsantrap(i8 25) #[[ATTR3]], !annotation [[META2]]
632636// CHECK-NEXT: unreachable, !annotation [[META2]]
@@ -646,4 +650,5 @@ void *__ended_by(end) eb_from_bidi(void *end, void *__bidi_indexable p) {
646650
647651//.
648652// CHECK: [[META2]] = !{!"bounds-safety-generic"}
653+ // CHECK: [[PROF3]] = !{!"branch_weights", i32 1048575, i32 1}
649654//.
0 commit comments