MS ABI: Delay default constructor closure checking until the outermost class scope...
authorReid Kleckner <reid@kleckner.net>
Tue, 17 Mar 2015 19:00:50 +0000 (19:00 +0000)
committerReid Kleckner <reid@kleckner.net>
Tue, 17 Mar 2015 19:00:50 +0000 (19:00 +0000)
commitbba3cb95cc548e8700eaf00f74268c1cfcef2fa8
tree7ef4d47f50ac517278043a5b855e70d1c8427257
parent426025222228658060bba5aaea98a1bc1b090cb0
MS ABI: Delay default constructor closure checking until the outermost class scope ends

Previously, we would error out on this code because the default argument
wasn't parsed until the end of Outer:

  struct __declspec(dllexport) Outer {
    struct __declspec(dllexport) Inner {
      Inner(void *p = 0);
    };
  };

Now we do the checking on the closing brace of Outer instead of Inner.

llvm-svn: 232519
clang/include/clang/Sema/Sema.h
clang/lib/CodeGen/MicrosoftCXXABI.cpp
clang/lib/Parse/ParseDeclCXX.cpp
clang/lib/Sema/SemaDecl.cpp
clang/lib/Sema/SemaDeclCXX.cpp
clang/test/CodeGenCXX/dllexport.cpp