problems compiling clang: ASTOwningResult

I’ve been having problems compiling clang for the last several days and I’m up-to-date with subversion.

The specific problem I am having is that ASTOwningResult doesn’t have a public copy constructor nor a operator=:

ASTOwningResult(ASTOwningResult&); // DO NOT IMPLEMENT
ASTOwningResult& operator =(ASTOwningResult&); // DO NOT IMPLEMENT

… however, there is a bunch of code in the parser that tries to do an operator=, for example,
ParseDecl.cpp:1080 AssignedVal = ParseConstantExpression();

where Parser::OwningExprResult Parser::ParseConstantExpression() and
OwningExprResult AssignedVal(Actions);

and finally typedef ASTOwningResult<&ActionBase::DeleteExpr> OwningExprResult;

Is anyone else having this problem?



What compiler are you using? We've seen some issues like this with Visual C++.

  - Doug

Operating system + compiler version?


I was using msvc2008… Doug figured it out for me. He had me turn on /Za.

Happy Hacking,


fyi…I believe this option is already enabled if you use cmake.


cool ok, I’ll switch to using cmake, thanks for the heads up.