[PATCH] Support for #pragma detect_mismatch
Aaron Ballman
aaron at aaronballman.com
Wed May 29 13:18:28 PDT 2013
On Wed, May 29, 2013 at 4:15 PM, Reid Kleckner <rnk at google.com> wrote:
> On Wed, May 29, 2013 at 3:55 PM, Aaron Ballman <aaron at aaronballman.com>
> wrote:
>>
>> On Wed, May 29, 2013 at 3:31 PM, Reid Kleckner <rnk at google.com> wrote:
>> > --- include/clang/AST/ASTConsumer.h (revision 182601)
>> > +++ include/clang/AST/ASTConsumer.h (working copy)
>> > @@ -92,6 +92,12 @@
>> > /// only exists to support Microsoft's #pragma comment(linker,
>> > "/foo").
>> > virtual void HandleLinkerOptionPragma(llvm::StringRef Opts) {}
>> >
>> > + /// \brief Handle a pragma that emits a mismatch identifier and value
>> > to
>> > the
>> > + /// object file for the linker to work with. Currently, this only
>> > exists
>> > to
>> > + /// support Microsoft's #pragma detect_mismatch.
>> > + virtual void HandleDetectMismatch(llvm::StringRef Name,
>> > + llvm::StringRef Value) {}
>> > +
>> >
>> > Should we avoid broadening the ASTConsumer interface? If we lowered the
>> > option in Sema, then we could reuse HandleLinkerOptionPragma() without
>> > too
>> > much fuss. But then we're doing codegen-like work in Sema. I'd like a
>> > second opinion on this. If we can do this in Sema, we can eliminate a
>> > lot
>> > of the plumbing for this and for #pragma comment(lib).
>>
>> I had originally done it that way, but wasn't overly keen on it. We
>> could reuse the TargetInfo behavior for getting the proper linker
>> options, but it seemed like a layering violation.
>
>
> Yeah, we'd have to use some Target interface outside of CodeGen, but I don't
> see anything obvious.
>
> Perhaps we should continue full steam ahead on this route and refactor at a
> later date.
I don't think the current approach is particularly heinous, just
verbose. I'd be fine sticking with this route for now. But if
someone has a better idea as to how to structure this so we could get
more reusable machinery out of it, I'd be happy to attempt it as well.
~Aaron
More information about the cfe-commits
mailing list