summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/opt/switch1.C23
-rw-r--r--gcc/varasm.c2
4 files changed, 33 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 175bd11e046..d9620165672 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-09-15 Mark Mitchell <mark@codesourcery.com>
+
+ * varasm.c (default_function_rdodata_section): Make sure to pass
+ along a decl for a link-once section.
+
2004-09-15 Richard Henderson <rth@redhat.com>
* tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e04c94049e0..f9dfb7f6751 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2004-09-15 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/opt/switch1.C: New test.
+
2004-09-15 Joseph S. Myers <jsm@polyomino.org.uk>
* g++.dg/ext/member-attr.C, g++.dg/warn/deprecated.C,
diff --git a/gcc/testsuite/g++.dg/opt/switch1.C b/gcc/testsuite/g++.dg/opt/switch1.C
new file mode 100644
index 00000000000..c21630d752b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/switch1.C
@@ -0,0 +1,23 @@
+// { dg-options "-O1" }
+
+template <typename T>
+int f(T t) {
+ switch (t) {
+ case 1:
+ return 5;
+ case 2:
+ return 6;
+ case 3:
+ return -4;
+ case 4:
+ return 8;
+ case 5:
+ return 12;
+ case 6:
+ return 13;
+ default:
+ return -27;
+ }
+}
+
+template int f(int);
diff --git a/gcc/varasm.c b/gcc/varasm.c
index b5362b92001..05d60eb44d1 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -600,7 +600,7 @@ default_function_rodata_section (tree decl)
memcpy (rname, name, len);
rname[14] = 'r';
- named_section_flags (rname, SECTION_LINKONCE);
+ named_section_real (rname, SECTION_LINKONCE, decl);
return;
}
/* For .text.foo we want to use .rodata.foo. */
OpenPOWER on IntegriCloud