// RUN: %clang_cc1 -triple thumbv8m.base-eabi  -fsyntax-only -ffreestanding        %s -verify -mcmse
// RUN: %clang_cc1 -triple thumbv8m.base-eabi  -fsyntax-only -ffreestanding -x c++ %s -verify -mcmse
// expected-no-diagnostics

#include <arm_cmse.h>

typedef void (*callback_t)(void);

void func(callback_t fptr, void *p)
{
  cmse_TT(p);
  cmse_TTT(p);
  cmse_TTA(p);
  cmse_TTAT(p);

  cmse_TT_fptr(fptr);
  cmse_TTT_fptr(fptr);
  cmse_TTA_fptr(fptr);
  cmse_TTAT_fptr(fptr);
}
