[clang] [clang][Fuchsia] Factor getFuchsiaDefines out of FuchsiaTargetInfo class (PR #194775)
Roland McGrath via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 28 20:27:39 PDT 2026
https://github.com/frobtech created https://github.com/llvm/llvm-project/pull/194775
Most of the template class's getOSDefines definition is not
template-dependent, so move it to a shared subroutine that's
outside the header file and reused by all the FuchsiaTargetInfo
instantiations.
>From 013f415d206cba733a6435c95544fc1c8abd9c97 Mon Sep 17 00:00:00 2001
From: Roland McGrath <mcgrathr at google.com>
Date: Tue, 28 Apr 2026 20:24:43 -0700
Subject: [PATCH] [clang][Fuchsia] Factor getFuchsiaDefines out of
FuchsiaTargetInfo class
Most of the template class's getOSDefines definition is not
template-dependent, so move it to a shared subroutine that's
outside the header file and reused by all the FuchsiaTargetInfo
instantiations.
---
clang/lib/Basic/Targets/OSTargets.cpp | 11 +++++++++++
clang/lib/Basic/Targets/OSTargets.h | 11 ++++-------
2 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/clang/lib/Basic/Targets/OSTargets.cpp b/clang/lib/Basic/Targets/OSTargets.cpp
index f847cea5f5bec..08f69bdc4b365 100644
--- a/clang/lib/Basic/Targets/OSTargets.cpp
+++ b/clang/lib/Basic/Targets/OSTargets.cpp
@@ -294,5 +294,16 @@ void addWindowsDefines(const llvm::Triple &Triple, const LangOptions &Opts,
addVisualCDefines(Opts, Builder);
}
+void getFuchsiaDefines(MacroBuilder &Builder, const LangOptions &Opts,
+ const llvm::Triple &Triple) {
+ Builder.defineMacro("__Fuchsia__");
+ if (Opts.POSIXThreads)
+ Builder.defineMacro("_REENTRANT");
+ // Required by the libc++ locale support.
+ if (Opts.CPlusPlus)
+ Builder.defineMacro("_GNU_SOURCE");
+ Builder.defineMacro("__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
+}
+
} // namespace targets
} // namespace clang
diff --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h
index 9e2916eace079..c89104e2cd02b 100644
--- a/clang/lib/Basic/Targets/OSTargets.h
+++ b/clang/lib/Basic/Targets/OSTargets.h
@@ -889,19 +889,16 @@ class LLVM_LIBRARY_VISIBILITY WindowsTargetInfo : public OSTargetInfo<Target> {
}
};
+void getFuchsiaDefines(MacroBuilder &Builder, const LangOptions &Opts,
+ const llvm::Triple &Triple);
+
// Fuchsia Target
template <typename Target>
class LLVM_LIBRARY_VISIBILITY FuchsiaTargetInfo : public OSTargetInfo<Target> {
protected:
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
MacroBuilder &Builder) const override {
- Builder.defineMacro("__Fuchsia__");
- if (Opts.POSIXThreads)
- Builder.defineMacro("_REENTRANT");
- // Required by the libc++ locale support.
- if (Opts.CPlusPlus)
- Builder.defineMacro("_GNU_SOURCE");
- Builder.defineMacro("__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
+ getFuchsiaDefines(Builder, Opts, Triple);
this->PlatformName = "fuchsia";
this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
}
More information about the cfe-commits
mailing list