diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 292325f900ba..fa369f4df132 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-07-25 Geoffrey Keating + + * c-decl.c (c_static_assembler_name): Remove TREE_STATIC test. + 2003-07-25 Aldy Hernandez * config/rs6000/rs6000.c (is_ev64_opaque_type): Only check pointer diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 5506ac8cc81e..20222a56c589 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -6790,7 +6790,7 @@ void c_static_assembler_name (tree decl) { if (num_in_fnames == 1 - && TREE_STATIC (decl) && !TREE_PUBLIC (decl) && DECL_CONTEXT (decl) + && !TREE_PUBLIC (decl) && DECL_CONTEXT (decl) && TREE_CODE (DECL_CONTEXT (decl)) == TRANSLATION_UNIT_DECL) SET_DECL_ASSEMBLER_NAME (decl, DECL_NAME (decl)); else diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1ee8ffb413b2..2f0e153cdf5b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-07-25 Geoffrey Keating + + * gcc.dg/intermod-1.c: New test. + 2003-07-25 Nathan Sidwell PR c++/11617 diff --git a/gcc/testsuite/gcc.dg/intermod-1.c b/gcc/testsuite/gcc.dg/intermod-1.c new file mode 100644 index 000000000000..296adf976cb0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/intermod-1.c @@ -0,0 +1,23 @@ +/* { dg-do compile } */ +/* { dg-final { scan-assembler-not {foo[1-9]\.} } } */ + +/* Check that we don't get .0 suffixes on static variables when not using + intermodule analysis. */ + +static int foo1; +static int foo2 = 1; + +static void foo5(void) { } +static void foo6(void); +static void foo6(void) { } +static void foo7(void); +void foo7(void) { } + +void foo9(void) +{ + foo1 = 2; + foo2 = 3; + foo5(); + foo6(); + foo7(); +}