]> granicus.if.org Git - clang/commitdiff
NetBSD uses signed wchar_t on AArch64. It also wants __LITTLE_ENDIAN__ /
authorJoerg Sonnenberger <joerg@bec.de>
Sun, 2 Feb 2014 21:55:10 +0000 (21:55 +0000)
committerJoerg Sonnenberger <joerg@bec.de>
Sun, 2 Feb 2014 21:55:10 +0000 (21:55 +0000)
__BIG_ENDIAN__ as on other architectures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200655 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp

index dd314ebfb6c8dd445ae90c4bf19af3717093a4ce..9d8c8c73c35c51785f7b9419491cd295cdcc2859 100644 (file)
@@ -3375,6 +3375,10 @@ public:
     DescriptionString = "e-m:e-i64:64-i128:128-n32:64-S128";
 
     WCharType = UnsignedInt;
+    if (getTriple().getOS() == llvm::Triple::NetBSD)
+      WCharType = SignedInt;
+    else
+      WCharType = UnsignedInt;
     LongDoubleFormat = &llvm::APFloat::IEEEquad;
 
     // AArch64 backend supports 64-bit operations at the moment. In principle
@@ -3427,6 +3431,13 @@ public:
     if (BigEndian)
       Builder.defineMacro("__AARCH_BIG_ENDIAN");
 
+    if (getTriple().getOS() == llvm::Triple::NetBSD) {
+      if (BigEndian)
+        Builder.defineMacro("__BIG_ENDIAN__");
+      else
+        Builder.defineMacro("__LITTLE_ENDIAN__");
+    }
+
     if (FPU == NeonMode) {
       Builder.defineMacro("__ARM_NEON");
       // 64-bit NEON supports half, single and double precision operations.