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 libstdc++/68739] FAIL: 30_threads/call_once/constexpr.cc (test for excess errors)


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

--- Comment #3 from John David Anglin <danglin at gcc dot gnu.org> ---
As far as I can tell, the definition for PTHREAD_MUTEX_INITIALIZE only involves
constant elements:

#define PTHREAD_MUTEX_INITIALIZER  {                                    \
        __PTHREAD_MUTEX_VALID, 0,                                       \
        (PTHREAD_MUTEX_DEFAULT | PTHREAD_PROCESS_PRIVATE),              \
        __SPNLCK_INITIALIZER,                                           \
        0, 0, -1, 0,                                                    \
        0, __LWP_MTX_VALID, 0, 1, 1, 1, 1,                              \
        0, 0                                                            \
}

__GTHREAD_MUTEX_INIT is defined.

We have the following declaration for struct pthread_mutex:

#ifdef __LP64__
#define __MPOINTER              void    *m_ptr
#define __POINTER_SET           ((void *) 1LL)
#else
#define __MPOINTER              int     m_pad; \
                                void    *m_ptr
#define __POINTER_SET           0, ((void *) 1L)
#endif

struct pthread_mutex {
        short           m_short[2];
        int             m_int;
        int             m_int1[4];
                        __MPOINTER;
        int             m_int2[2];
        int             m_int3[4];
        short           m_short2[2];
        int             m_int4[5];
        int             m_int5[2];
};

We have:

#define __PTHREAD_MUTEX_VALID           0x36
#define __LWP_MTX_VALID                 2368
#define PTHREAD_MUTEX_DEFAULT           0x80
#define PTHREAD_PROCESS_PRIVATE         0x1

and

#define __SPNLCK_INITIALIZER                                            \
        1, 1, 1, 1,                                                     \
        __POINTER_SET,                                                  \
        1,                                                              \
        0

I guess the problem is the shorts.  But we don't have a literal suffix for it.

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