Sure, this is http://llvm.org/pr23071.
Can this be handled locally by this code?
// If we're in microsoft extensions mode, downgrade this from a
hard
// error to an extension that defaults to an error. This allows
// disabling it.
PP.Diag(Loc, PP.getLangOpts().MicrosoftExt ?
diag::ext_pp_bad_paste_ms
:
diag::err_pp_bad_paste)
<< Buffer;
Any reason we can't do RHS.clearFlag(Token::LeadingSpace) here in
-fms-extensions mode?
On Fri, Apr 10, 2015 at 12:45 PM, Will Wilson <[email protected]> wrote:
> Hi Reid,
>
> Attached is a patch to handle a corner case supported by MSVC. I decided
> to attempt to workaround the behaviour in clang after encountering it in
> public MS headers for XAudio where clang would fail to generate a valid
> UUID due to the UUID components being combined with the '-' UUID
> separators. Clang was attempting to recover but would preserve the leading
> whitespace from the tokens after each failed paste leading to spaces
> creeping into the UUID and causing an error in the __declspace(uuid())
> parsing.
>
> Reference: Microsoft DirectX SDK (June 2010)\Include\XAudio2.h(51)
>
> Test case included and tested against latest trunk.
>
> Let me know if it looks acceptable!
>
> Cheers,
> Will.
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits