Hi,
On 11/30/2011 04:42 PM, Paolo Carlini wrote:
add_implicitly_declared_members sets TYPE_HAS_DEFAULT_CONSTRUCTOR (t) =
1 for B, but then, in explain_non_literal_class, the true value doesn't
imply that locate_ctor actually finds the constructor, due to the nature
of A.
It should find a deleted constructor.
Ok. The point is, locate_ctor turns an error_mark_node returned by
locate_fn_flags - meaning indeed not callable - into NULL_TREE. In
fact, uses elsewhere of locate_ctor / get_default_ctor always check for it.
Thus, what to do here? Using "by hand" locate_fn_flags to attempt
passing back its return value as-is means also wrapping the call in
*_deferring_access_checks, seems a bit ugly.
Paolo.