summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Sema/SemaExprMember.cpp2
-rw-r--r--clang/test/SemaCXX/member-expr.cpp22
2 files changed, 1 insertions, 23 deletions
diff --git a/clang/lib/Sema/SemaExprMember.cpp b/clang/lib/Sema/SemaExprMember.cpp
index 47b18dc39ea..1c34ace8562 100644
--- a/clang/lib/Sema/SemaExprMember.cpp
+++ b/clang/lib/Sema/SemaExprMember.cpp
@@ -243,6 +243,7 @@ Sema::BuildPossibleImplicitMemberExpr(const CXXScopeSpec &SS,
return BuildImplicitMemberExpr(SS, TemplateKWLoc, R, TemplateArgs, true, S);
case IMA_Mixed:
+ case IMA_Mixed_Unrelated:
case IMA_Unresolved:
return BuildImplicitMemberExpr(SS, TemplateKWLoc, R, TemplateArgs, false,
S);
@@ -251,7 +252,6 @@ Sema::BuildPossibleImplicitMemberExpr(const CXXScopeSpec &SS,
Diag(R.getNameLoc(), diag::warn_cxx98_compat_non_static_member_use)
<< R.getLookupNameInfo().getName();
// Fall through.
- case IMA_Mixed_Unrelated:
case IMA_Static:
case IMA_Abstract:
case IMA_Mixed_StaticContext:
diff --git a/clang/test/SemaCXX/member-expr.cpp b/clang/test/SemaCXX/member-expr.cpp
index 53f4673a3d4..3571fa748b8 100644
--- a/clang/test/SemaCXX/member-expr.cpp
+++ b/clang/test/SemaCXX/member-expr.cpp
@@ -228,25 +228,3 @@ namespace pr16676 {
.i; // expected-error {{member reference type 'pr16676::S *' is a pointer; did you mean to use '->'}}
}
}
-
-namespace unrelated_class_instance_call_should_be_illformed {
-
-
-struct A {
- void bar(int) { }
- static void bar(double) { }
-
- void g(int*);
- static void g(char *);
-};
-
-
-struct B {
- void f() {
- A::bar(3); //expected-error{{call to non-static member}}
- A::g((int*)0); //expected-error{{call to non-static member}}
- }
-};
-
-
-} // ns unrelated_class_mixed_static_nonstatic_call_should_be_illformed
OpenPOWER on IntegriCloud