+1998-07-14 Martin von Löwis <loewis@informatik.hu-berlin.de>
+
+ * decl2.c (add_function): Move error message ...
+ (arg_assoc_namespace): ... from here.
+
1998-07-14 Jason Merrill <jason@yorick.cygnus.com>
* parse.y (namespace_qualifier): Fix multiple level handling.
{
if (ovl_member (fn, k->functions))
return 0;
- k->functions = build_overload (fn, k->functions);
+ /* We must find only functions, or exactly one non-function. */
+ if (k->functions && is_overloaded_fn (k->functions)
+ && is_overloaded_fn (fn))
+ k->functions = build_overload (fn, k->functions);
+ else
+ if(k->functions)
+ {
+ tree f1 = OVL_CURRENT (k->functions);
+ tree f2 = fn;
+ if (is_overloaded_fn (f1))
+ {
+ fn = f1; f1 = f2; f2 = fn;
+ }
+ cp_error_at ("`%D' is not a function,", f1);
+ cp_error_at (" conflict with `%D'", f2);
+ cp_error (" in call to `%D'", k->name);
+ return 1;
+ }
+ else
+ k->functions = fn;
return 0;
}
if (!value)
return 0;
- if (!is_overloaded_fn (value))
- {
- cp_error_at ("`%D' is not a function", value);
- cp_error ("in call to `%D'", k->name);
- return 1;
- }
-
for (; value; value = OVL_NEXT (value))
if (add_function (k, OVL_CURRENT (value)))
return 1;