int main (void) { fn1 (128); fn2 (128); fn3 (128); fn4 (128); fn5 (128, 127); fn5 (128, 128); fn6 (128); return 0; }
// CHECK-LABEL: define {{.*}}i{{[0-9]+}} @main() int main() { // CHECK: [[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num( // CHECK: call {{.*}}void {{.+}} @__kmpc_fork_call(%{{.+}}* @{{.+}}, i{{.+}} 0, void {{.+}}* [[CAP_FN4:@.+]] to void #pragma omp parallel if (true) fn4(); // CHECK: call {{.*}}void @__kmpc_serialized_parallel(%{{.+}}* @{{.+}}, i32 [[GTID]]) // CHECK: store i32 [[GTID]], i32* [[GTID_ADDR:%.+]], // CHECK: call void [[CAP_FN5:@.+]](i32* [[GTID_ADDR]], // CHECK: call {{.*}}void @__kmpc_end_serialized_parallel(%{{.+}}* @{{.+}}, i32 [[GTID]]) #pragma omp parallel if (false) fn5(); // CHECK: br i1 %{{.+}}, label %[[OMP_THEN:.+]], label %[[OMP_ELSE:.+]] // CHECK: [[OMP_THEN]] // CHECK: call {{.*}}void {{.+}} @__kmpc_fork_call(%{{.+}}* @{{.+}}, i{{.+}} 0, void {{.+}}* [[CAP_FN6:@.+]] to void // CHECK: br label %[[OMP_END:.+]] // CHECK: [[OMP_ELSE]] // CHECK: call {{.*}}void @__kmpc_serialized_parallel(%{{.+}}* @{{.+}}, i32 [[GTID]]) // CHECK: store i32 [[GTID]], i32* [[GTID_ADDR:%.+]], // CHECK: call void [[CAP_FN6]](i32* [[GTID_ADDR]], // CHECK: call {{.*}}void @__kmpc_end_serialized_parallel(%{{.+}}* @{{.+}}, i32 [[GTID]]) // CHECK: br label %[[OMP_END]] // CHECK: [[OMP_END]] #pragma omp parallel if (Arg) fn6(); // CHECK: = call {{.*}}i{{.+}} @{{.+}}tmain return tmain(Arg); }
// CHECK-LABEL: @main int main() { // CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num( // CHECK: [[ORIG_TASK_PTR:%.+]] = call i8* @__kmpc_omp_task_alloc({{[^,]+}}, i32 [[GTID]], i32 1, i64 32, i64 1, i32 (i32, i8*)* bitcast (i32 (i32, %{{[^*]+}}*)* [[CAP_FN4:[^ ]+]] to i32 (i32, i8*)*)) // CHECK: call i32 @__kmpc_omp_task(%{{.+}}* @{{.+}}, i32 [[GTID]], i8* [[ORIG_TASK_PTR]]) #pragma omp task if (true) fn4(); // CHECK: [[ORIG_TASK_PTR:%.+]] = call i8* @__kmpc_omp_task_alloc( // CHECK: [[TASK_PTR:%.+]] = bitcast i8* [[ORIG_TASK_PTR]] to // CHECK: call void @__kmpc_omp_task_begin_if0(%{{.+}}* @{{.+}}, i{{.+}} [[GTID]], i8* [[ORIG_TASK_PTR]]) // CHECK: call i32 [[CAP_FN5:@.+]](i32 [[GTID]], %{{.+}}* [[TASK_PTR]]) // CHECK: call void @__kmpc_omp_task_complete_if0(%{{.+}}* @{{.+}}, i{{.+}} [[GTID]], i8* [[ORIG_TASK_PTR]]) #pragma omp task if (false) fn5(); // CHECK: [[ORIG_TASK_PTR:%.+]] = call i8* @__kmpc_omp_task_alloc({{[^,]+}}, i32 [[GTID]], i32 1, i64 32, i64 1, i32 (i32, i8*)* bitcast (i32 (i32, %{{[^*]+}}*)* [[CAP_FN6:[^ ]+]] to i32 (i32, i8*)*)) // CHECK: [[TASK_PTR:%.+]] = bitcast i8* [[ORIG_TASK_PTR]] to // CHECK: br i1 %{{.+}}, label %[[OMP_THEN:.+]], label %[[OMP_ELSE:.+]] // CHECK: [[OMP_THEN]] // CHECK: call i32 @__kmpc_omp_task(%{{.+}}* @{{.+}}, i32 [[GTID]], i8* [[ORIG_TASK_PTR]]) // CHECK: br label %[[OMP_END:.+]] // CHECK: [[OMP_ELSE]] // CHECK: call void @__kmpc_omp_task_begin_if0(%{{.+}}* @{{.+}}, i{{.+}} [[GTID]], i8* [[ORIG_TASK_PTR]]) // CHECK: call i32 [[CAP_FN6:@.+]](i32 [[GTID]], %{{.+}}* [[TASK_PTR]]) // CHECK: call void @__kmpc_omp_task_complete_if0(%{{.+}}* @{{.+}}, i{{.+}} [[GTID]], i8* [[ORIG_TASK_PTR]]) // CHECK: br label %[[OMP_END]] // CHECK: [[OMP_END]] #pragma omp task if (Arg) fn6(); // CHECK: = call {{.*}}i{{.+}} @{{.+}}tmain return tmain(Arg); }
static struct T fn8 (struct T x, int y) { struct S *u = fn10 (); int v = fn5 (&u->s1, &u->s2, 0); while (1) { if (p) fn6 (); if (fn3 (x)) return fn4 (); if (y & 1) return r; v = fn5 (&u->s1, &u->s2, 1); } }
int main (void) { fn1 (); fn2 (); fn3 (); fn4 (); fn5 (); return 0; }
static int * fn2 (char p1, int p2, int *p3) { fn4 (0, p3); fn1 (&p3 == h); for (; i;) fn5 (); fn4 (0, p3); return *d; }
void CStarField::fn4(CSurfaceArea *surfaceArea, CStarCamera *camera) { FVector v1, v2, v3; _val5 = 0; if (_mode == MODE_STARFIELD) { if (fn5(surfaceArea, camera, v1, v2, v3) > -1.0) { surfaceArea->_pixel = 0xA0A0; surfaceArea->setColorFromPixel(); surfaceArea->fillRect(FRect(v1._x, v1._y, v3._x, v3._y)); } } }
void foo () { int i; for (i = 1; i <= 50; i++) { fn6 (i + 0x1234, i + 1, i + 0xa, i + 0x1234, q, b); fn5 (i + 0xabcd, i << 1, i + 0x1234, i << 2); fn7 (i + 0xdead); fn8 (i + 0xdead); fn1 (i, i + 1, i + 2, i + 3, i + 4, i + 5, i << 10); fn4 (i + 0xfeed, i); } }
int tmain(T Arg) { #pragma omp task if (task: true) fn1(); #pragma omp task if (false) fn2(); #pragma omp task if (Arg) fn3(); #pragma omp task if (task: Arg) depend(in : Arg) fn4(); #pragma omp task if (Arg) depend(out : Arg) fn5(); #pragma omp task if (Arg) depend(inout : Arg) fn6(); return 0; }
int main () { int ovf; if (fn1 (-10, __INT_MAX__) != (int) (-10U - __INT_MAX__) || fn2 (0, 0) != 0 || fn2 (32, 16383) != (short int) 524256ULL) __builtin_abort (); #if __SIZEOF_INT__ > __SIZEOF_SHORT__ && __SIZEOF_INT__ > 1 if (fn3 (__SCHAR_MAX__, (unsigned short) ~0, &ovf) != (int) (__SCHAR_MAX__ + (unsigned short) ~0) || ovf || fn3 (-__SCHAR_MAX__ - 1, 0, &ovf) != (int) (-__SCHAR_MAX__ - 1) || ovf) __builtin_abort (); #endif if (fn4 (65535, 0, &ovf) != 65535L * -32768 || ovf) __builtin_abort (); #if __SIZEOF_INT__ > 1 if (fn5 (0, 0, &ovf) != (signed char) (__SCHAR_MAX__ / 4 * 5) || !ovf || fn5 (63, 3, &ovf) != (signed char) ((__SCHAR_MAX__ / 4 + 63) * 8) || !ovf) __builtin_abort (); #endif if (fn6 (0, 0, &ovf) != (unsigned char) ~0 - 66 || ovf || fn6 (63, 3, &ovf) != (unsigned char) ~0 || ovf) __builtin_abort (); if (fn7 (0, 0, &ovf) != 0 || !ovf || fn7 (63, 3, &ovf) != 18 || !ovf) __builtin_abort (); return 0; }
int main () { float a[10]; float aa[10][10]; fn1 (a); CHECK (i == 0); fn2 (a); CHECK (i == 2); fn3 (a); CHECK (i == 3); fn4 (a); CHECK (i == 4); fn5 (aa); CHECK (i == 5); CHECK (j == 10); fn6 (aa); CHECK (i == 7); CHECK (j == 9); }
static void * tf (void *a) { switch ((long) a) { case 0: fn2 (); break; case 1: fn5 (); break; case 2: fn7 (); break; case 3: fn9 (); break; } return NULL; }
static inline __attribute__ ((always_inline)) int fn6 (S3 *w, int x, S2 *y, S4 *z) { int a = 2; char *b = (char *) w; S2 c = *y; while ((char *) w < b + x - 2 * sizeof (S4)) { if (w->s10 && w->s8) { fn2 (w->s12, w->s10, &c); z--; z->s4 = c.s4; z->s13 = (unsigned short) ((char *) w - b); z->s14 = w->s9; a++; fn5 (); } w = fn3 (w); } return a; }
case 0: case 1: case 2: case 3: case 4: continue; default: return i; } while (1) { } } return 0; } static_assert (fn5 () == 5, ""); constexpr int fn6 () noexcept { int r = 0; for (int i = 0; i < 10; ++i) { continue; for (int j = 0; j < 10; ++j ) r++; } return r; } static_assert (fn6 () == 0, "");
int main () { fn5 (); return 0; }
constexpr C (const char *const t1) : c (fn5 (t1) ? 199 : 69) {}