I investigated it a bit:
the issue is in Sema::MergeFunctionDecl, for the following example
---
struct Foo {
static void foo(); // CXXMethodDecl->isStatic() = true
};
--
void Foo::foo(); // CXXMethodDecl->isStatic() = false since there's no
static keyword here
But MergeFunctionDecl relies on the latter declaration being static also
when checking CC compatibility.
I'm on it.
On 19 February 2013 12:54, Timur Iskhodzhanov <[email protected]> wrote:
> 2012/8/25 John McCall <[email protected]>:
> > + void static_baz();
> > + void __cdecl static_qux();
> FYI these lines are missing 'static' keywords; I've fixed that in r175502.
> Bug found by Alexander Zinenko!
>
> Hm, interesting - looks like a method declared without a CC can be
> defined with __cdecl?..
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits