The recent patch to tree-nested.c:
2015-11-26 Pierre-Marie de Rodat <dero...@adacore.com>
PR debug/53927
* tree-nested.c (finalize_nesting_tree_1): Append a field to
hold the frame base address.
* dwarf2out.c (gen_subprogram_die): Generate for
DW_AT_static_link a location description that computes the value
of this field.
broke PTX, as it tried to use argp for the CFA. Fixed thusly. Also tidied up a
few bits of nvptx.h while I was there.
nathan
2015-11-28 Nathan Sidwell <nat...@acm.org>
* config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
(FRAME_POINTER_CFA_OFFSET): Define.
(struct nvptx_args): Use 'tree' type.
(INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.
Index: gcc/config/nvptx/nvptx.h
===================================================================
--- gcc/config/nvptx/nvptx.h (revision 231037)
+++ gcc/config/nvptx/nvptx.h (working copy)
@@ -166,14 +166,16 @@ enum reg_class
#define OUTGOING_ARG_POINTER_REGNUM 11
#define OUTGOING_STATIC_CHAIN_REGNUM 10
-#define FIRST_PARM_OFFSET(FNDECL) 0
+#define FIRST_PARM_OFFSET(FNDECL) ((void)(FNDECL), 0)
#define PUSH_ARGS_REVERSED 1
-
#define ACCUMULATE_OUTGOING_ARGS 1
+/* Avoid using the argument pointer for frame-related things. */
+#define FRAME_POINTER_CFA_OFFSET(FNDECL) ((void)(FNDECL), 0)
+
#ifdef HOST_WIDE_INT
struct nvptx_args {
- union tree_node *fntype;
+ tree fntype;
/* Number of arguments passed in registers so far. */
int count;
/* Offset into the stdarg area so far. */
@@ -184,7 +186,7 @@ struct nvptx_args {
#define CUMULATIVE_ARGS struct nvptx_args
#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \
- do { (CUM).fntype = (FNTYPE); (CUM).count = 0; (CUM).off = 0; } while (0)
+ ((CUM).fntype = (FNTYPE), (CUM).count = 0, (CUM).off = 0, (void)0)
#define FUNCTION_ARG_REGNO_P(r) 0