gcc_attribute_func.c revision 1.4
11.4Srillig/* $NetBSD: gcc_attribute_func.c,v 1.4 2023/03/28 14:44:34 rillig Exp $ */ 21.1Srillig# 3 "gcc_attribute_func.c" 31.1Srillig 41.1Srillig/* 51.1Srillig * Tests for the GCC __attribute__ for functions. 61.1Srillig * 71.1Srillig * https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html 81.1Srillig */ 91.1Srillig 101.4Srillig/* lint1-extra-flags: -X 351 */ 111.4Srillig 121.1Srilligvoid deprecated_function(void) 131.1Srillig __attribute__((__noreturn__)) 141.1Srillig __attribute__((__aligned__(8), __cold__)) 151.1Srillig __attribute__((__deprecated__("do not use while driving"))); 161.1Srillig 171.1Srillig__attribute__((__cold__)) 181.1Srilligvoid attribute_as_prefix(void); 191.1Srillig 201.1Srilligvoid __attribute__((__cold__)) attribute_after_type_spec(void); 211.1Srilligvoid *__attribute__((__cold__)) attribute_before_name(void); 221.1Srillig/*TODO: do not allow __attribute__ after function name */ 231.1Srilligvoid *attribute_after_name __attribute__((__cold__))(void); 241.1Srilligvoid *attribute_after_parameters(void) __attribute__((__cold__)); 251.1Srillig 261.2Srillig/* 271.2Srillig * The attribute 'used' does not influence static functions, it only 281.2Srillig * applies to function parameters. 291.2Srillig */ 301.3Srillig/* expect+2: warning: static function 'used_function' unused [236] */ 311.2Srilligstatic void __attribute__((used)) 321.2Srilligused_function(void) 331.2Srillig{ 341.2Srillig} 351.2Srillig 361.3Srillig/* expect+2: warning: static function 'unused_function' unused [236] */ 371.2Srilligstatic void 381.2Srilligunused_function(void) 391.2Srillig{ 401.2Srillig} 41