[cfe-users] how clang merge strings in .rodata section
Jian, Xu via cfe-users
cfe-users at lists.llvm.org
Wed Jul 4 18:18:59 PDT 2018
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20180705/1c1134a4/attachment.html>
More information about the cfe-users
mailing list