/* { dg-do compile } */ int __attribute__ ((common)) common; static int local; extern int external_decl; int external_defn; int foo () { return common + local + external_decl + external_defn; } void bar (int i) { common = local = external_decl = external_defn = i; } /* { dg-final { scan-assembler "\[\n\r\]\[\t \]*.weak .global\[^,\n\r\]*common" } } */ /* { dg-final { scan-assembler "\[\n\r\]\[\t \]*.global\[^,\n\r\]*local" } } */ /* { dg-final { scan-assembler "\[\n\r\]\[\t \]*.extern .global\[^,\n\r\]*external_decl" } } */ /* { dg-final { scan-assembler "\[\n\r\]\[\t \]*.visible .global\[^,\n\r\]*external_defn" } } */