1 // RUN:     %clang_cc1 -triple thumbv8m.base-eabi -fsyntax-only        %s 2>&1 | FileCheck --check-prefix=CHECK-c %s
2 // RUN: not %clang_cc1 -triple thumbv8m.base-eabi -fsyntax-only -x c++ %s 2>&1 | FileCheck --check-prefix=CHECK-cpp %s
3 
4 #include <arm_cmse.h>
5 
6 typedef void (*callback_t)(void);
7 
func(callback_t fptr,void * p)8 void func(callback_t fptr, void *p)
9 {
10   cmse_TT(p);
11   cmse_TTT(p);
12   cmse_TT_fptr(fptr);
13   cmse_TTT_fptr(fptr);
14 
15   cmse_TTA(p);
16   cmse_TTAT(p);
17   cmse_TTA_fptr(fptr);
18   cmse_TTAT_fptr(fptr);
19 // CHECK-c: warning: implicit declaration of function 'cmse_TTA'
20 // CHECK-c: warning: implicit declaration of function 'cmse_TTAT'
21 // CHECK-c: warning: implicit declaration of function 'cmse_TTA_fptr'
22 // CHECK-c: warning: implicit declaration of function 'cmse_TTAT_fptr'
23 // CHECK-cpp: error: use of undeclared identifier 'cmse_TTA'
24 // CHECK-cpp: error: use of undeclared identifier 'cmse_TTAT'
25 // CHECK-cpp: error: use of undeclared identifier 'cmse_TTA_fptr'
26 // CHECK-cpp: error: use of undeclared identifier 'cmse_TTAT_fptr'
27 }
28