summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-18 19:32:10 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-18 19:32:10 +0000
commitd6828f49e96771ea2176165f2ff6ce288c1da747 (patch)
tree9248ff33edaa4a046a53c4ce5c71a410a937f754
parentc4fef1343863165dd51333e4f09cee50b0d5ee0b (diff)
downloadppe42-gcc-d6828f49e96771ea2176165f2ff6ce288c1da747.tar.gz
ppe42-gcc-d6828f49e96771ea2176165f2ff6ce288c1da747.zip
* mangle.c (write_expression): Issue a sorry for zero-operand
functional casts. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84899 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/mangle.c8
2 files changed, 12 insertions, 1 deletions
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 <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 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:
OpenPOWER on IntegriCloud