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