On Thu, Jul 5, 2018 at 3:18 AM, Jian, Xu via cfe-users
<cfe-users@lists.llvm.org> wrote:
> 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) ?

I don't think there is a way to disable it.

Why do you want to disable this behaviour?

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

Reply via email to