On 09/25/2011 05:06 PM, Fabien Chêne wrote:
+ else if ((using_decl = strip_using_decl (member)) != member)
+ /* If it is a using decl, use its underlying decl. */
+ type_decl = strip_using_decl (type_decl);
- if (DECL_NAME (field) == name
+ if (DECL_NAME (decl) == name
&& (!want_type
- || TREE_CODE (field) == TYPE_DECL
- || DECL_CLASS_TEMPLATE_P (field)))
- return field;
+ || TREE_CODE (decl) == TYPE_DECL
+ || DECL_CLASS_TEMPLATE_P (decl)))
+ return decl;
Why do we need to strip the USING_DECL both in lookup_field_1 and in
callers?
+ /* do not push the decl more than once */
Comments should start with a capital letter and end with a period. This
should also say "unless we need to compare underlying types at
instantiation time"
+ /* We allow pushing an enum multiple times in a class
+ * template in order to handle late matching of underlying
+ * type on an opaque-enum-declaration followed by an
+ * enum-specifier. */
And we don't put * at the beginning of each line.
+ enumtype = xref_tag (enum_type, name, /*tag_scope=*/ts_current,
false);
+ /* TARGET_BVAL is error_mark_node when TARGET_DECL's name has been
used
+ else if (TREE_CODE (target_bval) == TYPE_DECL && DECL_ARTIFICIAL
(target_bval)
+ || same_type_p (TREE_TYPE (target_decl), TREE_TYPE
(target_bval))))
+ else if (TREE_CODE (target_decl) == VAR_DECL && TREE_CODE (target_bval) ==
VAR_DECL
+ if (TREE_CODE (target_decl) == TYPE_DECL && DECL_ARTIFICIAL
(target_decl))
+ else if (TREE_CODE (target_decl) == OVERLOAD && is_overloaded_fn
(target_bval))
+ else if (TREE_CODE (decl) == USING_DECL && is_overloaded_fn
(target_bval))
+ else if (TREE_CODE (bval) == USING_DECL && is_overloaded_fn
(target_decl))
These lines go past 80 characters.
Jason