[LLVMbugs] [Bug 21437] New: Members declared later in a class appear to be unavailable in noexcept expressions

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Oct 31 16:59:09 PDT 2014


http://llvm.org/bugs/show_bug.cgi?id=21437

            Bug ID: 21437
           Summary: Members declared later in a class appear to be
                    unavailable in noexcept expressions
           Product: clang
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: rnk at google.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Consider:

template <typename T>
struct A {
  void f() noexcept(noexcept(m.f())) {
    m.f();
  }
  T m;
};
struct B { void f(); };
int main() {
  A<B> a;
  a.f();
}

Clang produces:
t.cpp:3:30: error: use of undeclared identifier 'm'
  void f() noexcept(noexcept(m.f())) {
                             ^

What gives? Surely A is complete in this context and we can see m?

MSVC "14"'s implementation of <stack> is affected by this bug.

-- 
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/20141031/ccc066b0/attachment.html>


More information about the llvm-bugs mailing list