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 cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits