bruno added inline comments.
================
Comment at: lib/AST/ASTContext.cpp:8551
+ break;
+ }
case 'W':
----------------
majnemer wrote:
> bruno wrote:
> > bruno wrote:
> > > rnk wrote:
> > > > compnerd wrote:
> > > > > I agree with @majnemer. Why not base this on the Int64Type?
> > > > I'd suggest this code:
> > > > IsSpecialLong = true;
> > > > // Use "long" if is 32 bits. This prefix is used by intrinsics that
> > > > need 32-bit types on LP64 platforms, but need to use "long" in the
> > > > prototype on LLP64 platforms like Win64.
> > > > if (Context.getTargetInfo().getLongWidth() == 32)
> > > > HowLong = 1;
> > > > break;
> > > See below.
> > I tried something similar before, but I get two tests failing
> > CodeGen/ms-intrinsics-rotations.c and CodeGen/pr27892.c. Your suggestion
> > hits the same failing tests. Both fails because of the Linux issue
> > mentioned above: i32 codegen where i64 is expected. Of course I could
> > improve the condition to handle Linux, but at that point I just thing it's
> > better to use Darwin, which is what the fix is towards anyway. Additional
> > ideas?
> I don't think we should sweep this under the rug just because there are some
> test failures. There is probably some latent bug worth investigating.
Well, there's specific testing for this behavior under Linux, so I assume
someone needs this? I don't see how this is sweeping stuff under the rug.
https://reviews.llvm.org/D34377
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits