summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/cp/expr.c
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2007-05-19 01:19:51 +0000
committerkan <kan@FreeBSD.org>2007-05-19 01:19:51 +0000
commit1f9ea4d0a40cca64d60cf4dab152349da7b9dddf (patch)
tree0cb530c9c38af219e6dda2994c078b6b2b9ad853 /contrib/gcc/cp/expr.c
parent4895159b2b4f648051c1f139faa7b6dc50c2bfcb (diff)
downloadFreeBSD-src-1f9ea4d0a40cca64d60cf4dab152349da7b9dddf.zip
FreeBSD-src-1f9ea4d0a40cca64d60cf4dab152349da7b9dddf.tar.gz
GCC 4.2.0 release.
Diffstat (limited to 'contrib/gcc/cp/expr.c')
-rw-r--r--contrib/gcc/cp/expr.c28
1 files changed, 8 insertions, 20 deletions
diff --git a/contrib/gcc/cp/expr.c b/contrib/gcc/cp/expr.c
index 34e7224..4039002 100644
--- a/contrib/gcc/cp/expr.c
+++ b/contrib/gcc/cp/expr.c
@@ -17,8 +17,8 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
+the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
#include "config.h"
@@ -46,11 +46,11 @@ cplus_expand_constant (tree cst)
{
tree type = TREE_TYPE (cst);
tree member;
-
+
/* Find the member. */
member = PTRMEM_CST_MEMBER (cst);
- if (TREE_CODE (member) == FIELD_DECL)
+ if (TREE_CODE (member) == FIELD_DECL)
{
/* Find the offset for the field. */
cst = byte_position (member);
@@ -86,6 +86,9 @@ cplus_expand_constant (tree cst)
}
/* Hook used by expand_expr to expand language-specific tree codes. */
+/* ??? The only thing that should be here are things needed to expand
+ constant initializers; everything else should be handled by the
+ gimplification routines. Are EMPTY_CLASS_EXPR or BASELINK needed? */
rtx
cxx_expand_expr (tree exp, rtx target, enum machine_mode tmode, int modifier,
@@ -94,7 +97,6 @@ cxx_expand_expr (tree exp, rtx target, enum machine_mode tmode, int modifier,
tree type = TREE_TYPE (exp);
enum machine_mode mode = TYPE_MODE (type);
enum tree_code code = TREE_CODE (exp);
- rtx ret;
/* No sense saving up arithmetic to be done
if it's all in the wrong mode to form part of an address.
@@ -111,18 +113,7 @@ cxx_expand_expr (tree exp, rtx target, enum machine_mode tmode, int modifier,
case OFFSET_REF:
/* Offset refs should not make it through to here. */
- abort ();
- return const0_rtx;
-
- case THROW_EXPR:
- expand_expr (TREE_OPERAND (exp, 0), const0_rtx, VOIDmode, 0);
- return const0_rtx;
-
- case MUST_NOT_THROW_EXPR:
- expand_eh_region_start ();
- ret = expand_expr (TREE_OPERAND (exp, 0), target, tmode, modifier);
- expand_eh_region_end_must_not_throw (build_call (terminate_node, 0));
- return ret;
+ gcc_unreachable ();
case EMPTY_CLASS_EXPR:
/* We don't need to generate any code for an empty class. */
@@ -135,7 +126,4 @@ cxx_expand_expr (tree exp, rtx target, enum machine_mode tmode, int modifier,
default:
return c_expand_expr (exp, target, tmode, modifier, alt_rtl);
}
- abort ();
- /* NOTREACHED */
- return NULL;
}
OpenPOWER on IntegriCloud