Fix warning with -Wsign-compare -Wsystem-headers
[official-gcc.git] / gcc / testsuite / gcc.target / avr / progmem.h
blobc91dc4c3f4fe163a58caab98e5122f0e730e4344
1 #define PROGMEM __attribute__((progmem))
3 #define PSTR(s) \
4 (__extension__({ \
5 static const char __c[] PROGMEM = (s); \
6 &__c[0];}))
8 #ifdef __AVR_HAVE_LPMX__
9 #define pgm_read_char(addr) \
10 (__extension__({ \
11 unsigned int __addr16 = (unsigned int)(addr); \
12 char __result; \
13 __asm__ ("lpm %0, %a1" \
14 : "=r" (__result) : "z" (__addr16)); \
15 __result; }))
16 #elif defined (__AVR_TINY__)
17 /* PR71948 auto-adds 0x4000 as needed, hance just a plain read. */
18 #define pgm_read_char(addr) \
19 (*(addr))
20 #else
21 #define pgm_read_char(addr) \
22 (__extension__({ \
23 unsigned int __addr16 = (unsigned int)(addr); \
24 char __result; \
25 __asm__ ("lpm" "\n\t" \
26 "mov %0, r0" \
27 : "=r" (__result) : "z" (__addr16)); \
28 __result; }))
29 #endif