diff options
author | Mark Mitchell <mark@codesourcery.com> | 1999-09-04 00:15:15 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 1999-09-04 00:15:15 +0000 |
commit | 951525d2edc7ed122a31cb3869db15394dc3148e (patch) | |
tree | 7835f84bf69e4ddc4517a25fcde51ad4acc5298e | |
parent | 483dd5bec16a1a1acc2bc65f4f5fda522e67277d (diff) | |
download | gcc-951525d2edc7ed122a31cb3869db15394dc3148e.zip gcc-951525d2edc7ed122a31cb3869db15394dc3148e.tar.gz gcc-951525d2edc7ed122a31cb3869db15394dc3148e.tar.bz2 |
decl.c (expand_static_init): Tweak handling of static initializations for objects without constructors.
* decl.c (expand_static_init): Tweak handling of static
initializations for objects without constructors.
From-SVN: r29093
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/static6.C | 7 |
3 files changed, 15 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c3904bf..ebde894 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +1999-09-03 Mark Mitchell <mark@codesourcery.com> + + * decl.c (expand_static_init): Tweak handling of static + initializations for objects without constructors. + 1999-09-03 Nathan Sidwell <nathan@acm.org> * typeck.c (build_indirect_ref): Reject dereference of pointer to diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 82b3124..ec187df 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -8181,7 +8181,9 @@ expand_static_init (decl, init) || (init && TREE_CODE (init) == TREE_LIST)) assignment = build_aggr_init (decl, init, 0); else if (init) - assignment = build_modify_expr (decl, NOP_EXPR, init); + /* The initialization we're doing here is just a bitwise + copy. */ + assignment = build (INIT_EXPR, TREE_TYPE (decl), decl, init); else assignment = NULL_TREE; diff --git a/gcc/testsuite/g++.old-deja/g++.other/static6.C b/gcc/testsuite/g++.old-deja/g++.other/static6.C new file mode 100644 index 0000000..e660d80 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/static6.C @@ -0,0 +1,7 @@ +// Build don't link: +// Origin: Jason Merrill <jason@cygnus.com> + +void f (int i) +{ + static int a[] = { i }; +} |