11.6Srillig/* $NetBSD: gcc_attribute_func.c,v 1.6 2025/05/16 16:49:43 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.2Srilligstatic void __attribute__((used)) 271.2Srilligused_function(void) 281.2Srillig{ 291.2Srillig} 301.2Srillig 311.3Srillig/* expect+2: warning: static function 'unused_function' unused [236] */ 321.2Srilligstatic void 331.2Srilligunused_function(void) 341.2Srillig{ 351.2Srillig} 361.6Srillig 371.6Srilligvoid 381.6Srillig/* expect+1: warning: parameter 'arr' unused in function 'param_attrs' [231] */ 391.6Srilligparam_attrs(int arr[3] __attribute__(()) __attribute__((__deprecated__))) 401.6Srillig{ 411.6Srillig} 421.6Srillig 431.6Srilligvoid asm_function(void) 441.6Srillig __asm__("asm_function_name") 451.6Srillig __attribute__(()) __attribute__((__deprecated__)); 461.6Srilligvoid renamed_function(void) 471.6Srillig __symbolrename(renamed_function); 48