[Bug c++/59681] SVN 197248 adding N3582 support broke Boost.Regex with -std=c++1y

2019-08-09 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59681

Marek Polacek  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||mpolacek at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #5 from Marek Polacek  ---
$ xg++ -c 59681.C -std=c++1y
# nothing

so assuming fixed.

[Bug c++/59681] SVN 197248 adding N3582 support broke Boost.Regex with -std=c++1y

2014-01-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59681

Paolo Carlini  changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #4 from Paolo Carlini  ---
Let's add Jason in CC.


[Bug c++/59681] SVN 197248 adding N3582 support broke Boost.Regex with -std=c++1y

2014-01-05 Thread pab at pabigot dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59681

--- Comment #3 from Peter A. Bigot  ---
But also note [dcl.type.simple] p4:

The type denoted by decltype(e) is defined as follows:
— if e is an unparenthesized id-expression or an unparenthesized class member
access (5.2.5), decltype(e) is the type of the entity named by e. If there is
no such entity, or if e names a set of overloaded functions, the program is
ill-formed;
— otherwise, if e is an xvalue, decltype(e) is T&&, where T is the type of e;
— otherwise, if e is an lvalue, decltype(e) is T&, where T is the type of e;
— otherwise, decltype(e) is the type of e.
The operand of the decltype specifier is an unevaluated operand (Clause 5).

which means decltype((e)) is not necessarily the same as decltype(e).

Perhaps the change was made to make this work, but it has side effects in some
context that does not (explicitly) use decltype.

[Bug c++/59681] SVN 197248 adding N3582 support broke Boost.Regex with -std=c++1y

2014-01-05 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59681

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-01-05
 Ever confirmed|0   |1

--- Comment #2 from Jonathan Wakely  ---
[expr.prim.general] p6 says:

A parenthesized expression is a primary expression whose type and value are
identical to those of the enclosed expression. The presence of parentheses does
not affect whether the expression is an lvalue. The parenthesized expression can
be used in exactly the same contexts as those where the enclosed expression
can be used, and with the same meaning, except as otherwise indicated.

[Bug c++/59681] SVN 197248 adding N3582 support broke Boost.Regex with -std=c++1y

2014-01-04 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59681

--- Comment #1 from Andrew Pinski  ---
Is (a) an lvalue still?  I don't remember the C++ rules to tell you the truth.