From b11e7db7139c3e231d49611b9f0415d6f1333a69 Mon Sep 17 00:00:00 2001 From: Ilya Verbin Date: Mon, 7 Sep 2015 15:25:43 +0000 Subject: intelmic-mkoffload.c (prepare_target_image): Handle all non-alphanumeric characters in the symbol name. * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all non-alphanumeric characters in the symbol name. From-SVN: r227522 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/intelmic-mkoffload.c | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d5f9f78..6295329 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-09-07 Ilya Verbin + + * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all + non-alphanumeric characters in the symbol name. + 2015-09-07 Marek Polacek PR inline-asm/67448 diff --git a/gcc/config/i386/intelmic-mkoffload.c b/gcc/config/i386/intelmic-mkoffload.c index 49e99e8..4a7812c 100644 --- a/gcc/config/i386/intelmic-mkoffload.c +++ b/gcc/config/i386/intelmic-mkoffload.c @@ -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=") -- cgit v1.1