diff options
author | David Malcolm <dmalcolm@redhat.com> | 2017-01-31 21:30:42 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2017-01-31 21:30:42 +0000 |
commit | fcb2cdfcfecc800d537fffa13dad17e4a3a34ae2 (patch) | |
tree | 7f5c133ae0da42f91989beacdd969964f5e9c73f /gcc | |
parent | 7cfa044d991a2622ca82c92b042ca06824994acd (diff) | |
download | gcc-fcb2cdfcfecc800d537fffa13dad17e4a3a34ae2.zip gcc-fcb2cdfcfecc800d537fffa13dad17e4a3a34ae2.tar.gz gcc-fcb2cdfcfecc800d537fffa13dad17e4a3a34ae2.tar.bz2 |
Fix ICE with spelling hints within explicit namespace aliases (PR c++/79298)
gcc/cp/ChangeLog:
PR c++/79298
* name-lookup.c (suggest_alternative_in_explicit_scope): Resolve
any namespace aliases.
gcc/testsuite/ChangeLog:
PR c++/79298
* g++.dg/spellcheck-pr79298.C: New test case.
From-SVN: r245072
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/name-lookup.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/spellcheck-pr79298.C | 17 |
4 files changed, 31 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2a86607..04d2a60 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2017-01-31 David Malcolm <dmalcolm@redhat.com> + + PR c++/79298 + * name-lookup.c (suggest_alternative_in_explicit_scope): Resolve + any namespace aliases. + 2017-01-31 Nathan Sidwell <nathan@acm.org> PR c++/79290 diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index a3cb7ee..994f7f0 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -4545,6 +4545,9 @@ bool suggest_alternative_in_explicit_scope (location_t location, tree name, tree scope) { + /* Resolve any namespace aliases. */ + scope = ORIGINAL_NAMESPACE (scope); + cp_binding_level *level = NAMESPACE_LEVEL (scope); best_match <tree, tree> bm (name); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f7cf0f4..ef50eda 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2017-01-31 David Malcolm <dmalcolm@redhat.com> + PR c++/79298 + * g++.dg/spellcheck-pr79298.C: New test case. + +2017-01-31 David Malcolm <dmalcolm@redhat.com> + PR preprocessor/79210 * gcc.dg/format/pr79210.c: New test case. * gcc.dg/plugin/diagnostic-test-string-literals-2.c (test_pr79210): diff --git a/gcc/testsuite/g++.dg/spellcheck-pr79298.C b/gcc/testsuite/g++.dg/spellcheck-pr79298.C new file mode 100644 index 0000000..4d7bbf9 --- /dev/null +++ b/gcc/testsuite/g++.dg/spellcheck-pr79298.C @@ -0,0 +1,17 @@ +// Ensure that we can offer suggestions for misspellings via a +// namespace alias. + +namespace N { int x; int color; } +namespace M = N; +namespace O = M; + +int foo () +{ + return M::y; // { dg-error ".y. is not a member of .M." } +} + +int bar () +{ + return O::colour; // { dg-error ".colour. is not a member of .O." } + // { dg-message "suggested alternative: .color." "" { target *-*-* } .-1 } +} |