1*4684ddb6SLionel Sambuc #include <stdio.h> 2*4684ddb6SLionel Sambuc #include "test.h" 3*4684ddb6SLionel Sambuc 4*4684ddb6SLionel Sambuc static int static_count; 5*4684ddb6SLionel Sambuc struct static_struct 6*4684ddb6SLionel Sambuc { 7*4684ddb6SLionel Sambuc int i; static_structstatic_struct8*4684ddb6SLionel Sambuc static_struct() 9*4684ddb6SLionel Sambuc { 10*4684ddb6SLionel Sambuc static_count++; 11*4684ddb6SLionel Sambuc i = 12; 12*4684ddb6SLionel Sambuc }; 13*4684ddb6SLionel Sambuc }; 14*4684ddb6SLionel Sambuc 15*4684ddb6SLionel Sambuc static static_struct ss; 16*4684ddb6SLionel Sambuc init_static(void)17*4684ddb6SLionel Sambucint init_static(void) 18*4684ddb6SLionel Sambuc { 19*4684ddb6SLionel Sambuc static static_struct s; 20*4684ddb6SLionel Sambuc return s.i; 21*4684ddb6SLionel Sambuc } 22*4684ddb6SLionel Sambuc test_guards(void)23*4684ddb6SLionel Sambucvoid test_guards(void) 24*4684ddb6SLionel Sambuc { 25*4684ddb6SLionel Sambuc init_static(); 26*4684ddb6SLionel Sambuc int i = init_static(); 27*4684ddb6SLionel Sambuc TEST(i == 12, "Static initialized"); 28*4684ddb6SLionel Sambuc TEST(static_count == 2, "Each static only initialized once"); 29*4684ddb6SLionel Sambuc } 30