aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2013-08-09 12:04:19 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-08-09 12:04:19 +0000
commit6efa6002d5b3575c7e1f9096f2e0f15252ac9c4b (patch)
tree16bbea7428bd5af0207c08df8e9c3d573f97f6b3
parentaa1e10cca1049ef530f29d8be485dab7be3bb69e (diff)
downloadgcc-6efa6002d5b3575c7e1f9096f2e0f15252ac9c4b.zip
gcc-6efa6002d5b3575c7e1f9096f2e0f15252ac9c4b.tar.gz
gcc-6efa6002d5b3575c7e1f9096f2e0f15252ac9c4b.tar.bz2
revert: re PR c++/46206 (using typedef-name error with typedef name hiding struct name)
/cp 2013-08-09 Paolo Carlini <paolo.carlini@oracle.com> Revert: 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/46206 * name-lookup.c (lookup_name_real_1): Handle iter->type before iter->value. /testsuite 2013-08-09 Paolo Carlini <paolo.carlini@oracle.com> Revert: 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/46206 * g++.dg/lookup/typedef2.C: New. From-SVN: r201629
-rw-r--r--gcc/cp/ChangeLog9
-rw-r--r--gcc/cp/name-lookup.c8
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/g++.dg/lookup/typedef2.C30
4 files changed, 21 insertions, 34 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index d3709fa..fc10e95 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,12 @@
+2013-08-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ Revert:
+ 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/46206
+ * name-lookup.c (lookup_name_real_1): Handle iter->type before
+ iter->value.
+
2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/46206
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 05f0480..0fe0246 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -4740,11 +4740,11 @@ lookup_name_real_1 (tree name, int prefer_type, int nonclass, bool block_p,
continue;
/* If this is the kind of thing we're looking for, we're done. */
- if ((flags & LOOKUP_PREFER_TYPES)
- && qualify_lookup (iter->type, flags))
- binding = iter->type;
- else if (qualify_lookup (iter->value, flags))
+ if (qualify_lookup (iter->value, flags))
binding = iter->value;
+ else if ((flags & LOOKUP_PREFER_TYPES)
+ && qualify_lookup (iter->type, flags))
+ binding = iter->type;
else
binding = NULL_TREE;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1e682b9..9f9a932 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2013-08-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ Revert:
+ 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/46206
+ * g++.dg/lookup/typedef2.C: New.
+
2013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
* gcc.target/aarch64/scalar_intrinsics.c: Update expected
diff --git a/gcc/testsuite/g++.dg/lookup/typedef2.C b/gcc/testsuite/g++.dg/lookup/typedef2.C
deleted file mode 100644
index fdadeec..0000000
--- a/gcc/testsuite/g++.dg/lookup/typedef2.C
+++ /dev/null
@@ -1,30 +0,0 @@
-// PR c++/46206
-
-class Foo1
-{
- int u, v, w, x;
- typedef struct Bar { } Bar;
- virtual void foo(void) {
- struct Bar bar;
- }
-};
-
-class Foo2
-{
- int u, v, w;
- typedef struct Bar { } Bar;
- Bar bar;
- virtual void foo(void) {
- struct Bar bar;
- }
-};
-
-class Foo3
-{
- int u, v, w;
- typedef struct Bar { } Bar;
- int Bar; // { dg-error "conflicts" }
- virtual void foo(void) {
- struct Bar bar;
- }
-};