-
Notifications
You must be signed in to change notification settings - Fork 14.6k
Closed as not planned
Labels
bugzillaIssues migrated from bugzillaIssues migrated from bugzillac++clang:frontendLanguage frontend issues, e.g. anything involving "Sema"Language frontend issues, e.g. anything involving "Sema"duplicateResolved as duplicateResolved as duplicate
Description
Bugzilla Link | 30594 |
Version | trunk |
OS | All |
Reporter | LLVM Bugzilla Contributor |
CC | @DougGregor |
Extended Description
The following should be considered ambiguous:
//no error - incorrect behavior
struct B1{void operator()(){}};
struct B2{void operator()(int){}};
struct D:B1,B2{};
int main()
{
D{}();
}
without an explicit using declaration in D the overloads provided by the two bases should be considered ambiguous as in the analogous case for member functions.
//error: member 'f' found in multiple base classes of different types - correct
//behavior
struct B1{void f(){}};
struct B2{void f(int){}};
struct D:B1,B2{};
int main()
{
D{}.f();
}
Metadata
Metadata
Assignees
Labels
bugzillaIssues migrated from bugzillaIssues migrated from bugzillac++clang:frontendLanguage frontend issues, e.g. anything involving "Sema"Language frontend issues, e.g. anything involving "Sema"duplicateResolved as duplicateResolved as duplicate