[cfe-dev] Diagnostic.h : Diagnostic::Report line 836
rjmccall at apple.com
Tue Nov 2 12:05:13 CDT 2010
On Nov 2, 2010, at 9:46 AM, Michael Mullin wrote:
> The following code is adapted from an online clang tutorial. It will seg fault if it Lexes itself.
> The seg fault happens somewhere in the vicinity of Preprocessor.h Diag() (line 625/631) and the function that I posted below.
I'm pretty sure you need to set a DiagnosticClient on the Diagnostic object; that is probably why you're getting a crash. Is there not an assert about this?
> My compiler could be choosing not to inline the function, thus the DiagnosticBuilder(this) that is created will be destroyed as the function is popped off the call-stack. Thus using the return value of this function will cause a fault.
The struct is being returned by value, so the caller gets a copy. That's how C++ works.
More information about the cfe-dev