https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67996

            Bug ID: 67996
           Summary: std::ios_base::seekdir raises -Wswitch with Clang
           Product: gcc
           Version: 4.6.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kim.grasman at gmail dot com
  Target Milestone: ---

When using libstdc++ with Clang, we can't seem to form a fully-covered switch
over std::ios_base::seekdir:

  void f(std::ios_base::seekdir way)
    switch(way) {
      case std::ios_base::beg:
        // ...
        break;

      case std::ios_base::cur:
        // ...
        break;

      case std::ios_base::end:
        // ...
        break;
    }
  }

...t.cc:87:12: warning: enumeration value
'_S_ios_seekdir_end' not handled in switch [-Wswitch]
                        switch (way)

This looks like it was discussed long ago in #17922, so I don't know if this
has regressed or if it's something about Clang's implementation of this
diagnostic that is different from GCC.

A discussion on the Clang list is available here:
http://article.gmane.org/gmane.comp.compilers.clang.devel/45198/match=overeager

What's the motivation for _S_ios_seekdir_end? Any chance it could be removed?

Thanks!

Reply via email to