On Tue, May 31, 2011 at 11:05 AM, Jason Merrill <ja...@redhat.com> wrote: > lvalue_kind has tried to give an approximate answer for value category in > templates; in the past, it was OK to say that an arbitrary expression was an > lvalue, as the only effect would be that errors we could have given at > template definition time would be delayed until instantiation, which is > still conforming. But now that we have rvalue references that can't bind to > lvalues, it has become important to get the right answer. So this patch > makes us look through NON_DEPENDENT_EXPR at the actual underlying tree > structure. We need to add a couple more cases for lvalue expressions that > only appear in templates, and handle overloaded functions/operators that > return class type; I will not be surprised if there are other cases I didn't > think of, but we are still in stage 1... :) > > Tested x86_64-pc-linux-gnu, applying to trunk. >
This caused: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49253 -- H.J.