public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/24306]  New: va_arg gets confused when skipping over certain zero-sized types
@ 2005-10-11 12:01 bje at gcc dot gnu dot org
  2005-10-11 13:34 ` [Bug target/24306] " pinskia at gcc dot gnu dot org
                   ` (18 more replies)
  0 siblings, 19 replies; 22+ messages in thread
From: bje at gcc dot gnu dot org @ 2005-10-11 12:01 UTC (permalink / raw)
  To: gcc-bugs

va_arg seems to mess up the va_list when variadic variables have size 0, but
when have large alignment requirements.  When the alignment is small, this
seems to work by chance.

$ gcc foo.c -o foo && ./foo
3 0

#include <stdarg.h>
#include <stdio.h>

typedef int __attribute__ ((vector_size (16))) foo_t;

struct s
{
  foo_t f[0];
} s1;

void
check (int x, ...)
{
  int y;
  va_list ap;

  va_start (ap, x);
  va_arg (ap, struct s);
  y = va_arg (ap, int);

  /* Expect output: 3 7  */
  printf ("%d %d\n", x, y);
}

int main()
{
  check (3, s1, 7);
  return 0;
}


-- 
           Summary: va_arg gets confused when skipping over certain zero-
                    sized types
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: major
          Priority: P2
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bje at gcc dot gnu dot org
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug target/24306] va_arg gets confused when skipping over certain zero-sized types
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
@ 2005-10-11 13:34 ` pinskia at gcc dot gnu dot org
  2005-10-11 14:02 ` bje at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-10-11 13:34 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2005-10-11 13:34 -------
Hmm, this works for me with todays' compiler:
earth:~>gcc t.c -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /home/peshtigo/pinskia/src/gnu/gcc/src/configure
--target=i686-pc-linux-gnu --host=i686-pc-linux-gnu --enable-__cxa_atexit
--enable-languages=c++,objc,java,f95 --prefix=/home/gates/pinskia/linux
--enable-threads=posix --enable-shared
Thread model: posix
gcc version 4.1.0 20051011 (experimental)
 /home/gates/pinskia/linux/libexec/gcc/i686-pc-linux-gnu/4.1.0/cc1 -quiet -v
t.c -quiet -dumpbase t.c -mtune=pentiumpro -auxbase t -version -o
/tmp/ccyK6uLf.s
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /home/gates/pinskia/linux/include
 /home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/include

/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../i686-pc-linux-gnu/include
 /usr/include
End of search list.
GNU C version 4.1.0 20051011 (experimental) (i686-pc-linux-gnu)
        compiled by GNU C version 4.1.0 20051011 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 4eb5c7164a4d9c2ecd7466e6212b1162

/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../i686-pc-linux-gnu/bin/as
-V -Qy -o /tmp/ccOwBdYl.o /tmp/ccyK6uLf.s
GNU assembler version 2.15.94 (i686-pc-linux-gnu) using BFD version 2.15.94
20041104
 /home/gates/pinskia/linux/libexec/gcc/i686-pc-linux-gnu/4.1.0/collect2
--eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o
/usr/lib/crti.o
/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/crtbegin.o
-L/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0
-L/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../i686-pc-linux-gnu/lib
-L/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../..
/tmp/ccOwBdYl.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed
-lgcc_s --no-as-needed
/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/crtend.o
/usr/lib/crtn.o
earth:~>./a.out
3 7
-----
Can you suply the ouput of gcc -v?


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug target/24306] va_arg gets confused when skipping over certain zero-sized types
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
  2005-10-11 13:34 ` [Bug target/24306] " pinskia at gcc dot gnu dot org
@ 2005-10-11 14:02 ` bje at gcc dot gnu dot org
  2005-10-11 14:09 ` [Bug target/24306] [3.4/4.0/4.1 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse pinskia at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: bje at gcc dot gnu dot org @ 2005-10-11 14:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from bje at gcc dot gnu dot org  2005-10-11 14:02 -------
gcc version 4.1.0 20051010 (experimental)

I managed to work out that you need to add -msse to trigger the bug.


-- 

bje at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-10-11 14:02:39
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug target/24306] [3.4/4.0/4.1 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
  2005-10-11 13:34 ` [Bug target/24306] " pinskia at gcc dot gnu dot org
  2005-10-11 14:02 ` bje at gcc dot gnu dot org
@ 2005-10-11 14:09 ` pinskia at gcc dot gnu dot org
  2005-10-31  6:10 ` mmitchel at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-10-11 14:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pinskia at gcc dot gnu dot org  2005-10-11 14:09 -------
Confirmed, a regression from 3.3.3.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |3.4.0 4.0.0 4.1.0
      Known to work|                            |3.3.3
            Summary|va_arg gets confused when   |[3.4/4.0/4.1 Regression]
                   |skipping over certain zero- |va_arg gets confused when
                   |sized types                 |skipping over certain zero-
                   |                            |sized types with -msse
   Target Milestone|---                         |4.0.3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug target/24306] [3.4/4.0/4.1 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2005-10-11 14:09 ` [Bug target/24306] [3.4/4.0/4.1 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse pinskia at gcc dot gnu dot org
@ 2005-10-31  6:10 ` mmitchel at gcc dot gnu dot org
  2005-12-19 11:34 ` [Bug target/24306] [3.4/4.0/4.1/4.2 " rguenth at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-10-31  6:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from mmitchel at gcc dot gnu dot org  2005-10-31 06:10 -------
This is a corner-case; we can leave this at P2.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug target/24306] [3.4/4.0/4.1/4.2 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2005-10-31  6:10 ` mmitchel at gcc dot gnu dot org
@ 2005-12-19 11:34 ` rguenth at gcc dot gnu dot org
  2005-12-19 11:40 ` [Bug middle-end/24306] " rguenth at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2005-12-19 11:34 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from rguenth at gcc dot gnu dot org  2005-12-19 11:34 -------
We add some alignment fluff in the SSE type case.  The following works as
expected:

#include <stdarg.h>

typedef int __attribute__ ((vector_size (16))) foo_t;
extern void abort(void);

struct s
{
  _Complex double f[0];
} s1;

void
check (int x, ...)
{
  int y;
  va_list ap;

  va_start (ap, x);
  va_arg (ap, struct s);
  y = va_arg (ap, int);

  /* Expect output: 3 7  */
  if (y != 7)
    abort ();
}

int main()
{
  check (3, s1, 7);
  return 0;
}

.vars dump difference, working agains non-working:

--- t2.c.t96.vars       2005-12-19 12:22:09.000000000 +0100
+++ t.c.t96.vars        2005-12-19 12:15:08.000000000 +0100
@@ -5,10 +5,12 @@
 {
   char * ap;
   char * D.1699;
+  char * ap.0;

 <bb 2>:
   __builtin_va_start (&ap, 0, 0);
-  D.1699 = ap;
+  ap.0 = ap;
+  D.1699 = ap.0 + 15B & -16B;
   if (*(int *) D.1699 != 7) goto <L0>; else goto <L1>;

 <L0>:;


We have a bug here in the generic builtins.c and the config/i386/i386.c variant
of gimplify_va_arg_expr - and I have a fix.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2005-10-11 14:02:39         |2005-12-19 11:34:31
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [3.4/4.0/4.1/4.2 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2005-12-19 11:34 ` [Bug target/24306] [3.4/4.0/4.1/4.2 " rguenth at gcc dot gnu dot org
@ 2005-12-19 11:40 ` rguenth at gcc dot gnu dot org
  2005-12-20 16:20 ` rguenth at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2005-12-19 11:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from rguenth at gcc dot gnu dot org  2005-12-19 11:40 -------
And this doesn't look target dependent.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|target                      |middle-end
 GCC target triplet|i686-pc-linux-gnu           |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [3.4/4.0/4.1/4.2 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2005-12-19 11:40 ` [Bug middle-end/24306] " rguenth at gcc dot gnu dot org
@ 2005-12-20 16:20 ` rguenth at gcc dot gnu dot org
  2005-12-20 17:23 ` [Bug middle-end/24306] [3.4/4.0/4.1 " rguenth at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2005-12-20 16:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from rguenth at gcc dot gnu dot org  2005-12-20 16:20 -------
Subject: Bug 24306

Author: rguenth
Date: Tue Dec 20 16:20:27 2005
New Revision: 108854

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108854
Log:
2005-12-20  Richard Guenther  <rguenther@suse.de>

        PR middle-end/24306
        * builtins.c (std_gimplify_va_arg_expr): Do not align
        va frame for zero sized types.
        * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.

        * gcc.target/i386/pr24306.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr24306.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/builtins.c
    trunk/gcc/config/i386/i386.c
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [3.4/4.0/4.1 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2005-12-20 16:20 ` rguenth at gcc dot gnu dot org
@ 2005-12-20 17:23 ` rguenth at gcc dot gnu dot org
  2005-12-20 17:24 ` [Bug middle-end/24306] [3.4/4.0 " rguenth at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2005-12-20 17:23 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from rguenth at gcc dot gnu dot org  2005-12-20 17:23 -------
Subject: Bug 24306

Author: rguenth
Date: Tue Dec 20 17:23:12 2005
New Revision: 108857

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108857
Log:
2005-12-20  Richard Guenther  <rguenther@suse.de>

        PR middle-end/24306
        * builtins.c (std_gimplify_va_arg_expr): Do not align
        va frame for zero sized types.
        * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.

        * gcc.target/i386/pr24306.c

Added:
    branches/gcc-4_1-branch/gcc/testsuite/gcc.target/i386/pr24306.c
Modified:
    branches/gcc-4_1-branch/gcc/ChangeLog
    branches/gcc-4_1-branch/gcc/builtins.c
    branches/gcc-4_1-branch/gcc/config/i386/i386.c
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [3.4/4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2005-12-20 17:23 ` [Bug middle-end/24306] [3.4/4.0/4.1 " rguenth at gcc dot gnu dot org
@ 2005-12-20 17:24 ` rguenth at gcc dot gnu dot org
  2006-02-03 12:35 ` rguenth at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2005-12-20 17:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from rguenth at gcc dot gnu dot org  2005-12-20 17:24 -------
Fixed on head and 4.1.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|3.4.0 4.0.0 4.1.0           |3.4.0 4.0.0
      Known to work|3.3.3 4.2.0                 |3.3.3 4.2.0 4.1.0
            Summary|[3.4/4.0/4.1 Regression]    |[3.4/4.0 Regression] va_arg
                   |va_arg gets confused when   |gets confused when skipping
                   |skipping over certain zero- |over certain zero-sized
                   |sized types with -msse      |types with -msse


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [3.4/4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2005-12-20 17:24 ` [Bug middle-end/24306] [3.4/4.0 " rguenth at gcc dot gnu dot org
@ 2006-02-03 12:35 ` rguenth at gcc dot gnu dot org
  2006-03-11  3:22 ` mmitchel at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-02-03 12:35 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from rguenth at gcc dot gnu dot org  2006-02-03 12:35 -------
Not working on a backport.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|rguenth at gcc dot gnu dot  |unassigned at gcc dot gnu
                   |org                         |dot org
             Status|ASSIGNED                    |NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [3.4/4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2006-02-03 12:35 ` rguenth at gcc dot gnu dot org
@ 2006-03-11  3:22 ` mmitchel at gcc dot gnu dot org
  2007-02-03 15:46 ` [Bug middle-end/24306] [4.0 " gdr at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-03-11  3:22 UTC (permalink / raw)
  To: gcc-bugs



-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.0.3                       |4.0.4


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2006-03-11  3:22 ` mmitchel at gcc dot gnu dot org
@ 2007-02-03 15:46 ` gdr at gcc dot gnu dot org
  2007-11-07  1:06 ` mrs at apple dot com
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: gdr at gcc dot gnu dot org @ 2007-02-03 15:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from gdr at gcc dot gnu dot org  2007-02-03 15:46 -------
Fixed in GCC-4.1.0 and higher.


-- 

gdr at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|4.0.4                       |4.1.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2007-02-03 15:46 ` [Bug middle-end/24306] [4.0 " gdr at gcc dot gnu dot org
@ 2007-11-07  1:06 ` mrs at apple dot com
  2007-12-21 20:45 ` howarth at nitro dot med dot uc dot edu
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: mrs at apple dot com @ 2007-11-07  1:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from mrs at apple dot com  2007-11-07 01:06 -------
This patch is wrong.  See http://gcc.gnu.org/PR34010 for details.


-- 

mrs at apple dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mrs at apple dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2007-11-07  1:06 ` mrs at apple dot com
@ 2007-12-21 20:45 ` howarth at nitro dot med dot uc dot edu
  2007-12-22 16:42 ` howarth at nitro dot med dot uc dot edu
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2007-12-21 20:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from howarth at nitro dot med dot uc dot edu  2007-12-21 20:45 -------
Reversing the change...

http://gcc.gnu.org/viewcvs/trunk/gcc/builtins.c?r1=108629&r2=108854&pathrev=108854

reduces the failures at -m64 on powerpc-apple-darwin9 from...

Running
/sw/src/fink.build/gcc43-4.2.999-20071219/gcc-4.3-20071219/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp
...
FAIL: tmpdir-gcc.dg-struct-layout-1/t001 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t003 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t005 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t006 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t008 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t016 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t024 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t026 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t028 c_compat_x_tst.o-c_compat_y_tst.o
execute 

...to...

Running
/sw/src/fink.build/gcc43-4.2.999-20071219/gcc-4.3-20071219/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp
...
FAIL: tmpdir-gcc.dg-struct-layout-1/t003 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t005 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t008 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t016 c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: tmpdir-gcc.dg-struct-layout-1/t026 c_compat_x_tst.o-c_compat_y_tst.o
execute 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2007-12-21 20:45 ` howarth at nitro dot med dot uc dot edu
@ 2007-12-22 16:42 ` howarth at nitro dot med dot uc dot edu
  2007-12-22 16:56 ` howarth at nitro dot med dot uc dot edu
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2007-12-22 16:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from howarth at nitro dot med dot uc dot edu  2007-12-22 16:41 -------
For tmpdir-gcc.dg-struct-layout-1/t003 c_compat_x_tst.o-c_compat_y_tst.o on
powerpc-apple-darwin9 at -m64, the two lines in t003_test.h that cause the
failure are...

T(693,double atal2 a;Tal16long b;short int
c;struct{}d;,F(693,a,-9109.968750,89665.703125)F(693,b,-2780362564512530142LL,-1882493019100008206LL)F(693,c,29451,-6341))

and

T(760,float a;long double b;unsigned long int c;signed char
d;,F(760,a,-218391.812500,-167965.062500)F(760,b,-122404.406250,-90172.859375)F(760,c,2933687826322174624ULL,14862826394269793540ULL)F(760,d,55,64))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2007-12-22 16:42 ` howarth at nitro dot med dot uc dot edu
@ 2007-12-22 16:56 ` howarth at nitro dot med dot uc dot edu
  2007-12-22 17:16 ` howarth at nitro dot med dot uc dot edu
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2007-12-22 16:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from howarth at nitro dot med dot uc dot edu  2007-12-22 16:56 -------
For tmpdir-gcc.dg-struct-layout-1/t005 c_compat_x_tst.o-c_compat_y_tst.o on
powerpc-apple-darwin9 at -m64, the line in t005_test.h that causes the testcase
failure is...

T(998,df a;Talllong b:BQN(20);long long int c:BQN(1);TE4 d:19;long int
e;,F(998,a,140017.484375,-160009.218750)B(998,b,-303431,345440)B(998,c,0,0)B(998,d,e4_253,e4_2)F(998,e,3562377756672343063LL,5761410617366885841LL))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (15 preceding siblings ...)
  2007-12-22 16:56 ` howarth at nitro dot med dot uc dot edu
@ 2007-12-22 17:16 ` howarth at nitro dot med dot uc dot edu
  2007-12-22 17:37 ` howarth at nitro dot med dot uc dot edu
  2007-12-22 17:51 ` howarth at nitro dot med dot uc dot edu
  18 siblings, 0 replies; 22+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2007-12-22 17:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from howarth at nitro dot med dot uc dot edu  2007-12-22 17:16 -------
For tmpdir-gcc.dg-struct-layout-1/t008 c_compat_x_tst.o-c_compat_y_tst.o on
powerpc-apple-darwin9 at -m64, the failing line in t008_test.h is...

T(1234,double a;signed char atal16 b;union{unsigned int d;struct{}e;}c;short
int f;unsigned char
g;,F(1234,a,-125234.421875,-6063.015625)F(1234,b,-105,88)F(1234,c.d,3504478143U,3116938342U)F(1234,f,-15109,-23068)F(1234,g,236U,127U))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (16 preceding siblings ...)
  2007-12-22 17:16 ` howarth at nitro dot med dot uc dot edu
@ 2007-12-22 17:37 ` howarth at nitro dot med dot uc dot edu
  2007-12-22 17:51 ` howarth at nitro dot med dot uc dot edu
  18 siblings, 0 replies; 22+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2007-12-22 17:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from howarth at nitro dot med dot uc dot edu  2007-12-22 17:37 -------
For tmpdir-gcc.dg-struct-layout-1/t016 c_compat_x_tst.o-c_compat_y_tst.o on
powerpc-apple-darwin9 at -m64, the failing line in t016_test.h is...

T(1604,char a;TE7 b;enum E6 c;unsigned int d;long int e;char f[6];float g;short
int atal16 h;int *
i;,F(1604,a,76U,30U)F(1604,b,e7_m2147483647,e7_m2147483645)F(1604,c,e6_2,e6_2)F(1604,d,3007045619U,3425526240U)F(1604,e,7127725064803830888LL,2212588498547332024LL)F(1604,f[4],64U,30U)F(1604,g,-67359.484375,-251776.203125)F(1604,h,17064,8859)F(1604,i,(int
*)&intarray[89], (int *)&intarray[249]))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
  2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
                   ` (17 preceding siblings ...)
  2007-12-22 17:37 ` howarth at nitro dot med dot uc dot edu
@ 2007-12-22 17:51 ` howarth at nitro dot med dot uc dot edu
  18 siblings, 0 replies; 22+ messages in thread
From: howarth at nitro dot med dot uc dot edu @ 2007-12-22 17:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from howarth at nitro dot med dot uc dot edu  2007-12-22 17:51 -------
For tmpdir-gcc.dg-struct-layout-1/t026 c_compat_x_tst.o-c_compat_y_tst.o on
powerpc-apple-darwin9 at -m64, the failing line in t026_test.h is...

T(2468,float a;long double b;Tchar c;Tal8llong
d;,F(2468,a,3100.906250,83925.484375)F(2468,b,-156603.906250,244908.156250)F(2468,c,99U,35U)F(2468,d,5510104998541940327LL,8962187912153613792LL))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
       [not found] <bug-24306-4@http.gcc.gnu.org/bugzilla/>
  2012-02-07 19:15 ` rsandifo at gcc dot gnu.org
@ 2015-10-16  8:24 ` rguenth at gcc dot gnu.org
  1 sibling, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-10-16  8:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306
Bug 24306 depends on bug 34010, which changed state.

Bug 34010 Summary: [4.9 Regression] ppc64 bad stdargs codegen for zero sized objects
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=34010

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|---                         |FIXED


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug middle-end/24306] [4.0 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse
       [not found] <bug-24306-4@http.gcc.gnu.org/bugzilla/>
@ 2012-02-07 19:15 ` rsandifo at gcc dot gnu.org
  2015-10-16  8:24 ` rguenth at gcc dot gnu.org
  1 sibling, 0 replies; 22+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2012-02-07 19:15 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24306

--- Comment #19 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 2012-02-07 19:15:15 UTC ---
Author: rsandifo
Date: Tue Feb  7 19:15:10 2012
New Revision: 183977

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=183977
Log:
gcc/
    PR middle-end/24306
    * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
    (mips_gimplify_va_arg_expr): Call it instead of
    std_gimplify_va_arg_expr.

gcc/testsuite/
    PR middle-end/24306
    PR target/52154
    * lib/target-supports.exp (check_effective_target_mips_eabi): New.
    * gcc.target/mips/va-arg-1.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/mips/va-arg-1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/mips/mips.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/lib/target-supports.exp


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2015-10-16  8:24 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-10-11 12:01 [Bug target/24306] New: va_arg gets confused when skipping over certain zero-sized types bje at gcc dot gnu dot org
2005-10-11 13:34 ` [Bug target/24306] " pinskia at gcc dot gnu dot org
2005-10-11 14:02 ` bje at gcc dot gnu dot org
2005-10-11 14:09 ` [Bug target/24306] [3.4/4.0/4.1 Regression] va_arg gets confused when skipping over certain zero-sized types with -msse pinskia at gcc dot gnu dot org
2005-10-31  6:10 ` mmitchel at gcc dot gnu dot org
2005-12-19 11:34 ` [Bug target/24306] [3.4/4.0/4.1/4.2 " rguenth at gcc dot gnu dot org
2005-12-19 11:40 ` [Bug middle-end/24306] " rguenth at gcc dot gnu dot org
2005-12-20 16:20 ` rguenth at gcc dot gnu dot org
2005-12-20 17:23 ` [Bug middle-end/24306] [3.4/4.0/4.1 " rguenth at gcc dot gnu dot org
2005-12-20 17:24 ` [Bug middle-end/24306] [3.4/4.0 " rguenth at gcc dot gnu dot org
2006-02-03 12:35 ` rguenth at gcc dot gnu dot org
2006-03-11  3:22 ` mmitchel at gcc dot gnu dot org
2007-02-03 15:46 ` [Bug middle-end/24306] [4.0 " gdr at gcc dot gnu dot org
2007-11-07  1:06 ` mrs at apple dot com
2007-12-21 20:45 ` howarth at nitro dot med dot uc dot edu
2007-12-22 16:42 ` howarth at nitro dot med dot uc dot edu
2007-12-22 16:56 ` howarth at nitro dot med dot uc dot edu
2007-12-22 17:16 ` howarth at nitro dot med dot uc dot edu
2007-12-22 17:37 ` howarth at nitro dot med dot uc dot edu
2007-12-22 17:51 ` howarth at nitro dot med dot uc dot edu
     [not found] <bug-24306-4@http.gcc.gnu.org/bugzilla/>
2012-02-07 19:15 ` rsandifo at gcc dot gnu.org
2015-10-16  8:24 ` rguenth at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).