From 383c9d5d29d8ad4dd934f457ae2777790f0f5a3c Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Sun, 18 Jul 2004 19:32:10 +0000 Subject: [PATCH] mangle.c (write_expression): Issue a sorry for zero-operand functional casts. * mangle.c (write_expression): Issue a sorry for zero-operand functional casts. From-SVN: r84899 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/mangle.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 29ef50d6fde..97da2dda020 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2004-07-18 Mark Mitchell + + * mangle.c (write_expression): Issue a sorry for zero-operand + functional casts. + 2004-07-18 Kriang Lerdsuwanakij PR c++/13092 diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index 97d4309fcf2..211c218321d 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -2056,7 +2056,13 @@ write_expression (tree expr) case CAST_EXPR: write_type (TREE_TYPE (expr)); - write_expression (TREE_VALUE (TREE_OPERAND (expr, 0))); + /* There is no way to mangle a zero-operand cast like + "T()". */ + if (!TREE_OPERAND (expr, 0)) + sorry ("zero-operand casts cannot be mangled due to a defect " + "in the C++ ABI"); + else + write_expression (TREE_VALUE (TREE_OPERAND (expr, 0))); break; case STATIC_CAST_EXPR: