C++ PATCHes for conditional operator issues

Jason Merrill jason@redhat.com
Fri May 9 18:12:00 GMT 2014


While I was working on reference binding diagnostics, I noticed a latent 
bug with conversion10.C that I tracked down to a problem with the fix 
for c++/22434: we don't want to do a bad conversion early if we will 
find a better one later through overload resolution.  So the first patch 
fixes that PR better.  And after that I decided to see if there were any 
other ?: issues to be fixed.

The next patch fixes a couple of complaints about the diagnostic we give 
when we can't figure out how to handle different types; if the problem 
is ambiguous conversions, we should say that.  And if the problem is 
unrelated types, we should say that instead of talking about overload 
resolution.

The third patch fixes an issue that isn't specific to conditional 
operators, but was reported in that context; stabilize_expr was 
inappropriately turning a prvalue into an lvalue, causing wrong overload 
resolution.

The last patch implements DR 587, which allows glvalues of the same type 
and value category but with different cv-qualifiers to produce a glvalue 
result.

Tested x86_64-pc-linux-gnu, applying to trunk.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 22434.patch
Type: text/x-patch
Size: 2447 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140509/65ffe347/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 32019.patch
Type: text/x-patch
Size: 3874 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140509/65ffe347/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 58714.patch
Type: text/x-patch
Size: 1436 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140509/65ffe347/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dr587.patch
Type: text/x-patch
Size: 4153 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140509/65ffe347/attachment-0003.bin>


More information about the Gcc-patches mailing list