This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/58429] New: _Decimal64 support is broken on powerpc64 with the mode32 ABI (-m32 -mpowerpc64)


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

            Bug ID: 58429
           Summary: _Decimal64 support is broken on powerpc64 with the
                    mode32 ABI (-m32 -mpowerpc64)
           Product: gcc
           Version: 4.7.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vincent-gcc at vinc17 dot net

On gcc110.fsffrance.org:

$ cat ./decimal64.c
#include <stdio.h>
int main(void)
{
  _Decimal64 x = 1;
  if (x != x)
    {
      printf ("Error!\n");
      return 1;
    }
  else
    {
      printf ("OK\n");
      return 0;
    }
}

$ gcc -Wall -std=gnu99 -m32 -mpowerpc64 decimal64.c -o decimal64 -O
$ ./decimal64
OK
$ gcc -Wall -std=gnu99 -m32 -mpowerpc64 decimal64.c -o decimal64
$ ./decimal64
Error!

(The lack of error with -O is due to obvious optimization; a "volatile" on the
variable makes the error appear in every case.)

The problem doesn't appear with -m32 alone or -mpowerpc64 alone. Both are
needed to make it appear.

$ gcc --version
gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]