From 5d69ba1faa7a74aaa44795573aa89ebb834c16d0 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Tue, 2 Jul 2002 03:19:22 +0000 Subject: re PR c++/7112 (Regression: ICE on C++ code involving templates and sizeof) PR c++/7112 * g++.dg/template/sizeof2.C: New test. PR c++/7112 * mangle.c (write_expression): Add mangling for sizeof when applied to a type. * operators.def: Remove stale comment. * cp-demangle.c (demangle_operator_name): Add type_arg parameter. Set it for the "st" operator. (demangle_expression): Handle expressions with types as arguments. From-SVN: r55169 --- gcc/cp/mangle.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gcc/cp/mangle.c') diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index ae5714a..fc92d6e 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -1834,6 +1834,12 @@ write_expression (expr) write_mangled_name (expr); write_char ('E'); } + else if (TREE_CODE (expr) == SIZEOF_EXPR + && TYPE_P (TREE_OPERAND (expr, 0))) + { + write_string ("st"); + write_type (TREE_OPERAND (expr, 0)); + } else { int i; @@ -1872,6 +1878,7 @@ write_expression (expr) write_expression (TREE_OPERAND (expr, 0)); break; + /* Handle pointers-to-members specially. */ case SCOPE_REF: write_type (TREE_OPERAND (expr, 0)); -- cgit v1.1