diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-12-15 18:43:52 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-12-15 18:43:52 -0500 |
commit | 49b08aba12ca29601b84959168bc116f25e71845 (patch) | |
tree | 76744158360ab0df76fbb2eae441b841d4a16f08 /gcc/tree.c | |
parent | c11ffdbd029ce4037aea19e8df0c23e0f64a3580 (diff) | |
download | gcc-49b08aba12ca29601b84959168bc116f25e71845.zip gcc-49b08aba12ca29601b84959168bc116f25e71845.tar.gz gcc-49b08aba12ca29601b84959168bc116f25e71845.tar.bz2 |
(copy_node): Handle length of INTEGER_CST like make_node.
From-SVN: r6241
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -1011,9 +1011,17 @@ copy_node (node) break; case 'c': /* a constant */ - /* We can't use tree_code_length for this, since the number of words - is machine-dependent due to varying alignment of `double'. */ - if (code == REAL_CST) + /* We can't use tree_code_length for INTEGER_CST, since the number of + words is machine-dependent due to varying length of HOST_WIDE_INT, + which might be wider than a pointer (e.g., long long). Similarly + for REAL_CST, since the number of words is machine-dependent due + to varying size and alignment of `double'. */ + if (code == INTEGER_CST) + { + length = sizeof (struct tree_int_cst); + break; + } + else if (code == REAL_CST) { length = sizeof (struct tree_real_cst); break; |