OSDN Git Service

* mangle.c (write_expression): Issue a sorry for zero-operand
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 18 Jul 2004 19:32:10 +0000 (19:32 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 18 Jul 2004 19:32:10 +0000 (19:32 +0000)
functional casts.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84899 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/mangle.c

index 29ef50d..97da2dd 100644 (file)
@@ -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
index 97d4309..211c218 100644 (file)
@@ -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: