| // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --function-signature | 
 | // REQUIRES: avr-registered-target | 
 | // RUN: %clang_cc1 -triple avr-- -emit-llvm -o - %s | FileCheck %s | 
 |  | 
 | // Copy of incomplete-function-type-2.c run with AVR. | 
 |  | 
 | // Make sure the address space of the function is respected for incomplete | 
 | // functions. | 
 |  | 
 | struct test10_B; | 
 | typedef struct test10_B test10_F3(double); | 
 | void test10_foo(test10_F3 p1); | 
 | struct test10_B test10_b(double); | 
 | // CHECK-LABEL: define {{[^@]+}}@test10_bar | 
 | // CHECK-SAME: () addrspace(1) #[[ATTR0:[0-9]+]] { | 
 | // CHECK-NEXT:  entry: | 
 | // CHECK-NEXT:    call addrspace(1) void @test10_foo(ptr addrspace(1) noundef @test10_b) | 
 | // CHECK-NEXT:    ret void | 
 | // | 
 | void test10_bar(void) { | 
 |   test10_foo(test10_b); | 
 | } | 
 | struct test10_B {}; | 
 | // CHECK-LABEL: define {{[^@]+}}@test10_foo | 
 | // CHECK-SAME: (ptr addrspace(1) noundef [[P1:%.*]]) addrspace(1) #[[ATTR0]] { | 
 | // CHECK-NEXT:  entry: | 
 | // CHECK-NEXT:    [[P1_ADDR:%.*]] = alloca ptr addrspace(1), align 1 | 
 | // CHECK-NEXT:    [[AGG_TMP:%.*]] = alloca [[STRUCT_TEST10_B:%.*]], align 1 | 
 | // CHECK-NEXT:    store ptr addrspace(1) [[P1]], ptr [[P1_ADDR]], align 1 | 
 | // CHECK-NEXT:    [[TMP0:%.*]] = load ptr addrspace(1), ptr [[P1_ADDR]], align 1 | 
 | // CHECK-NEXT:    [[CALL:%.*]] = call addrspace(1) [[STRUCT_TEST10_B]] [[TMP0]](float noundef 0.000000e+00) | 
 | // CHECK-NEXT:    ret void | 
 | // | 
 | void test10_foo(test10_F3 p1) | 
 | { | 
 |   p1(0.0); | 
 | } |