From 4e37eb44cee16c38d36802f4748bb175be2aadb8 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 8 Dec 2008 19:03:40 +0100 Subject: [PATCH] re PR c/35442 (Completely broken diagnostic with view_convert_expr) PR c/35442 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle VIEW_CONVERT_EXPR the same as CASE_CONVERT. * gcc.dg/pr35442.c: New test. From-SVN: r142558 --- gcc/ChangeLog | 6 ++++++ gcc/c-pretty-print.c | 2 ++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/pr35442.c | 11 +++++++++++ 4 files changed, 24 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/pr35442.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 248979115b0f..4a35cf450f44 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-12-08 Jakub Jelinek + + PR c/35442 + * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle + VIEW_CONVERT_EXPR the same as CASE_CONVERT. + 2008-12-08 Richard Henderson PR 38240 diff --git a/gcc/c-pretty-print.c b/gcc/c-pretty-print.c index cf1c6c3f52c2..cc366791cfdc 100644 --- a/gcc/c-pretty-print.c +++ b/gcc/c-pretty-print.c @@ -1629,6 +1629,7 @@ pp_c_cast_expression (c_pretty_printer *pp, tree e) case FLOAT_EXPR: case FIX_TRUNC_EXPR: CASE_CONVERT: + case VIEW_CONVERT_EXPR: pp_c_type_cast (pp, TREE_TYPE (e)); pp_c_cast_expression (pp, TREE_OPERAND (e, 0)); break; @@ -2020,6 +2021,7 @@ pp_c_expression (c_pretty_printer *pp, tree e) case FLOAT_EXPR: case FIX_TRUNC_EXPR: CASE_CONVERT: + case VIEW_CONVERT_EXPR: pp_c_cast_expression (pp, e); break; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 696d82a1a532..84fd6210dbff 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-12-08 Jakub Jelinek + + PR c/35442 + * gcc.dg/pr35442.c: New test. + 2008-12-07 Eric Botcazou * gnat.dg/string_comparison.adb: New test. diff --git a/gcc/testsuite/gcc.dg/pr35442.c b/gcc/testsuite/gcc.dg/pr35442.c new file mode 100644 index 000000000000..4f1e3cc537ff --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr35442.c @@ -0,0 +1,11 @@ +/* PR c/35442 */ +/* { dg-bogus "not supported by" "" { target *-*-* } 0 } */ + +typedef char A __attribute__ ((vector_size (64))); +typedef int B __attribute__ ((vector_size (64))); + +void +foo (A a) +{ + ((B) a) (); /* { dg-error "is not a function" } */ +} -- 2.47.2