2016-12-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
[official-gcc.git] / gcc / testsuite / gcc.target / avr / torture / builtins-2.c
blobae207d9a939d0b4add4b93286ca63d9bb496421f
1 /* { dg-options "-std=gnu99 -Tavr51-flash1.x" } */
2 /* { dg-do run } */
4 #include <stdlib.h>
5 #include "../progmem.h"
7 int volatile a;
9 void f1 (void)
11 __builtin_avr_sei ();
12 __builtin_avr_cli ();
13 __builtin_avr_wdr ();
14 __builtin_avr_sleep ();
15 __builtin_avr_nop ();
16 a = __builtin_avr_swap (a);
17 a = __builtin_avr_fmul (1,a);
18 a = __builtin_avr_fmuls (1,a);
19 a = __builtin_avr_fmulsu (1,a);
20 a = __builtin_avr_insert_bits (0x1f2f5364, a, a);
23 const __flash char c0 = 1;
24 const __flash1 char c1 = 1;
26 int main (void)
28 const __memx void *p;
30 f1();
31 __builtin_avr_delay_cycles (1000);
33 p = &c0;
34 if (__builtin_avr_flash_segment (p) != 0)
35 abort();
37 p = &c1;
38 if (__builtin_avr_flash_segment (p) != 1)
39 abort();
41 if (__builtin_avr_flash_segment ("p") != -1)
42 abort();
44 exit (0);
45 return 0;