#ifndef AD_BLACKFIN_FI_H
#define AD_BLACKFIN_FI_H

/* Compilers may use another function within the assert macro to exit the 
 * program. QAC thus does not see an "exit" function and assumes the 
 * function returns, which it does not.
 * The below pragma tells QAC the compiler supplied function does not
 * return.
 */

/* examples - GCC, ICC, BCC 3.1, BCC 5.5, CYGWIN gcc, Watcom 1.6 */
#pragma PRQA_NO_RETURN __assert_fail
#pragma PRQA_NO_RETURN __assert_perror_fail
#pragma PRQA_NO_RETURN __assert

/* SDCC, BCC 5.5, Digital Mars DM 8.4, LCC, Watcom 1.6, Fujitsu F2MM,FR */
#pragma PRQA_NO_RETURN _assert

/* HI-TECH PCCLite */
#pragma PRQA_NO_RETURN _fassert

/* DJGPP, D.J.Delorie gcc DOS port */
#pragma PRQA_NO_RETURN __dj_assert

/* Watcom 1.6, MSVS 08 */
#pragma PRQA_NO_RETURN _wassert
#pragma PRQA_NO_RETURN __wassert
#pragma PRQA_NO_RETURN _assert99
#pragma PRQA_NO_RETURN _wassert99
#pragma PRQA_NO_RETURN __assert99
#pragma PRQA_NO_RETURN __wassert99

/* Renesas M32R compiler */
#pragma PRQA_NO_RETURN _Assert

/* NEC 78K0 series 16bit compiler */
#pragma PRQA_NO_RETURN __assertfail
#pragma PRQA_NO_RETURN __assertfail_n
#pragma PRQA_NO_RETURN __assertfail_f


/* Depending on the code that the compiler maker uses within the assert macro,
 * QAC may issue warnings. It is also possible that when the NDEBUG macro is used
 * to suppress the assertion code, QAC may issue a "no side-effects" warning.
 * To eliminate these, we turn off all warnings for the assert macro.
 */
#pragma PRQA_MACRO_MESSAGES_OFF "assert"


/* Any other items that may be required in a "force-include" file should be placed below. */
void __builtin_abort(void);
int __builtin_abs(int);
long __builtin_abs_fr1x32(long);
int __builtin_abs_fr2x16(int);
int __builtin_abs_i1x32(int);
int __builtin_abs_i2x16(int);
short __builtin_add_fr1x16(short, short);
long __builtin_add_fr1x32(long, long);
int __builtin_add_fr2x16(int, int);
int __builtin_add_i2x16(int, int);
int __builtin_add_i4x8_res1(long long, char *, long long, char *);
int __builtin_add_i4x8_res2(int);
int __builtin_add_i4x8_rres1(long long, char *, long long, char *);
int __builtin_add_i4x8_rres2(int);
unsigned int __builtin_add_u2x16(unsigned int, unsigned int);
int __builtin_addclip_hi(long long, char *, long long, char *);
int __builtin_addclip_hir(long long, char *, long long, char *);
int __builtin_addclip_lo(long long, char *, long long, char *);
int __builtin_addclip_lor(long long, char *, long long, char *);
int __builtin_align16(int, int);
int __builtin_align24(int, int);
int __builtin_align8(int, int);
void __builtin_aligned(const void *, int);
void *__builtin_alloca(unsigned long);
void __builtin_assert(int);
int __builtin_avg_i2x8_hi(long long, char *, long long);
int __builtin_avg_i2x8_hir(long long, char *, long long);
int __builtin_avg_i2x8_hit(long long, char *, long long);
int __builtin_avg_i2x8_hitr(long long, char *, long long);
int __builtin_avg_i2x8_lo(long long, char *, long long);
int __builtin_avg_i2x8_lor(long long, char *, long long);
int __builtin_avg_i2x8_lot(long long, char *, long long);
int __builtin_avg_i2x8_lotr(long long, char *, long long);
int __builtin_avg_i4x8(long long, char *, long long, char *);
int __builtin_avg_i4x8_r(long long, char *, long long, char *);
int __builtin_avg_i4x8_t(long long, char *, long long, char *);
int __builtin_avg_i4x8_tr(long long, char *, long long, char *);
long long __builtin_bitmux_shl_res1(long long, int, int);
int __builtin_bitmux_shl_res2(long long);
int __builtin_bitmux_shl_res3(long long);
long long __builtin_bitmux_shr_res1(long long, int, int);
int __builtin_bitmux_shr_res2(long long);
int __builtin_bitmux_shr_res3(long long);
int __builtin_bytepack(int, int);
short __builtin_byteswap2(short);
int __builtin_byteswap4(int);
int __builtin_byteunpackres1(long long, char *);
int __builtin_byteunpackres2(int);
int __builtin_byteunpackrres1(long long, char *);
int __builtin_byteunpackrres2(int);
long long __builtin_cadd_fr32(long long, long long);
long __builtin_circindex(long, long, unsigned long);
void *__builtin_circptr(const void *, long, const void *, unsigned long);
unsigned int __builtin_cli(void);
int __builtin_cmplx_add(int, int);
int __builtin_cmplx_mac(int, int, int);
int __builtin_cmplx_mac_s40(int, int, int);
int __builtin_cmplx_msu(int, int, int);
int __builtin_cmplx_msu_s40(int, int, int);
int __builtin_cmplx_mul(int, int);
int __builtin_cmplx_mul_s40(int, int);
int __builtin_cmplx_sub(int, int);
int __builtin_compose_2x16(short, short);
long long __builtin_compose_i64(int, int);
long long __builtin_conj_fr32(long long);
int __builtin_csqu_fr16(int);
long long __builtin_csub_fr32(long long, long long);
void __builtin_csync(void);
void __builtin_csync_int(void);
void *__builtin_dealloca(unsigned long);
short __builtin_diff_hl_fr2x16(int);
short __builtin_diff_lh_fr2x16(int);
int __builtin_divq_r1(int, int, int);
int __builtin_divq_r2(int);
int __builtin_divs_r1(int, int);
int __builtin_divs_r2(int);
int __builtin_dspaddsubsat(int, int);
int __builtin_dspsubaddsat(int, int);
long __builtin_emuclk(void);
void __builtin_excpt(int);
short __builtin_expadj1x16(short, short);
short __builtin_expadj1x32(int, short);
short __builtin_expadj2x16(int, short);
int __builtin_expected_false(int);
int __builtin_expected_true(int);
int __builtin_extract_and_add_res1(int, int);
int __builtin_extract_and_add_res2(int);
short __builtin_extract_hi(int);
short __builtin_extract_lo(int);
void __builtin_flush(void *);
void __builtin_flushinv(void *);
void *__builtin_flushinvmodup(void *);
void *__builtin_flushmodup(void *);
int __builtin_funcsize(const void *);
void __builtin_halt(void);
void __builtin_idle(void);
void __builtin_iflush(void *);
void *__builtin_iflushmodup(void *);
int __builtin_imag_fr32(long long);
long __builtin_labs(long);
long __builtin_lmax(long, long);
long __builtin_lmin(long, long);
int __builtin_loadbytes(int *);
short __builtin_lvitmax1x16_r1(int, int);
int __builtin_lvitmax1x16_r2(short);
int __builtin_lvitmax2x16_r1(int, int, int);
int __builtin_lvitmax2x16_r2(int);
int __builtin_max(int, int);
short __builtin_max_fr1x16(short, short);
long __builtin_max_fr1x32(long, long);
int __builtin_max_fr2x16(int, int);
int __builtin_max_i2x16(int, int);
void *__builtin_memcpy(void *, const void *, unsigned long);
void *__builtin_memmove(void *, const void *, unsigned long);
int __builtin_min(int, int);
short __builtin_min_fr1x16(short, short);
long __builtin_min_fr1x32(long, long);
int __builtin_min_fr2x16(int, int);
int __builtin_min_i2x16(int, int);
short __builtin_misaligned_load16(void *);
short __builtin_misaligned_load16_vol(volatile void *);
int __builtin_misaligned_load32(void *);
int __builtin_misaligned_load32_vol(volatile void *);
long long __builtin_misaligned_load64(void *);
long long __builtin_misaligned_load64_vol(volatile void *);
void __builtin_misaligned_store16(void *, short);
void __builtin_misaligned_store16_vol(volatile void *, short);
void __builtin_misaligned_store32(void *, int);
void __builtin_misaligned_store32_vol(volatile void *, int);
void __builtin_misaligned_store64(void *, long long);
void __builtin_misaligned_store64_vol(volatile void *, long long);
unsigned short __builtin_mmr_read16(volatile void *);
unsigned int __builtin_mmr_read32(volatile void *);
void __builtin_mmr_write16(volatile void *, unsigned short);
void __builtin_mmr_write32(volatile void *, unsigned int);
long long __builtin_mult64_32x32(int, int);
short __builtin_mult_fr1x16(short, short);
long __builtin_mult_fr1x32(short, short);
long __builtin_mult_fr1x32x32(long, long);
long __builtin_mult_fr1x32x32NS(long, long);
int __builtin_mult_fr2x16(int, int);
int __builtin_mult_i2x16(int, int);
short __builtin_multr_fr1x16(short, short);
long __builtin_multr_fr1x32x32(long, long);
int __builtin_multr_fr2x16(int, int);
unsigned long long __builtin_multu64_32x32(unsigned int, unsigned int);
short __builtin_multu_fr1x16(short, short);
int __builtin_multu_fr2x16(int, int);
long __builtin_negate_fr1x32(long);
int __builtin_negate_fr2x16(int);
short __builtin_norm_fr1x16(short);
short __builtin_norm_fr1x32(long);
short __builtin_ones(int);
void __builtin_prefetch(void *);
void *__builtin_prefetchmodup(void *);
void __builtin_raise(int);
int __builtin_real_fr32(long long);
short __builtin_round_fr1x32(long);
short __builtin_rvitmax1x16_r1(int, int);
int __builtin_rvitmax1x16_r2(short);
int __builtin_rvitmax2x16_r1(int, int, int);
int __builtin_rvitmax2x16_r2(int);
int __builtin_saa_res1(long long, char *, long long, char *, int, int);
int __builtin_saa_res2(int);
int __builtin_saa_rres1(long long, char *, long long, char *, int, int);
int __builtin_saa_rres2(int);
short __builtin_sat_fr1x32(long);
short __builtin_shl_fr1x16(short, short);
long __builtin_shl_fr1x32(long, short);
long __builtin_shl_fr1x32_clip(long, short);
int __builtin_shl_fr2x16(int, short);
int __builtin_shl_fr2x16_clip(int, short);
short __builtin_shl_i1x16(short, short);
int __builtin_shl_i1x32(int, short);
int __builtin_shl_i2x16(int, short);
short __builtin_shll_i1x16(short, short);
int __builtin_shll_i1x32(int, short);
int __builtin_shll_i2x16(int, short);
short __builtin_shr_fr1x16(short, short);
long __builtin_shr_fr1x32(long, short);
long __builtin_shr_fr1x32_clip(long, short);
int __builtin_shr_fr2x16(int, short);
int __builtin_shr_fr2x16_clip(int, short);
short __builtin_shr_i1x16(short, short);
int __builtin_shrl_fr2x16(int, short);
int __builtin_shrl_fr2x16_clip(int, short);
void __builtin_ssync(void);
void __builtin_ssync_int(void);
void __builtin_sti(unsigned int);
char *__builtin_strcpy(char *, const char *);
unsigned long __builtin_strlen(const char *);
short __builtin_sub_fr1x16(short, short);
long __builtin_sub_fr1x32(long, long);
int __builtin_sub_fr2x16(int, int);
int __builtin_sub_i2x16(int, int);
int __builtin_sub_i4x8_res1(long long, char *, long long, char *);
int __builtin_sub_i4x8_res2(int);
int __builtin_sub_i4x8_rres1(long long, char *, long long, char *);
int __builtin_sub_i4x8_rres2(int);
unsigned int __builtin_sub_u2x16(unsigned int, unsigned int);
short __builtin_sum_fr2x16(int);
short __builtin_sum_i2x16(int);
unsigned int __builtin_sysreg_read(int);
unsigned long long __builtin_sysreg_read64(int);
void __builtin_sysreg_write(int, unsigned int);
void __builtin_sysreg_write64(int, unsigned long long);
int __builtin_testset(char *);
int __builtin_testset_05000248(char *);
void __builtin_untestset(char *);
void *__builtin_va_start(const void *, int);

#else
#error "Multiple include"
#endif  /* ifndef AD_BLACKFIN_FI_H */
