diff options
author | DJ Delorie <dj@redhat.com> | 2009-04-01 01:26:39 -0400 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2009-04-01 01:26:39 -0400 |
commit | e893f6f38e3842a0d4e74be5835b4506ba6bb3de (patch) | |
tree | 1bf6bdcc0b2bd80933257daa2898b982ba9c284c /gcc/varasm.c | |
parent | b246d10043fd9d5cf21122e999cb1dbb4534686d (diff) | |
download | gcc-e893f6f38e3842a0d4e74be5835b4506ba6bb3de.zip gcc-e893f6f38e3842a0d4e74be5835b4506ba6bb3de.tar.gz gcc-e893f6f38e3842a0d4e74be5835b4506ba6bb3de.tar.bz2 |
varasm.c (default_function_rodata_section): Don't assume anything about where the first '.' in the section name is.
* varasm.c (default_function_rodata_section): Don't assume
anything about where the first '.' in the section name is.
From-SVN: r145388
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 9eefb02..c706a86 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -869,11 +869,18 @@ default_function_rodata_section (tree decl) if (DECL_ONE_ONLY (decl) && HAVE_COMDAT_GROUP) { - size_t len = strlen (name) + 3; - char* rname = (char *) alloca (len); + char *dot; + size_t len; + char* rname; + + dot = strchr (name + 1, '.'); + if (!dot) + dot = name; + len = strlen (dot) + 8; + rname = (char *) alloca (len); strcpy (rname, ".rodata"); - strcat (rname, name + 5); + strcat (rname, dot); return get_section (rname, SECTION_LINKONCE, decl); } /* For .gnu.linkonce.t.foo we want to use .gnu.linkonce.r.foo. */ |