From d68acc044e8b214f490718612e1c2d1a122813eb Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Wed, 29 Sep 2004 19:16:00 -0700 Subject: [PATCH] java-tree.h: Redefine some macros and add soem declaration to handle the USE_MAPPED_LOCATION... * java-tree.h: Redefine some macros and add soem declaration to handle the USE_MAPPED_LOCATION case. * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2. * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1. * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone. From-SVN: r88323 --- gcc/java/ChangeLog | 9 +++++++++ gcc/java/java-tree.def | 5 +++++ gcc/java/java-tree.h | 18 ++++++++++++++---- gcc/java/parse.h | 2 +- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index cd5b84fcd77..2ae9141835e 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,12 @@ +2004-09-29 Per Bothner + + * java-tree.h: Redefine some macros and add soem declaration + to handle the USE_MAPPED_LOCATION case. + * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2. + * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1. + * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in + USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone. + 2004-09-29 Andrew Haley PR java/17007 diff --git a/gcc/java/java-tree.def b/gcc/java/java-tree.def index 2f2b9f467eb..1cdbc573067 100644 --- a/gcc/java/java-tree.def +++ b/gcc/java/java-tree.def @@ -97,8 +97,13 @@ DEFTREECODE (JAVA_EXC_OBJ_EXPR, "java_exc_obj_expr", tcc_expression, 0) (EXPR_WFL_LINENO); and column number (EXPR_WFL_COLNO). It is expanded as the contained node (EXPR_WFL_NODE); a line note should be emitted first if EXPR_WFL_EMIT_LINE_NOTE. */ +#ifdef USE_MAPPED_LOCATION +DEFTREECODE (EXPR_WITH_FILE_LOCATION, "expr_with_file_location", + tcc_expression, 2) +#else DEFTREECODE (EXPR_WITH_FILE_LOCATION, "expr_with_file_location", tcc_expression, 3) +#endif /* Local variables: diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index 1b707c68efb..7ecf0917d68 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -1824,19 +1824,29 @@ enum #undef EXPR_WFL_NODE #define EXPR_WFL_NODE(NODE) \ TREE_OPERAND (EXPR_WITH_FILE_LOCATION_CHECK (NODE), 0) +#ifdef USE_MAPPED_LOCATION +#define EXPR_WFL_LINECOL(NODE) ((NODE)->exp.locus) +#define EXPR_WFL_FILENAME(NODE) EXPR_FILENAME (NODE) +#define EXPR_WFL_LINENO(NODE) EXPR_LINENO (NODE) +extern tree build_expr_wfl PARAMS ((tree, source_location)); +extern tree expr_add_location PARAMS ((tree, source_location, bool)); +#define build_unknown_wfl(NODE) build_expr_wfl(NODE, UNKNOWN_LOCATION) +#else +#define EXPR_WFL_LINECOL(NODE) (EXPR_CHECK (NODE)->exp.complexity) +#define EXPR_WFL_LINENO(NODE) (EXPR_WFL_LINECOL (NODE) >> 12) +#define EXPR_WFL_COLNO(NODE) (EXPR_WFL_LINECOL (NODE) & 0xfff) #undef EXPR_WFL_FILENAME_NODE #define EXPR_WFL_FILENAME_NODE(NODE) \ - TREE_OPERAND (EXPR_WITH_FILE_LOCATION_CHECK (NODE), 1) + TREE_OPERAND (EXPR_WITH_FILE_LOCATION_CHECK (NODE), 2) #define EXPR_WFL_FILENAME(NODE) \ IDENTIFIER_POINTER (EXPR_WFL_FILENAME_NODE (NODE)) /* ??? Java uses this in all expressions. */ -#define EXPR_WFL_LINECOL(NODE) (EXPR_CHECK (NODE)->exp.complexity) -#define EXPR_WFL_LINENO(NODE) (EXPR_WFL_LINECOL (NODE) >> 12) -#define EXPR_WFL_COLNO(NODE) (EXPR_WFL_LINECOL (NODE) & 0xfff) #define EXPR_WFL_SET_LINECOL(NODE, LINE, COL) \ (EXPR_WFL_LINECOL(NODE) = ((LINE) << 12) | ((COL) & 0xfff)) extern tree build_expr_wfl PARAMS ((tree, const char *, int, int)); +#define build_unknown_wfl(NODE) build_expr_wfl(NODE, NULL, 0, 0) +#endif extern void java_genericize PARAMS ((tree)); extern int java_gimplify_expr PARAMS ((tree *, tree *, tree *)); diff --git a/gcc/java/parse.h b/gcc/java/parse.h index 9e4e0f8fca4..95e4b235fc7 100644 --- a/gcc/java/parse.h +++ b/gcc/java/parse.h @@ -625,7 +625,7 @@ typedef struct jdeplist_s jdeplist; build_expr_wfl ((NODE), input_filename, EXPR_WFL_LINENO ((WFL)), \ EXPR_WFL_COLNO ((WFL))) -#define EXPR_WFL_QUALIFICATION(WFL) TREE_OPERAND ((WFL), 2) +#define EXPR_WFL_QUALIFICATION(WFL) TREE_OPERAND ((WFL), 1) #define QUAL_WFL(NODE) TREE_PURPOSE (NODE) #define QUAL_RESOLUTION(NODE) TREE_VALUE (NODE) #define QUAL_DECL_TYPE(NODE) GET_SKIP_TYPE (NODE) -- 2.30.2