From 143b6bc3190ea8dfb60bdc611c207d0e15be1cdb Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Mon, 13 Dec 2004 19:44:03 +0000 Subject: [PATCH] xcoffout.c (xcoffout_declare_function): Always strip storage class encoding. * xcoffout.c (xcoffout_declare_function): Always strip storage class encoding. From-SVN: r92101 --- gcc/ChangeLog | 5 +++++ gcc/xcoffout.c | 22 +++++++++------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5ed662d12312..96a1648fb078 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-12-13 David Edelsohn + + * xcoffout.c (xcoffout_declare_function): Always strip storage + class encoding. + 2004-12-13 Andrew Pinski PR target/18964 diff --git a/gcc/xcoffout.c b/gcc/xcoffout.c index f79755a58a86..a2d8a33ba5f0 100644 --- a/gcc/xcoffout.c +++ b/gcc/xcoffout.c @@ -405,22 +405,18 @@ xcoffout_end_block (unsigned int line, unsigned int n) void xcoffout_declare_function (FILE *file, tree decl, const char *name) { - int i; + size_t len; if (*name == '*') name++; - else - for (i = 0; name[i]; ++i) - { - if (name[i] == '[') - { - char *n = alloca (i + 1); - strncpy (n, name, i); - n[i] = '\0'; - name = n; - break; - } - } + len = strlen (name); + if (name[len - 1] == ']') + { + char *n = alloca (len - 3); + strncpy (n, name, len - 4); + n[len - 4] = '\0'; + name = n; + } /* Any pending .bi or .ei must occur before the .function pseudo op. Otherwise debuggers will think that the function is in the previous