1 1.2 rillig /* $NetBSD: gcc_attribute.c,v 1.2 2021/05/01 07:25:07 rillig Exp $ */ 2 1.1 rillig # 3 "gcc_attribute.c" 3 1.1 rillig 4 1.1 rillig /* 5 1.1 rillig * Tests for the various attributes for functions, types, statements that are 6 1.1 rillig * provided by GCC. 7 1.1 rillig * 8 1.1 rillig * https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html 9 1.1 rillig * https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html 10 1.1 rillig * https://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html 11 1.1 rillig * https://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html 12 1.1 rillig * https://gcc.gnu.org/onlinedocs/gcc/Enumerator-Attributes.html 13 1.1 rillig * https://gcc.gnu.org/onlinedocs/gcc/Statement-Attributes.html 14 1.1 rillig * https://gcc.gnu.org/onlinedocs/gcc/Label-Attributes.html 15 1.1 rillig */ 16 1.1 rillig 17 1.1 rillig void __attribute__((noinline)) 18 1.1 rillig do_not_inline(void) 19 1.1 rillig { 20 1.1 rillig } 21 1.1 rillig 22 1.2 rillig /* All pointer arguments must be nonnull. */ 23 1.2 rillig void __attribute__((nonnull)) 24 1.2 rillig function_nonnull(void *, const void *, int); 25 1.2 rillig 26 1.2 rillig /* Arguments 1 and 2 must be nonnull. */ 27 1.1 rillig void __attribute__((nonnull(1, 2))) 28 1.2 rillig function_nonnull_list(void *, const void *, int); 29 1.1 rillig 30 1.1 rillig /* expect+1: syntax error 'unknown_attribute' */ 31 1.1 rillig void __attribute__((unknown_attribute)) 32 1.1 rillig function_with_unknown_attribute(void); 33