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