diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/cp/mangle.c | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 29ef50d..97da2dd 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2004-07-18 Mark Mitchell <mark@codesourcery.com> + + * mangle.c (write_expression): Issue a sorry for zero-operand + functional casts. + 2004-07-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> PR c++/13092 diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index 97d4309..211c218 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: |
