diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2015-06-25 17:03:33 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 2015-06-25 17:03:33 +0000 |
commit | fbf196a2560584a0c71b7c44e6354eac93721888 (patch) | |
tree | 0ec323ad3253632e0ab13e7619c3a7de99413f1e /gcc/tree.c | |
parent | 16a16ec7db0a5c626567b57ba49e09c4a5cccb76 (diff) | |
download | gcc-fbf196a2560584a0c71b7c44e6354eac93721888.zip gcc-fbf196a2560584a0c71b7c44e6354eac93721888.tar.gz gcc-fbf196a2560584a0c71b7c44e6354eac93721888.tar.bz2 |
tree-core.h (struct tree_optimization_option): Make opts a pointer to struct cl_optimization.
2015-06-25 Andrew MacLeod <amacleod@redhat.com>
* tree-core.h (struct tree_optimization_option): Make opts a pointer to
struct cl_optimization.
* tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
* tree.c (make_node_stat): Allocate cl_optimization struct.
(copy_node_stat): Allocate and copy cl_optimization struct.
From-SVN: r224952
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 23 |
1 files changed, 20 insertions, 3 deletions
@@ -1095,9 +1095,20 @@ make_node_stat (enum tree_code code MEM_STAT_DECL) break; case tcc_exceptional: - if (code == TARGET_OPTION_NODE) - { - TREE_TARGET_OPTION(t) = ggc_cleared_alloc<struct cl_target_option> (); + switch (code) + { + case TARGET_OPTION_NODE: + TREE_TARGET_OPTION(t) + = ggc_cleared_alloc<struct cl_target_option> (); + break; + + case OPTIMIZATION_NODE: + TREE_OPTIMIZATION (t) + = ggc_cleared_alloc<struct cl_optimization> (); + break; + + default: + break; } break; @@ -1188,6 +1199,12 @@ copy_node_stat (tree node MEM_STAT_DECL) memcpy (TREE_TARGET_OPTION (t), TREE_TARGET_OPTION (node), sizeof (struct cl_target_option)); } + else if (code == OPTIMIZATION_NODE) + { + TREE_OPTIMIZATION (t) = ggc_alloc<struct cl_optimization>(); + memcpy (TREE_OPTIMIZATION (t), TREE_OPTIMIZATION (node), + sizeof (struct cl_optimization)); + } return t; } |