[LLVMbugs] [Bug 13070] missing namespace typo correction for switch on enum

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri May 8 11:02:18 PDT 2015


https://llvm.org/bugs/show_bug.cgi?id=13070

Kaelyn Takata <rikka at google.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |rikka at google.com
         Resolution|---                         |FIXED
           Assignee|unassignedclangbugs at nondot. |rikka at google.com
                   |org                         |

--- Comment #1 from Kaelyn Takata <rikka at google.com> ---
It looks like this was fixed back in r191449. As of r236883, the simplified
test case:

struct Sema {
  enum CXXSpecialMember {
    CXXDefaultConstructor,
    CXXCopyConstructor,
    CXXMoveConstructor,
    CXXCopyAssignment,
    CXXMoveAssignment,
    CXXDestructor,
    CXXInvalid
  };
};
void test(Sema::CXXSpecialMember CSM) {
  switch (CSM) {
    case CXXDefaultConstructor: break;
    case CXXCopyConstructor: break;
    case CXXMoveConstructor: break;
    case CXXCopyAssignment: break;
    case CXXMoveAssignment: break;
    case CXXDestructor: break;
    case CXXInvalid: break;
  }
}

yields:

zbugs.cc:14:10: error: use of undeclared identifier 'CXXDefaultConstructor';
did you mean 'Sema::CXXDefaultConstructor'?
    case CXXDefaultConstructor: break;
         ^~~~~~~~~~~~~~~~~~~~~
         Sema::CXXDefaultConstructor
zbugs.cc:3:5: note: 'Sema::CXXDefaultConstructor' declared here
    CXXDefaultConstructor,
    ^
zbugs.cc:15:10: error: use of undeclared identifier 'CXXCopyConstructor'; did
you mean 'Sema::CXXCopyConstructor'?
    case CXXCopyConstructor: break;
         ^~~~~~~~~~~~~~~~~~
         Sema::CXXCopyConstructor
zbugs.cc:4:5: note: 'Sema::CXXCopyConstructor' declared here
    CXXCopyConstructor,
    ^
zbugs.cc:16:10: error: use of undeclared identifier 'CXXMoveConstructor'; did
you mean 'Sema::CXXMoveConstructor'?
    case CXXMoveConstructor: break;
         ^~~~~~~~~~~~~~~~~~
         Sema::CXXMoveConstructor
zbugs.cc:5:5: note: 'Sema::CXXMoveConstructor' declared here
    CXXMoveConstructor,
    ^
zbugs.cc:17:10: error: use of undeclared identifier 'CXXCopyAssignment'; did
you mean 'Sema::CXXCopyAssignment'?
    case CXXCopyAssignment: break;
         ^~~~~~~~~~~~~~~~~
         Sema::CXXCopyAssignment
zbugs.cc:6:5: note: 'Sema::CXXCopyAssignment' declared here
    CXXCopyAssignment,
    ^
zbugs.cc:18:10: error: use of undeclared identifier 'CXXMoveAssignment'; did
you mean 'Sema::CXXMoveAssignment'?
    case CXXMoveAssignment: break;
         ^~~~~~~~~~~~~~~~~
         Sema::CXXMoveAssignment
zbugs.cc:7:5: note: 'Sema::CXXMoveAssignment' declared here
    CXXMoveAssignment,
    ^
zbugs.cc:19:10: error: use of undeclared identifier 'CXXDestructor'; did you
mean 'Sema::CXXDestructor'?
    case CXXDestructor: break;
         ^~~~~~~~~~~~~
         Sema::CXXDestructor
zbugs.cc:8:5: note: 'Sema::CXXDestructor' declared here
    CXXDestructor,
    ^
zbugs.cc:20:10: error: use of undeclared identifier 'CXXInvalid'; did you mean
'Sema::CXXInvalid'?
    case CXXInvalid: break;
         ^~~~~~~~~~
         Sema::CXXInvalid
zbugs.cc:9:5: note: 'Sema::CXXInvalid' declared here
    CXXInvalid
    ^
7 errors generated.

While more verbose than condensing everything down into one diagnostic, I
suspect it is the best that can be done without a major reworking of at least
the diagnostics machinery.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150508/74514a44/attachment.html>


More information about the llvm-bugs mailing list