Hi,
The following c source code abc.c:
#include <stdio.h>
int g_val=10;
const char *g_str="abc";
const char *g_str1="c";
int main(void)
{
    printf("%s %s: %d\n",g_str,g_str1,g_val);
    return 0;
}

When compile with "clang abc.c -o abc" then dump .rodata section:
# readelf -p .rodata abc

String dump of section '.rodata':
  [     0]  abc
 [     4]  %s %s: %d

When compile with "gcc abc.c -o abc" then dump .rodata section:
$ readelf -p .rodata abc

String dump of section '.rodata':
  [    10]  abc
  [    14]  c
  [    16]  %s %s: %d^J

clang is able to merge short string ("c") into the tail of a long string 
("abc"), while gcc will not.
Does anybody know how to disable this behavior (make it similar to gcc) ?
Thanks.

_______________________________________________
cfe-users mailing list
cfe-users@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users

Reply via email to