brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · cce6059 Raw
38 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --function-signature2// REQUIRES: avr-registered-target3// RUN: %clang_cc1 -triple avr-- -emit-llvm -o - %s | FileCheck %s4 5// Copy of incomplete-function-type-2.c run with AVR.6 7// Make sure the address space of the function is respected for incomplete8// functions.9 10struct test10_B;11typedef struct test10_B test10_F3(double);12void test10_foo(test10_F3 p1);13struct test10_B test10_b(double);14// CHECK-LABEL: define {{[^@]+}}@test10_bar15// CHECK-SAME: () addrspace(1) #[[ATTR0:[0-9]+]] {16// CHECK-NEXT:  entry:17// CHECK-NEXT:    call addrspace(1) void @test10_foo(ptr addrspace(1) noundef @test10_b)18// CHECK-NEXT:    ret void19//20void test10_bar(void) {21  test10_foo(test10_b);22}23struct test10_B {};24// CHECK-LABEL: define {{[^@]+}}@test10_foo25// CHECK-SAME: (ptr addrspace(1) noundef [[P1:%.*]]) addrspace(1) #[[ATTR0]] {26// CHECK-NEXT:  entry:27// CHECK-NEXT:    [[P1_ADDR:%.*]] = alloca ptr addrspace(1), align 128// CHECK-NEXT:    [[AGG_TMP:%.*]] = alloca [[STRUCT_TEST10_B:%.*]], align 129// CHECK-NEXT:    store ptr addrspace(1) [[P1]], ptr [[P1_ADDR]], align 130// CHECK-NEXT:    [[TMP0:%.*]] = load ptr addrspace(1), ptr [[P1_ADDR]], align 131// CHECK-NEXT:    [[CALL:%.*]] = call addrspace(1) [[STRUCT_TEST10_B]] [[TMP0]](float noundef 0.000000e+00)32// CHECK-NEXT:    ret void33//34void test10_foo(test10_F3 p1)35{36  p1(0.0);37}38