aaron.ballman added inline comments.
================ Comment at: clang/include/clang/Basic/LangOptions.h:262-264 + /// Unprototyped integer arguments are extended to 32 bits. + ExtendTo32, + /// Unprototyped integer arguments are extended to 64 bits. ---------------- The comments aren't quite right as this matters in functions with prototypes as well (due to variadic arguments). How about "integer arguments are sign or zero extended to 32/64 bits during default argument promotions."? ================ Comment at: clang/include/clang/Basic/TargetInfo.h:1415 + virtual bool supportsExtendIntArgs() const { return false; } + ---------------- This should get a comment explaining what it does. The name is a bit generic too (esp given that there's an `_ExtInt` type that sounds like an "extended int"). Is there anything truly target-specific about the functionality? It seems like this behavior would be plausibly useful regardless of target architecture. ================ Comment at: clang/include/clang/Driver/Options.td:1432-1433 + Flags<[CC1Option, NoArgumentUnused]>, + HelpText<"Controls how scalar integer arguments are extended in calls" + " to unprototyped and varargs functions">, + Values<"32,64">, ---------------- It's a bit more conventional to use a trailing whitespace in adjacent string literals. ================ Comment at: clang/test/CodeGen/extend-arg-64.c:19 + +int vararg(int, ...); + ---------------- Can you also add a test for K&R C functions? e.g., `int knr();` `sum = knr(sum, u32, s32, u16, s16, u8, s8);` Also, can you show what happens when passing a `long long` and an `_ExtInt` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101640/new/ https://reviews.llvm.org/D101640 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits