https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61949

            Bug ID: 61949
           Summary: [4.10 regression] SEGV compiling
                    gcc.dg/pch/import-[12].c
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: rguenth at gcc dot gnu.org
              Host: i386-pc-solaris2.10
            Target: i386-pc-solaris2.10
             Build: i386-pc-solaris2.10

Between 20140711 (r212451) and 20140718 (r15669), the gcc.dg/pch/import-[12].c
tests started to FAIL on Solaris 10/x86 (only, Solaris 11 is unaffected):

FAIL: gcc.dg/pch/import-1.c  -O0 -g -I. -Dwith_PCH (internal compiler error)
FAIL: gcc.dg/pch/import-1.c  -O0 -g -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/import-1.c -O0 -g assembly comparison

and all others, both 32 and 64-bit.

cc1 SEGVs here:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0x08c34226 in md5_read_ctx (resbuf=0x8047278, ctx=0x8047140)
    at /vol/gcc/src/hg/trunk/local/libiberty/md5.c:91
91        memcpy (resbuf, buffer, 16);
1: x/i $pc
=> 0x8c34226 <md5_finish_ctx+150>:      movaps -0x28(%ebp),%xmm0

-0x28(%ebp) isn't 16-byte aligned as required.

This only happens with the stage3 cc1, stages 1 and 2 are unaffected.

A reghunt revealed that this is caused by this patch:

2014-07-11  Richard Biener  <rguent...@suse.de>

       PR middle-end/61473
       * builtins.c (fold_builtin_memory_op): Inline memory moves
       that can be implemented with a single load followed by a
       single store.
       (c_strlen): Only warn when only_value is not 2.

  Rainer

Reply via email to