diff options
Diffstat (limited to 'clang/lib/Basic/Targets/M68k.cpp')
-rw-r--r-- | clang/lib/Basic/Targets/M68k.cpp | 17 |
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); |