1 /* { dg-do compile } */
2 /* { dg-require-effective-target avr_tiny } */
9 extern char varA
__attribute__((absdata
));
10 extern char varB
__attribute__((absdata
));
12 extern int arrayA
[] __attribute__((absdata
));
13 extern int arrayB
[] __attribute__((absdata
));
14 extern char arrayC
[] __attribute__((address(0x80)));
16 extern abc_t abc
__attribute__((absdata
));
30 return abc
.a
+ abc
.b
+ abc
.c
;
46 abc
.a
= abc
.b
= abc
.c
= 0;
51 arrayC
[0] = arrayC
[1] = arrayC
[2] = 0;
54 /* { dg-final { scan-assembler "lds r\[0-9\]+,varA" } } */
55 /* { dg-final { scan-assembler "lds r\[0-9\]+,arrayA\\+6" } } */
56 /* { dg-final { scan-assembler "lds r\[0-9\]+,arrayA\\+6\\+1" } } */
57 /* { dg-final { scan-assembler "lds r\[0-9\]+,abc" } } */
58 /* { dg-final { scan-assembler "lds r\[0-9\]+,abc\\+1" } } */
59 /* { dg-final { scan-assembler "lds r\[0-9\]+,abc\\+2" } } */
61 /* { dg-final { scan-assembler "sts varB," } } */
62 /* { dg-final { scan-assembler "sts arrayB\\+6," } } */
63 /* { dg-final { scan-assembler "sts arrayB\\+6\\+1," } } */
64 /* { dg-final { scan-assembler "sts arrayC," } } */
65 /* { dg-final { scan-assembler "sts arrayC\\+1," } } */
66 /* { dg-final { scan-assembler "sts arrayC\\+2," } } */
68 /* { dg-final { scan-assembler "sts abc," } } */
69 /* { dg-final { scan-assembler "sts abc\\+1," } } */
70 /* { dg-final { scan-assembler "sts abc\\+2," } } */