I think this is a know problem, you can work around it via
putting pareneses around my_class(foo())
Thanks,
Andrew Pinski
PS the following compiles with 3.3 built from the sources of last night:
struct my_class {
my_class(int);
void abcd();
};
int foo();
void bar() {
(my_class(foo())).abcd();
}