summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-05-03 02:22:11 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-05-03 02:22:11 +0000
commita2245271afe4e908069e55a6aac01a37628d498f (patch)
tree2fe16fee5e6a91a43aa13e61156d42e8fc5a2274
parent22fcb08357b78bc747a33503270b51db521e9d96 (diff)
downloadbcm5719-llvm-a2245271afe4e908069e55a6aac01a37628d498f.tar.gz
bcm5719-llvm-a2245271afe4e908069e55a6aac01a37628d498f.zip
Revert "Sema: Implement DR244"
This was accidentally committed. This reverts commit r207892. llvm-svn: 207893
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp6
-rw-r--r--clang/test/CXX/basic/basic.lookup/basic.lookup.qual/p6.cpp3
-rw-r--r--clang/test/CXX/drs/dr2xx.cpp5
-rw-r--r--clang/www/cxx_dr_status.html2
4 files changed, 8 insertions, 8 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index a5ecba7310f..6f60406a4ee 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -144,10 +144,8 @@ ParsedType Sema::getDestructorName(SourceLocation TildeLoc,
AlreadySearched = true;
LookupCtx = DC;
isDependent = false;
- } else if (DC && isa<CXXRecordDecl>(DC)) {
+ } else if (DC && isa<CXXRecordDecl>(DC))
LookAtPrefix = false;
- LookInScope = true;
- }
// The second case from the C++03 rules quoted further above.
NestedNameSpecifier *Prefix = 0;
@@ -165,6 +163,8 @@ ParsedType Sema::getDestructorName(SourceLocation TildeLoc,
LookupCtx = computeDeclContext(SS, EnteringContext);
isDependent = LookupCtx && LookupCtx->isDependentContext();
}
+
+ LookInScope = false;
} else if (ObjectTypePtr) {
// C++ [basic.lookup.classref]p3:
// If the unqualified-id is ~type-name, the type-name is looked up
diff --git a/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/p6.cpp b/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/p6.cpp
index 83c8dd8fc22..0956de3c2a8 100644
--- a/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/p6.cpp
+++ b/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/p6.cpp
@@ -1,5 +1,4 @@
// RUN: %clang_cc1 -fsyntax-only -verify %s
-// expected-no-diagnostics
struct C {
typedef int I;
@@ -21,5 +20,5 @@ struct A {
typedef A AB;
int main() {
AB *p;
- p->AB::~AB();
+ p->AB::~AB(); // expected-error{{expected the class name after '~' to name a destructor}}
}
diff --git a/clang/test/CXX/drs/dr2xx.cpp b/clang/test/CXX/drs/dr2xx.cpp
index fb818fb7fcb..692ed1d1afd 100644
--- a/clang/test/CXX/drs/dr2xx.cpp
+++ b/clang/test/CXX/drs/dr2xx.cpp
@@ -466,7 +466,7 @@ namespace dr243 { // dr243: yes
A a2 = b; // expected-error {{ambiguous}}
}
-namespace dr244 { // dr244: 3.5
+namespace dr244 { // dr244: no
struct B {}; struct D : B {}; // expected-note {{here}}
D D_object;
@@ -480,7 +480,7 @@ namespace dr244 { // dr244: 3.5
B_ptr->~B_alias();
B_ptr->B_alias::~B();
// This is valid under DR244.
- B_ptr->B_alias::~B_alias();
+ B_ptr->B_alias::~B_alias(); // FIXME: expected-error {{expected the class name after '~' to name a destructor}}
B_ptr->dr244::~B(); // expected-error {{refers to a member in namespace}}
B_ptr->dr244::~B_alias(); // expected-error {{refers to a member in namespace}}
}
@@ -1013,6 +1013,7 @@ namespace dr298 { // dr298: yes
B::B() {} // expected-error {{requires a type specifier}}
B::A() {} // ok
+ C::~C() {} // expected-error {{expected the class name}}
C::~A() {} // ok
typedef struct D E; // expected-note {{here}}
diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html
index adb3902b9b6..dc6339982c8 100644
--- a/clang/www/cxx_dr_status.html
+++ b/clang/www/cxx_dr_status.html
@@ -1504,7 +1504,7 @@ accessible?</td>
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#244">244</a></td>
<td>CD1</td>
<td>Destructor lookup</td>
- <td class="svn" align="center">SVN</td>
+ <td class="none" align="center">No</td>
</tr>
<tr id="245">
<td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#245">245</a></td>
OpenPOWER on IntegriCloud