diff options
author | Marek Polacek <polacek@redhat.com> | 2019-01-07 19:25:41 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2019-01-07 19:25:41 +0000 |
commit | 25a34b0236ffcf23e9bc29826475729ccfef7c38 (patch) | |
tree | 9293afe0d1d2aa68c735aa506b9884f9d2dd0c61 /gcc | |
parent | cc770199ded4655756eb98399f6d26f5a0c55f29 (diff) | |
download | gcc-25a34b0236ffcf23e9bc29826475729ccfef7c38.zip gcc-25a34b0236ffcf23e9bc29826475729ccfef7c38.tar.gz gcc-25a34b0236ffcf23e9bc29826475729ccfef7c38.tar.bz2 |
PR c++/88741 - wrong error with initializer-string.
* decl.c (cp_complete_array_type): Strip any location wrappers.
* g++.dg/init/array50.C: New test.
From-SVN: r267656
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/init/array50.C | 12 |
4 files changed, 23 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 60c8ae1..5267b9d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2019-01-07 Marek Polacek <polacek@redhat.com> + + PR c++/88741 - wrong error with initializer-string. + * decl.c (cp_complete_array_type): Strip any location wrappers. + 2019-01-07 Bernd Edlinger <bernd.edlinger@hotmail.de> PR c++/88261 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 15bc488..1fc7a1a 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -8433,6 +8433,7 @@ cp_complete_array_type (tree *ptype, tree initial_value, bool do_default) { vec<constructor_elt, va_gc> *v = CONSTRUCTOR_ELTS (initial_value); tree value = (*v)[0].value; + STRIP_ANY_LOCATION_WRAPPER (value); if (TREE_CODE (value) == STRING_CST && v->length () == 1) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4bb5634..c79593d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-01-07 Marek Polacek <polacek@redhat.com> + + PR c++/88741 - wrong error with initializer-string. + * g++.dg/init/array50.C: New test. + 2019-01-07 Bernd Edlinger <bernd.edlinger@hotmail.de> PR c++/88261 diff --git a/gcc/testsuite/g++.dg/init/array50.C b/gcc/testsuite/g++.dg/init/array50.C new file mode 100644 index 0000000..a5c129d --- /dev/null +++ b/gcc/testsuite/g++.dg/init/array50.C @@ -0,0 +1,12 @@ +// PR c++/88741 + +template <class T> +void foo() +{ + char row[] = {"test"}; +} + +void bar() +{ + foo<int>(); +} |