1*fe2ba0d5Srillig /* $NetBSD: msg_010.c,v 1.7 2023/07/13 19:59:08 rillig Exp $ */ 2a0a15c14Srillig # 3 "msg_010.c" 3a0a15c14Srillig 4a0a15c14Srillig // Test for message: duplicate '%s' [10] 5a0a15c14Srillig 6b2baa501Srillig /* lint1-extra-flags: -X 351 */ 7b2baa501Srillig 80d812cd9Srillig /* expect+1: warning: duplicate 'inline' [10] */ 90d812cd9Srillig inline inline void double_inline(void)10d8ecd506Srilligdouble_inline(void) 11d8ecd506Srillig { 12d8ecd506Srillig } 13d8ecd506Srillig 140d812cd9Srillig /* expect+1: warning: duplicate 'const' [10] */ 150d812cd9Srillig const const int double_const(void)16d8ecd506Srilligdouble_const(void) 17d8ecd506Srillig { 18d8ecd506Srillig return 0; 19d8ecd506Srillig } 20d8ecd506Srillig 210d812cd9Srillig /* expect+1: warning: duplicate 'volatile' [10] */ 220d812cd9Srillig volatile volatile int double_volatile(void)23d8ecd506Srilligdouble_volatile(void) 24d8ecd506Srillig { 25d8ecd506Srillig return 0; 26d8ecd506Srillig } 278981d6d0Srillig 288981d6d0Srillig int restrict_pointer(const int * restrict p)2917f1c77bSrilligrestrict_pointer(const int *restrict p) 308981d6d0Srillig { 318981d6d0Srillig return *p; 328981d6d0Srillig } 338981d6d0Srillig 348981d6d0Srillig _Thread_local int thread_local_int; 358981d6d0Srillig _Thread_local int *pointer_to_thread_local; 368981d6d0Srillig 37*fe2ba0d5Srillig /* expect+2: error: only 'register' is valid as storage class in parameter [9] */ 388981d6d0Srillig int thread_local_parameter(_Thread_local int i)39*fe2ba0d5Srilligthread_local_parameter(_Thread_local int i) 408981d6d0Srillig { 418981d6d0Srillig return i; 428981d6d0Srillig } 43