clang -cc1 -cxx-abi microsoft -triple i686-pc-win32 as of now behaves as
follows


class A {
 public:
  static void foo();
};

void __cdecl A::foo() {}  // Error
void __thiscall A::foo() {}  // OK

__thiscall is invalid for non-instance methods, though. And __cdecl is
an implicit default.

The problem is in MergeFunctionDecl: New function decl doesn't have
information about static storage duration yet, only the Old one,
therefore wrong default CC is checked.

The patch also adds a test for implicit calling convention
compatibility in declarations.

Please review!

Attachment: decl.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to