intelmic-mkoffload.c (prepare_target_image): Handle all non-alphanumeric characters...
authorIlya Verbin <ilya.verbin@intel.com>
Mon, 7 Sep 2015 15:25:43 +0000 (15:25 +0000)
committerIlya Verbin <iverbin@gcc.gnu.org>
Mon, 7 Sep 2015 15:25:43 +0000 (15:25 +0000)
* config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
non-alphanumeric characters in the symbol name.

From-SVN: r227522

gcc/ChangeLog
gcc/config/i386/intelmic-mkoffload.c

index d5f9f785393f3c6f29cda10008d15f12942273e2..62953292d0a82673a823735a9fc405d801ee8ad8 100644 (file)
@@ -1,3 +1,8 @@
+2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
+
+       * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
+       non-alphanumeric characters in the symbol name.
+
 2015-09-07  Marek Polacek  <polacek@redhat.com>
 
        PR inline-asm/67448
index 49e99e86aa835aa2e8afe861ca39faf398cd5c79..4a7812c2499b4be33c881c70484dd2dfc095ba58 100644 (file)
@@ -453,17 +453,18 @@ prepare_target_image (const char *target_compiler, int argc, char **argv)
   fork_execute (objcopy_argv[0], CONST_CAST (char **, objcopy_argv), false);
 
   /* Objcopy has created symbols, containing the input file name with
-     special characters replaced with '_'.  We are going to rename these
-     new symbols.  */
+     non-alphanumeric characters replaced by underscores.
+     We are going to rename these new symbols.  */
   size_t symbol_name_len = strlen (target_so_filename);
   char *symbol_name = XALLOCAVEC (char, symbol_name_len + 1);
-  for (size_t i = 0; i <= symbol_name_len; i++)
+  for (size_t i = 0; i < symbol_name_len; i++)
     {
       char c = target_so_filename[i];
-      if (c == '/' || c == '.' || c == '-')
+      if (!ISALNUM (c))
        c = '_';
       symbol_name[i] = c;
     }
+  symbol_name[symbol_name_len] = '\0';
 
   char *opt_for_objcopy[3];
   opt_for_objcopy[0] = XALLOCAVEC (char, sizeof ("_binary__start=")