aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Targets/M68k.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Basic/Targets/M68k.cpp')
-rw-r--r--clang/lib/Basic/Targets/M68k.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/clang/lib/Basic/Targets/M68k.cpp b/clang/lib/Basic/Targets/M68k.cpp
index ada5b97ed66d..6c2d77444f13 100644
--- a/clang/lib/Basic/Targets/M68k.cpp
+++ b/clang/lib/Basic/Targets/M68k.cpp
@@ -21,6 +21,7 @@
#include <cstdint>
#include <cstring>
#include <limits>
+#include <optional>
namespace clang {
namespace targets {
@@ -113,11 +114,17 @@ void M68kTargetInfo::getTargetDefines(const LangOptions &Opts,
default:
break;
}
+
+ if (CPU >= CK_68020) {
+ Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
+ Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
+ Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
+ }
}
ArrayRef<Builtin::Info> M68kTargetInfo::getTargetBuiltins() const {
// FIXME: Implement.
- return None;
+ return std::nullopt;
}
bool M68kTargetInfo::hasFeature(StringRef Feature) const {
@@ -131,12 +138,12 @@ const char *const M68kTargetInfo::GCCRegNames[] = {
"pc"};
ArrayRef<const char *> M68kTargetInfo::getGCCRegNames() const {
- return llvm::makeArrayRef(GCCRegNames);
+ return llvm::ArrayRef(GCCRegNames);
}
ArrayRef<TargetInfo::GCCRegAlias> M68kTargetInfo::getGCCRegAliases() const {
// No aliases.
- return None;
+ return std::nullopt;
}
bool M68kTargetInfo::validateAsmConstraint(
@@ -191,7 +198,7 @@ bool M68kTargetInfo::validateAsmConstraint(
return false;
}
-llvm::Optional<std::string>
+std::optional<std::string>
M68kTargetInfo::handleAsmEscapedChar(char EscChar) const {
char C;
switch (EscChar) {
@@ -209,7 +216,7 @@ M68kTargetInfo::handleAsmEscapedChar(char EscChar) const {
C = 'd';
break;
default:
- return llvm::None;
+ return std::nullopt;
}
return std::string(1, C);