public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/63732] New: constexpr is not constant expression, when cast member data pointer to data parent type
@ 2014-11-04  9:37 pavel.kral at omsquare dot com
  2014-11-04 20:44 ` [Bug c++/63732] " daniel.kruegler at googlemail dot com
  2014-11-04 21:37 ` pavel.kral at omsquare dot com
  0 siblings, 2 replies; 3+ messages in thread
From: pavel.kral at omsquare dot com @ 2014-11-04  9:37 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 63732
           Summary: constexpr is not constant expression, when cast member
                    data pointer to data parent type
           Product: gcc
           Version: 4.9.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pavel.kral at omsquare dot com

The code bellow returns error on 4.9.2 (and cause ICE on 4.8.x) tested on
Linux, MinGW and arm-none-eabi. While 'xxx' compiles just fine, 'yyy' which is
casted to parent type doesn't. Just for clarification static const array
'm_members' compiles fine and generate values at compile time in .rodata
section as expected (arm-none-eabi).

class PropertyBase {};
class Number : PropertyBase {};

class ComplexProperty : PropertyBase {
public:
    Number m_firstNumber;
    static PropertyBase ComplexProperty::* const m_members[];

    // compiles fine
    static constexpr auto xxx = (Number
ComplexProperty::*)&ComplexProperty::m_firstNumber;

    //  error: '(PropertyBase
ComplexProperty::*)&ComplexProperty::m_firstNumber' is not a constant
expression
    static constexpr auto yyy = (PropertyBase
ComplexProperty::*)&ComplexProperty::m_firstNumber;
};

// compiles fine
PropertyBase ComplexProperty::* const ComplexProperty::m_members[] = {
        (PropertyBase ComplexProperty::*) &ComplexProperty::m_firstNumber
};

static ComplexProperty person;

int main() {

}


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

end of thread, other threads:[~2014-11-04 21:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-04  9:37 [Bug c++/63732] New: constexpr is not constant expression, when cast member data pointer to data parent type pavel.kral at omsquare dot com
2014-11-04 20:44 ` [Bug c++/63732] " daniel.kruegler at googlemail dot com
2014-11-04 21:37 ` pavel.kral at omsquare dot com

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).