// Build don't link: 

// this is marked as an expected error because it evidences an
// ambiguity in the grammar between expressions and declarations.
// when the parser's been cleaned up or rewritten, the error
// marker can go away, since it'll no longer occur.

class B
{
public:
    B( int t ) {}
    void f() {}
};

int g() { return 0; } // gets bogus error - referenced below XFAIL *-*-*

int main()
{
    int try1;
    B( try1 ).f();   // no syntax error
    B b( g() );      // no syntax error
    B( ::g() ).f();  // no syntax error 
    B( g() ).f();    // gets bogus error - treated as decl XFAIL *-*-*
}
