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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users