diff options
Diffstat (limited to 'gcc/cp/error.c')
-rw-r--r-- | gcc/cp/error.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/cp/error.c b/gcc/cp/error.c index da880f5fad4..6ebfd899b9e 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -685,6 +685,7 @@ dump_type_prefix (t, flags) case TYPENAME_TYPE: case COMPLEX_TYPE: case VECTOR_TYPE: + case TYPEOF_TYPE: dump_type (t, flags); padding = before; break; @@ -781,6 +782,7 @@ dump_type_suffix (t, flags) case TYPENAME_TYPE: case COMPLEX_TYPE: case VECTOR_TYPE: + case TYPEOF_TYPE: break; default: @@ -928,6 +930,25 @@ dump_decl (t, flags) break; case OVERLOAD: + if (OVL_CHAIN (t)) + { + t = OVL_CURRENT (t); + if (DECL_CLASS_SCOPE_P (t)) + { + dump_type (DECL_CONTEXT (t), flags); + output_add_string (scratch_buffer, "::"); + } + else if (DECL_CONTEXT (t)) + { + dump_decl (DECL_CONTEXT (t), flags); + output_add_string (scratch_buffer, "::"); + } + dump_decl (DECL_NAME (t), flags); + break; + } + + /* If there's only one function, just treat it like an ordinary + FUNCTION_DECL. */ t = OVL_CURRENT (t); /* Fall through. */ @@ -2029,6 +2050,10 @@ dump_expr (t, flags) output_add_string (scratch_buffer, ") break; "); break; + case BASELINK: + print_tree_identifier (scratch_buffer, DECL_NAME (get_first_fn (t))); + break; + case TREE_LIST: if (TREE_VALUE (t) && TREE_CODE (TREE_VALUE (t)) == FUNCTION_DECL) { |