[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)
Tristan Ross via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 19 16:04:23 PST 2024
================
@@ -788,16 +789,28 @@ class LLVM_LIBRARY_VISIBILITY ZOSTargetInfo : public OSTargetInfo<Target> {
// UEFI target
template <typename Target>
class LLVM_LIBRARY_VISIBILITY UEFITargetInfo : public OSTargetInfo<Target> {
+ llvm::Triple Triple;
protected:
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
- MacroBuilder &Builder) const override {}
+ MacroBuilder &Builder) const override {
+ DefineStd(Builder, "uefi", Opts);
+ }
public:
UEFITargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
- : OSTargetInfo<Target>(Triple, Opts) {
+ : OSTargetInfo<Target>(Triple, Opts), Triple(Triple) {
this->WCharType = TargetInfo::UnsignedShort;
this->WIntType = TargetInfo::UnsignedShort;
}
+
+ TargetInfo::CallingConvKind
+ getCallingConvKind(bool ClangABICompat4) const override {
+ if (Triple.getArch() == llvm::Triple::x86_64) {
+ return TargetInfo::CallingConvKind::CCK_MicrosoftWin64;
+ }
----------------
RossComputerGuy wrote:
Fixed + clang-format check should be happy again.
https://github.com/llvm/llvm-project/pull/120632
More information about the cfe-commits
mailing list