public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug other/107665] New: [13 regression] g++.dg/cpp23/ext-floating1.C fails after r13-3387-g79d38dd46e6b07
@ 2022-11-13  5:00 seurer at gcc dot gnu.org
  2022-11-13  7:47 ` [Bug other/107665] " pinskia at gcc dot gnu.org
  2022-11-15 14:27 ` [Bug target/107665] " jakub at gcc dot gnu.org
  0 siblings, 2 replies; 3+ messages in thread
From: seurer at gcc dot gnu.org @ 2022-11-13  5:00 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 107665
           Summary: [13 regression] g++.dg/cpp23/ext-floating1.C fails
                    after r13-3387-g79d38dd46e6b07
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: other
          Assignee: unassigned at gcc dot gnu.org
          Reporter: seurer at gcc dot gnu.org
  Target Milestone: ---

Tried g:79d38dd46e6b07e5a90ab25df1438eb0918eb475, r13-3387-g79d38dd46e6b07
make  -k check-gcc RUNTESTFLAGS="dg.exp=g++.dg/cpp23/ext-floating1.C"
FAIL: g++.dg/cpp23/ext-floating1.C  -std=gnu++23 (test for excess errors)
# of unexpected failures        1

This is failing on powerpc64 when the compiler is built with 
--with-long-double-format=ieee.

Excess errors:
/home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/cpp23/ext-floating1.C:27:54:
error: static assertion failed
/home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/cpp23/ext-floating1.C:28:54:
error: static assertion failed
/home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/cpp23/ext-floating1.C:29:61:
error: static assertion failed
/home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/cpp23/ext-floating1.C:30:61:
error: static assertion failed


The failures are here:

#ifdef __SIZEOF_FLOAT128__
static_assert (is_same<decltype (0.0q), __float128>::value);
static_assert (is_same<decltype (0.0Q), __float128>::value);
static_assert (is_same<decltype (0.0q + 0.0q), __float128>::value);
static_assert (is_same<decltype (0.0Q + 0.0Q), __float128>::value);
#endif


commit 79d38dd46e6b07e5a90ab25df1438eb0918eb475 (HEAD)
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Oct 19 18:55:46 2022 +0200

    testsuite: Default make check-g++ vs. tests for newest C++ standard

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

* [Bug other/107665] g++.dg/cpp23/ext-floating1.C fails after r13-3387-g79d38dd46e6b07
  2022-11-13  5:00 [Bug other/107665] New: [13 regression] g++.dg/cpp23/ext-floating1.C fails after r13-3387-g79d38dd46e6b07 seurer at gcc dot gnu.org
@ 2022-11-13  7:47 ` pinskia at gcc dot gnu.org
  2022-11-15 14:27 ` [Bug target/107665] " jakub at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-11-13  7:47 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
r13-3387-g79d38dd46e6b07 just made the testcase actually run which it was not
doing previously.

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

* [Bug target/107665] g++.dg/cpp23/ext-floating1.C fails after r13-3387-g79d38dd46e6b07
  2022-11-13  5:00 [Bug other/107665] New: [13 regression] g++.dg/cpp23/ext-floating1.C fails after r13-3387-g79d38dd46e6b07 seurer at gcc dot gnu.org
  2022-11-13  7:47 ` [Bug other/107665] " pinskia at gcc dot gnu.org
@ 2022-11-15 14:27 ` jakub at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-11-15 14:27 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Strange.
When I try with a cross to powerpc64le-linux simplified:
namespace std
{
  template<typename T, T v> struct integral_constant {
    static constexpr T value = v;
  };
  typedef integral_constant<bool, false> false_type;
  typedef integral_constant<bool, true> true_type;
  template<class T, class U>
  struct is_same : std::false_type {};
  template <class T>
  struct is_same<T, T> : std::true_type {};
}

static_assert (std::is_same<decltype (0.0q), __float128>::value);
out of this, I get with any of
-std=gnu++23 -mlong-double-{64,128 -mabi={ieee,ibm}longdouble}
a successful compilation.
So, what type do you get instead?
static machine_mode
rs6000_c_mode_for_suffix (char suffix)
{
  if (TARGET_FLOAT128_TYPE)
    {
      if (suffix == 'q' || suffix == 'Q')
        return (FLOAT128_IEEE_P (TFmode)) ? TFmode : KFmode;

      /* At the moment, we are not defining a suffix for IBM extended double.
         If/when the default for -mabi=ieeelongdouble is changed, and we want
         to support __ibm128 constants in legacy library code, we may need to
         re-evalaute this decision.  Currently, c-lex.cc only supports 'w' and
         'q' as machine dependent suffixes.  The x86_64 port uses 'w' for
         __float80 constants.  */
    }

  return VOIDmode;
}   
should return TFmode or KFmode and the c-family code should prefer
float128t_type_node over float128_type_node for the q/w suffixes.

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

end of thread, other threads:[~2022-11-15 14:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-13  5:00 [Bug other/107665] New: [13 regression] g++.dg/cpp23/ext-floating1.C fails after r13-3387-g79d38dd46e6b07 seurer at gcc dot gnu.org
2022-11-13  7:47 ` [Bug other/107665] " pinskia at gcc dot gnu.org
2022-11-15 14:27 ` [Bug target/107665] " jakub 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).