The gcc.dg/noncompile/pr79758.c testcase prints

pr79758.c:5:6: error: redefinition of 'fn1'
'error_mark' not supported by 
direct_abstract_declarator)'/home/rguenther/src/gcc3/gcc/testsuite/gcc.dg/noncompile/pr79758.c:4:6:
 note: previous definition of 'fn1' with type

which shows a) re-entry of pp_printf via pp_unsupported_tree and b) a
bogus diagnostic.  The following handles ERROR_MARK in
direct_abstract_declarator, yielding in the better

/home/rguenther/src/gcc3/gcc/testsuite/gcc.dg/noncompile/pr79758.c:5:6: error: 
redefinition of 'fn1'
/home/rguenther/src/gcc3/gcc/testsuite/gcc.dg/noncompile/pr79758.c:4:6: note: 
previous definition of 'fn1' with type 'void(<type-error>)'

but still maybe not perfect.

Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.

OK for trunk?  GCC 10 doesn't exhibit this issue since it doesn't
print the 'with type ...' part.

2021-03-04  Richard Biener  <rguent...@suse.de>

gcc/c-family/
        * c-pretty-print.c (c_pretty_printer::direct_abstract_declarator):
        Handle ERROR_MARK.
---
 gcc/c-family/c-pretty-print.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/c-family/c-pretty-print.c b/gcc/c-family/c-pretty-print.c
index 2095d4badf7..a987da46d6d 100644
--- a/gcc/c-family/c-pretty-print.c
+++ b/gcc/c-family/c-pretty-print.c
@@ -676,6 +676,7 @@ c_pretty_printer::direct_abstract_declarator (tree t)
     case VECTOR_TYPE:
     case COMPLEX_TYPE:
     case TYPE_DECL:
+    case ERROR_MARK:
       break;
 
     default:
-- 
2.26.2

Reply via email to