public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression
@ 2015-04-08 10:59 redi at gcc dot gnu.org
  2015-04-08 11:02 ` [Bug c++/65695] [4.9/5 Regression] NSDMI " redi at gcc dot gnu.org
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: redi at gcc dot gnu.org @ 2015-04-08 10:59 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 65695
           Summary: [4.9/5 Regression] calling constexpr constructor with
                    pointer-to-member is not a constant expression
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org

From https://gcc.gnu.org/ml/gcc-help/2015-04/msg00034.html

template <typename T>
struct Bar
{
    using MemberFuncT = int (T::*)();

    MemberFuncT h_;
    constexpr Bar(MemberFuncT h) : h_{h}
    {
    }
};

struct Foo
{
    int test()
    {
        return -1;
    }

    // this causes the brace-enclosed initializer error message:
    static constexpr Bar<Foo> bar = Bar<Foo>(&Foo::test);

    // but this line does not:
    // static constexpr Bar<Foo> bar = Bar<Foo>(nullptr);

    // this line also causes the error message, unless you remove the
    // explict constructor in Bar.
    // static constexpr Bar<Foo> bar = {&Foo::test};
};

constexpr Bar<Foo> Foo::bar;

// the line below does not cause any problems, either:
// static constexpr Bar<Foo> bar = Bar<Foo>(&Foo::test);

int main(void)
{
    Foo f;
    return (f.*(Foo::bar.h_))();
}

c.cc:20:56: error: ‘Bar<Foo>{&Foo::test}’ is not a constant expression
     static constexpr Bar<Foo> bar = Bar<Foo>(&Foo::test);
                                                        ^

Clang and EDG accept the code.
>From gcc-bugs-return-482988-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Wed Apr 08 11:01:58 2015
Return-Path: <gcc-bugs-return-482988-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 24805 invoked by alias); 8 Apr 2015 11:01:58 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 24701 invoked by uid 48); 8 Apr 2015 11:01:54 -0000
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/65689] [5 Regression][AArch64] S constraint fails for inline asm at -O0
Date: Wed, 08 Apr 2015 11:01:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: target
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords: rejects-valid
X-Bugzilla-Severity: minor
X-Bugzilla-Who: jakub at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 5.0
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: cc
Message-ID: <bug-65689-4-XBZcc5CYpa@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-65689-4@http.gcc.gnu.org/bugzilla/>
References: <bug-65689-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-04/txt/msg00540.txt.bz2
Content-length: 1195

https://gcc.gnu.org/bugzilla/show_bug.cgi?ide689

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Adding a hack where stmt.c (parse_input_constraint) so that it handles
case 'S':
the same as say case 'i':
fixes the test, so it is all about whether the expander and middle-end thinks
that "S" constraint allows_reg || allows_mem (right now both, ideally none).
So, to fix this, perhaps hack up genpreds.c, so that it generates another
function or two which returns true if the constraint can be easily proved not
to allow reg (or not to allow mem).
Say "S" is:
  (and (match_code "const,symbol_ref,label_ref")
       (match_test "aarch64_symbolic_address_p (op)")))
and so genpreds can conservatively assume match_test can return anything, but
match_code clearly doesn't satisfy a reg/subreg nor mem (requires something
other), so process_{input,output}_constraint should be able to safely set both
of those to false.


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

* [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
@ 2015-04-08 11:02 ` redi at gcc dot gnu.org
  2015-04-08 11:04 ` redi at gcc dot gnu.org
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: redi at gcc dot gnu.org @ 2015-04-08 11:02 UTC (permalink / raw)
  To: gcc-bugs

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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-04-08
            Summary|[4.9/5 Regression] calling  |[4.9/5 Regression] NSDMI
                   |constexpr constructor with  |calling constexpr
                   |pointer-to-member is not a  |constructor with
                   |constant expression         |pointer-to-member is not a
                   |                            |constant expression
     Ever confirmed|0                           |1

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Reduced:

struct Foo;

struct Bar
{
    using MemberT = int Foo::*;

    MemberT h_;

    constexpr Bar(MemberT h) : h_{h}
    {
    }
};

struct Foo
{
    int test = 0;

    static constexpr Bar bar {&Foo::test};
};

constexpr Bar Foo::bar;


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

* [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
  2015-04-08 11:02 ` [Bug c++/65695] [4.9/5 Regression] NSDMI " redi at gcc dot gnu.org
@ 2015-04-08 11:04 ` redi at gcc dot gnu.org
  2015-04-08 11:08 ` redi at gcc dot gnu.org
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: redi at gcc dot gnu.org @ 2015-04-08 11:04 UTC (permalink / raw)
  To: gcc-bugs

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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |4.8.3

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
4.8 gives an ICE on my reduced testcase in comment 1, but compiles the original
testcase in comment 0 OK.


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

* [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
  2015-04-08 11:02 ` [Bug c++/65695] [4.9/5 Regression] NSDMI " redi at gcc dot gnu.org
  2015-04-08 11:04 ` redi at gcc dot gnu.org
@ 2015-04-08 11:08 ` redi at gcc dot gnu.org
  2015-04-08 11:10 ` rguenth at gcc dot gnu.org
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: redi at gcc dot gnu.org @ 2015-04-08 11:08 UTC (permalink / raw)
  To: gcc-bugs

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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |4.9.2, 5.0

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
4.8 ICEs when using a pointer-to-data-member but not with
pointer-to-member-function, so here is a slightly less reduced version that
compiles with 4.8:

struct Foo;

struct Bar
{
    using MemberFuncT = int (Foo::*)();

    MemberFuncT h_;
    constexpr Bar(MemberFuncT h) : h_{h}
    {
    }
};

struct Foo
{
    int test()
    {
        return -1;
    }

    static constexpr Bar bar {&Foo::test};
};

constexpr Bar Foo::bar;


With 4.9.2:

c.cc:20:41: error: ‘const Bar{&Foo::test}’ is not a constant expression
     static constexpr Bar bar {&Foo::test};
                                         ^

With 5.0:

c.cc:20:41: error: ‘Bar{&Foo::test}’ is not a constant expression
     static constexpr Bar bar {&Foo::test};
                                         ^
>From gcc-bugs-return-482994-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Wed Apr 08 11:09:32 2015
Return-Path: <gcc-bugs-return-482994-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 44460 invoked by alias); 8 Apr 2015 11:09:32 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 44380 invoked by uid 48); 8 Apr 2015 11:09:26 -0000
From: "trippels at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug rtl-optimization/65693] [4.8/4.9/5 Regression] ICE in assign_by_spills, at lra-assigns.c:1419
Date: Wed, 08 Apr 2015 11:09:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: rtl-optimization
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords: ra
X-Bugzilla-Severity: normal
X-Bugzilla-Who: trippels at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.8.5
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: cc
Message-ID: <bug-65693-4-2oJP15NJXd@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-65693-4@http.gcc.gnu.org/bugzilla/>
References: <bug-65693-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-04/txt/msg00546.txt.bz2
Content-length: 417

https://gcc.gnu.org/bugzilla/show_bug.cgi?ide693

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |segher at gcc dot gnu.org

--- Comment #9 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Started with r218248.


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

* [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2015-04-08 11:08 ` redi at gcc dot gnu.org
@ 2015-04-08 11:10 ` rguenth at gcc dot gnu.org
  2015-04-09  9:15 ` rguenth at gcc dot gnu.org
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-04-08 11:10 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.9.3


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

* [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2015-04-08 11:10 ` rguenth at gcc dot gnu.org
@ 2015-04-09  9:15 ` rguenth at gcc dot gnu.org
  2015-04-10 10:50 ` jaehnesn at gmx dot de
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-04-09  9:15 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


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

* [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2015-04-09  9:15 ` rguenth at gcc dot gnu.org
@ 2015-04-10 10:50 ` jaehnesn at gmx dot de
  2015-04-10 11:18 ` jaehnesn at gmx dot de
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jaehnesn at gmx dot de @ 2015-04-10 10:50 UTC (permalink / raw)
  To: gcc-bugs

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

Sebastian Jähne <jaehnesn at gmx dot de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jaehnesn at gmx dot de

--- Comment #4 from Sebastian Jähne <jaehnesn at gmx dot de> ---
(In reply to Jonathan Wakely from comment #0)
> From https://gcc.gnu.org/ml/gcc-help/2015-04/msg00034.html
> 
> template <typename T>
> struct Bar
> {
>     using MemberFuncT = int (T::*)();
> 
>     MemberFuncT h_;
>     constexpr Bar(MemberFuncT h) : h_{h}
>     {
>     }
> };
> 
> struct Foo
> {
>     int test()
>     {
>         return -1;
>     }
> 
>     // this causes the brace-enclosed initializer error message:
>     static constexpr Bar<Foo> bar = Bar<Foo>(&Foo::test);
> 
>     // but this line does not:
>     // static constexpr Bar<Foo> bar = Bar<Foo>(nullptr);
> 
>     // this line also causes the error message, unless you remove the
>     // explict constructor in Bar.
>     // static constexpr Bar<Foo> bar = {&Foo::test};
> };
> 
> constexpr Bar<Foo> Foo::bar;
> 
> // the line below does not cause any problems, either:
> // static constexpr Bar<Foo> bar = Bar<Foo>(&Foo::test);
> 
> int main(void)
> {
>     Foo f;
>     return (f.*(Foo::bar.h_))();
> }
> 
> c.cc:20:56: error: ‘Bar<Foo>{&Foo::test}’ is not a constant expression
>      static constexpr Bar<Foo> bar = Bar<Foo>(&Foo::test);
>                                                         ^
> 
> Clang and EDG accept the code.

If you change your code in the following manner, it works:

template <typename T>
struct Bar
{
    using MemberFuncT = int (*)();

    MemberFuncT h_;
    constexpr Bar(MemberFuncT h) : h_{h}
    {
    }
};

struct Foo
{
    static int test()
    {
        return -1;
    }

    static constexpr Bar<Foo> bar = Bar<Foo>(&Foo::test);
};

constexpr Bar<Foo> Foo::bar;

int main(void)
{
    Foo f;
    return (f.bar.h_)();
}

You shouldn't be able to declare a static variable which has access to a
non-static member function. I would call this a bug in CLANG and EDG.
>From gcc-bugs-return-483276-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Apr 10 10:55:21 2015
Return-Path: <gcc-bugs-return-483276-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 42824 invoked by alias); 10 Apr 2015 10:55:21 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 42783 invoked by uid 48); 10 Apr 2015 10:55:17 -0000
From: "redi at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
Date: Fri, 10 Apr 2015 10:55:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: c++
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords: rejects-valid
X-Bugzilla-Severity: normal
X-Bugzilla-Who: redi at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.9.3
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-65695-4-pEQU0NQIU9@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-65695-4@http.gcc.gnu.org/bugzilla/>
References: <bug-65695-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-04/txt/msg00828.txt.bz2
Content-length: 428

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

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Sebastian Jähne from comment #4)
> You shouldn't be able to declare a static variable which has access to a
> non-static member function. I would call this a bug in CLANG and EDG.

Why not? Taking the address of the member function (&Foo::test) doesn't require
an instance of the object.
>From gcc-bugs-return-483277-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Apr 10 11:01:11 2015
Return-Path: <gcc-bugs-return-483277-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 48607 invoked by alias); 10 Apr 2015 11:01:11 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 48306 invoked by uid 48); 10 Apr 2015 11:01:07 -0000
From: "jaehnesn at gmx dot de" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
Date: Fri, 10 Apr 2015 11:01:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: c++
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords: rejects-valid
X-Bugzilla-Severity: normal
X-Bugzilla-Who: jaehnesn at gmx dot de
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.9.3
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-65695-4-h2iMwslXfr@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-65695-4@http.gcc.gnu.org/bugzilla/>
References: <bug-65695-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-04/txt/msg00829.txt.bz2
Content-length: 670

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

--- Comment #6 from Sebastian Jähne <jaehnesn at gmx dot de> ---
(In reply to Jonathan Wakely from comment #5)
> (In reply to Sebastian Jähne from comment #4)
> > You shouldn't be able to declare a static variable which has access to a
> > non-static member function. I would call this a bug in CLANG and EDG.
> 
> Why not? Taking the address of the member function (&Foo::test) doesn't
> require an instance of the object.

It does. Member functions need an object in order to operate. Only static
member functions don't need an object (which is why you can invoke them like
Class::StaticMemberFunc()).
>From gcc-bugs-return-483278-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Apr 10 11:11:02 2015
Return-Path: <gcc-bugs-return-483278-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 7019 invoked by alias); 10 Apr 2015 11:11:02 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 6945 invoked by uid 48); 10 Apr 2015 11:10:58 -0000
From: "daniel.kruegler at googlemail dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
Date: Fri, 10 Apr 2015 11:11:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: c++
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords: rejects-valid
X-Bugzilla-Severity: normal
X-Bugzilla-Who: daniel.kruegler at googlemail dot com
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.9.3
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-65695-4-li5Kit2HCp@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-65695-4@http.gcc.gnu.org/bugzilla/>
References: <bug-65695-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-04/txt/msg00830.txt.bz2
Content-length: 563

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

--- Comment #7 from Daniel Krügler <daniel.kruegler at googlemail dot com> ---
(In reply to Sebastian Jähne from comment #6)
> It does. 

No, it doesn't.

> Member functions need an object in order to operate. 

It only needs an object, if the function is going to invoked, but this is not
happening here.

> Only static
> member functions don't need an object (which is why you can invoke them like
> Class::StaticMemberFunc()).

The object is not of relevance for the described example.
>From gcc-bugs-return-483279-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Apr 10 11:11:39 2015
Return-Path: <gcc-bugs-return-483279-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 10428 invoked by alias); 10 Apr 2015 11:11:38 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 8750 invoked by uid 48); 10 Apr 2015 11:11:34 -0000
From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/57796] AVX2 gather vectorization: code bloat and reduction of performance
Date: Fri, 10 Apr 2015 11:11:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: target
X-Bugzilla-Version: 4.9.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: rguenth at gcc dot gnu.org
X-Bugzilla-Status: UNCONFIRMED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-57796-4-vWS0pfvQe5@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-57796-4@http.gcc.gnu.org/bugzilla/>
References: <bug-57796-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-04/txt/msg00831.txt.bz2
Content-length: 322

https://gcc.gnu.org/bugzilla/show_bug.cgi?idW796

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
vect_model_load_cost has no special-casing of gathers thus it is probably
treated as having the same cost as a regular vector load.

Btw, having a small testcase for this particular bug would be nice.


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

* [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2015-04-10 10:50 ` jaehnesn at gmx dot de
@ 2015-04-10 11:18 ` jaehnesn at gmx dot de
  2015-04-10 11:34 ` daniel.kruegler at googlemail dot com
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jaehnesn at gmx dot de @ 2015-04-10 11:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Sebastian Jähne <jaehnesn at gmx dot de> ---
(In reply to Daniel Krügler from comment #7)
> (In reply to Sebastian Jähne from comment #6)
> > It does. 
> 
> No, it doesn't.
> 
> > Member functions need an object in order to operate. 
> 
> It only needs an object, if the function is going to invoked, but this is
> not happening here.
> 
> > Only static
> > member functions don't need an object (which is why you can invoke them like
> > Class::StaticMemberFunc()).
> 
> The object is not of relevance for the described example.

You are right when saying that simply taking an address of a member function
you don't need an object. However, please remember that you are using a
constexpr static member to store this address. Constexpr are evaluated at
compile time. Correct me if I'm wrong, but as far as I know, you can only take
the address of a member function at runtime.
>From gcc-bugs-return-483282-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Apr 10 11:24:47 2015
Return-Path: <gcc-bugs-return-483282-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 42180 invoked by alias); 10 Apr 2015 11:24:47 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 42116 invoked by uid 48); 10 Apr 2015 11:24:43 -0000
From: "yroux at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/65729] [5 Regression] ICE (in prohibited_class_reg_set_mode_p, at lra-constraints.c) on arm-linux-gnueabihf
Date: Fri, 10 Apr 2015 11:24:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: target
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords: ice-on-valid-code, ra
X-Bugzilla-Severity: normal
X-Bugzilla-Who: yroux at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P1
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 5.0
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: cc
Message-ID: <bug-65729-4-vb54I54VtN@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-65729-4@http.gcc.gnu.org/bugzilla/>
References: <bug-65729-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-04/txt/msg00834.txt.bz2
Content-length: 725

https://gcc.gnu.org/bugzilla/show_bug.cgi?ide729

Yvan Roux <yroux at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |yroux at gcc dot gnu.org

--- Comment #4 from Yvan Roux <yroux at gcc dot gnu.org> ---
For me the assertion in prohibited_class_reg_set_mode_p is not right, it checks
that set is a subset of reg_class_contents[rclass] and my understanding is that
it should be the opposite:

lra_assert (hard_reg_set_subset_p (reg_class_contents[rclass],set));

With this modification the test is fixed (full validation is ongoing).

Do I miss something Vlad ?


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

* [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2015-04-10 11:18 ` jaehnesn at gmx dot de
@ 2015-04-10 11:34 ` daniel.kruegler at googlemail dot com
  2015-04-10 12:02 ` jaehnesn at gmx dot de
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: daniel.kruegler at googlemail dot com @ 2015-04-10 11:34 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from Daniel Krügler <daniel.kruegler at googlemail dot com> ---
(In reply to Sebastian Jähne from comment #8)
> [..] However, please remember that you are using a
> constexpr static member to store this address. Constexpr are evaluated at
> compile time. 

Yes.

> Correct me if I'm wrong, but as far as I know, you can only
> take the address of a member function at runtime.

That is a wrong assumption. It is a valid constant expression to retrieve a
pointer-to-member address.
>From gcc-bugs-return-483289-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Apr 10 11:44:45 2015
Return-Path: <gcc-bugs-return-483289-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 63520 invoked by alias); 10 Apr 2015 11:44:45 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 63466 invoked by uid 48); 10 Apr 2015 11:44:42 -0000
From: "clyon at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/65710] [5 Regression] Thumb1 ICE caused by no register to spill
Date: Fri, 10 Apr 2015 11:44:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: target
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: clyon at gcc dot gnu.org
X-Bugzilla-Status: REOPENED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 5.0
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_status cf_reconfirmed_on resolution everconfirmed
Message-ID: <bug-65710-4-2w0EMaf7ky@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-65710-4@http.gcc.gnu.org/bugzilla/>
References: <bug-65710-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-04/txt/msg00841.txt.bz2
Content-length: 620

https://gcc.gnu.org/bugzilla/show_bug.cgi?ide710

clyon at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
   Last reconfirmed|                            |2015-04-10
         Resolution|FIXED                       |---
     Ever confirmed|0                           |1

--- Comment #9 from clyon at gcc dot gnu.org ---
I re-open the bug, since in the 4.9-branch the gcc.target/arm/pr65647-2.c test
now times out after this patch, on arm* targets.


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

* [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2015-04-10 11:34 ` daniel.kruegler at googlemail dot com
@ 2015-04-10 12:02 ` jaehnesn at gmx dot de
  2015-04-11 14:57 ` jason at gcc dot gnu.org
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jaehnesn at gmx dot de @ 2015-04-10 12:02 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from Sebastian Jähne <jaehnesn at gmx dot de> ---
(In reply to Daniel Krügler from comment #9)
> (In reply to Sebastian Jähne from comment #8)
> > [..] However, please remember that you are using a
> > constexpr static member to store this address. Constexpr are evaluated at
> > compile time. 
> 
> Yes.
> 
> > Correct me if I'm wrong, but as far as I know, you can only
> > take the address of a member function at runtime.
> 
> That is a wrong assumption. It is a valid constant expression to retrieve a
> pointer-to-member address.

I made this assumption on the fact that your code runs when not using a
constexpr. I will investigate the exact requirements for constexpr in the
standard and reply when I find something helpful.
>From gcc-bugs-return-483293-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Apr 10 12:04:05 2015
Return-Path: <gcc-bugs-return-483293-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 28141 invoked by alias); 10 Apr 2015 12:04:05 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 28097 invoked by uid 48); 10 Apr 2015 12:04:02 -0000
From: "redi at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
Date: Fri, 10 Apr 2015 12:04:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: c++
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords: rejects-valid
X-Bugzilla-Severity: normal
X-Bugzilla-Who: redi at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.9.3
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-65695-4-1PgDI823jJ@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-65695-4@http.gcc.gnu.org/bugzilla/>
References: <bug-65695-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-04/txt/msg00845.txt.bz2
Content-length: 257

https://gcc.gnu.org/bugzilla/show_bug.cgi?ide695

--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Please take the discussion somewhere else, it doesn't belong here. The testcase
in this bug report is valid code and should be accepted.


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

* [Bug c++/65695] [4.9/5 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2015-04-10 12:02 ` jaehnesn at gmx dot de
@ 2015-04-11 14:57 ` jason at gcc dot gnu.org
  2015-04-14 16:03 ` [Bug c++/65695] [4.9/5/6 " jason at gcc dot gnu.org
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2015-04-11 14:57 UTC (permalink / raw)
  To: gcc-bugs

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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |jason at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |jason at gcc dot gnu.org


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

* [Bug c++/65695] [4.9/5/6 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2015-04-11 14:57 ` jason at gcc dot gnu.org
@ 2015-04-14 16:03 ` jason at gcc dot gnu.org
  2015-04-22 20:53 ` jason at gcc dot gnu.org
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2015-04-14 16:03 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Tue Apr 14 16:02:41 2015
New Revision: 222097

URL: https://gcc.gnu.org/viewcvs?rev=222097&root=gcc&view=rev
Log:
    PR c++/65695
    * cvt.c (cp_fold_convert): Avoid wrapping PTRMEM_CST in NOP_EXPR.

Added:
    trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem4.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cvt.c


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

* [Bug c++/65695] [4.9/5/6 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2015-04-14 16:03 ` [Bug c++/65695] [4.9/5/6 " jason at gcc dot gnu.org
@ 2015-04-22 20:53 ` jason at gcc dot gnu.org
  2015-04-23 13:21 ` jason at gcc dot gnu.org
  2015-04-23 13:25 ` jason at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2015-04-22 20:53 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #13 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Wed Apr 22 20:53:02 2015
New Revision: 222339

URL: https://gcc.gnu.org/viewcvs?rev=222339&root=gcc&view=rev
Log:
    PR c++/65695
    * cvt.c (cp_fold_convert): Avoid wrapping PTRMEM_CST in NOP_EXPR.

Added:
    branches/gcc-5-branch/gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem4.C
Modified:
    branches/gcc-5-branch/gcc/cp/ChangeLog
    branches/gcc-5-branch/gcc/cp/cvt.c


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

* [Bug c++/65695] [4.9/5/6 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2015-04-22 20:53 ` jason at gcc dot gnu.org
@ 2015-04-23 13:21 ` jason at gcc dot gnu.org
  2015-04-23 13:25 ` jason at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2015-04-23 13:21 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #14 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Thu Apr 23 13:21:17 2015
New Revision: 222367

URL: https://gcc.gnu.org/viewcvs?rev=222367&root=gcc&view=rev
Log:
    PR c++/65695
    * cvt.c (cp_fold_convert): Avoid wrapping PTRMEM_CST in NOP_EXPR.

Added:
    branches/gcc-4_9-branch/gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem4.C
Modified:
    branches/gcc-4_9-branch/gcc/cp/ChangeLog
    branches/gcc-4_9-branch/gcc/cp/cvt.c


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

* [Bug c++/65695] [4.9/5/6 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
  2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
                   ` (12 preceding siblings ...)
  2015-04-23 13:21 ` jason at gcc dot gnu.org
@ 2015-04-23 13:25 ` jason at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2015-04-23 13:25 UTC (permalink / raw)
  To: gcc-bugs

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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #15 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed for 4.9.3/5.2/6.


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

end of thread, other threads:[~2015-04-23 13:25 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-08 10:59 [Bug c++/65695] New: [4.9/5 Regression] calling constexpr constructor with pointer-to-member is not a constant expression redi at gcc dot gnu.org
2015-04-08 11:02 ` [Bug c++/65695] [4.9/5 Regression] NSDMI " redi at gcc dot gnu.org
2015-04-08 11:04 ` redi at gcc dot gnu.org
2015-04-08 11:08 ` redi at gcc dot gnu.org
2015-04-08 11:10 ` rguenth at gcc dot gnu.org
2015-04-09  9:15 ` rguenth at gcc dot gnu.org
2015-04-10 10:50 ` jaehnesn at gmx dot de
2015-04-10 11:18 ` jaehnesn at gmx dot de
2015-04-10 11:34 ` daniel.kruegler at googlemail dot com
2015-04-10 12:02 ` jaehnesn at gmx dot de
2015-04-11 14:57 ` jason at gcc dot gnu.org
2015-04-14 16:03 ` [Bug c++/65695] [4.9/5/6 " jason at gcc dot gnu.org
2015-04-22 20:53 ` jason at gcc dot gnu.org
2015-04-23 13:21 ` jason at gcc dot gnu.org
2015-04-23 13:25 ` jason 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).