// { dg-do assemble }
|
// { dg-do assemble }
|
|
|
// Copyright (C) 2001 Free Software Foundation, Inc.
|
// Copyright (C) 2001 Free Software Foundation, Inc.
|
// Contributed by Nathan Sidwell 6 Jun 2001
|
// Contributed by Nathan Sidwell 6 Jun 2001
|
|
|
// Bug 2914. New types can be created in a static member
|
// Bug 2914. New types can be created in a static member
|
// initializer. These should not be injected into the member's class's
|
// initializer. These should not be injected into the member's class's
|
// scope.
|
// scope.
|
|
|
class DoubleSupport
|
class DoubleSupport
|
{
|
{
|
public:
|
public:
|
static void toDouble();
|
static void toDouble();
|
|
|
static const double s_NaN;
|
static const double s_NaN;
|
static const double s_positiveInfinity;
|
static const double s_positiveInfinity;
|
static const double s_negativeInfinity;
|
static const double s_negativeInfinity;
|
static const double s_positiveZero;
|
static const double s_positiveZero;
|
static const double s_negativeZero;
|
static const double s_negativeZero;
|
static const unsigned long* s_NaNFirstDWORD;
|
static const unsigned long* s_NaNFirstDWORD;
|
static const unsigned long* s_NaNSecondDWORD;
|
static const unsigned long* s_NaNSecondDWORD;
|
};
|
};
|
|
|
const double DoubleSupport::s_positiveInfinity =
|
const double DoubleSupport::s_positiveInfinity =
|
(__extension__ ((union { unsigned char __c[8]; double __d; })
|
(__extension__ ((union { unsigned char __c[8]; double __d; })
|
{ __c: { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f } }).__d);
|
{ __c: { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f } }).__d);
|
|
|
struct other
|
struct other
|
{
|
{
|
};
|
};
|
|
|
|
|
void
|
void
|
DoubleSupport::toDouble()
|
DoubleSupport::toDouble()
|
{
|
{
|
}
|
}
|
|
|