aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Basic/Targets.cpp7
-rw-r--r--test/Driver/le32-unknown-nacl.cpp19
2 files changed, 26 insertions, 0 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index bff4ac8d5c..7399d5a359 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -2870,6 +2870,13 @@ public:
}
virtual void getTargetDefines(const LangOptions &Opts,
MacroBuilder &Builder) const {
+ DefineStd(Builder, "unix", Opts);
+ Builder.defineMacro("__ELF__");
+ if (Opts.POSIXThreads)
+ Builder.defineMacro("_REENTRANT");
+ if (Opts.CPlusPlus)
+ Builder.defineMacro("_GNU_SOURCE");
+
Builder.defineMacro("__native_client__");
getArchDefines(Opts, Builder);
}
diff --git a/test/Driver/le32-unknown-nacl.cpp b/test/Driver/le32-unknown-nacl.cpp
index 6f2f79d11c..3ff54d40cb 100644
--- a/test/Driver/le32-unknown-nacl.cpp
+++ b/test/Driver/le32-unknown-nacl.cpp
@@ -26,6 +26,25 @@ void __pnacl__defined() {
}
#endif
+#ifdef unix
+void unixdefined() {
+ // CHECK: unixdefined
+}
+#endif
+
+#ifdef __ELF__
+void __ELF__defined() {
+ // CHECK: __ELF__defined
+}
+#endif
+
+#ifdef _GNU_SOURCE
+void _GNU_SOURCEdefined() {
+ // CHECK: _GNU_SOURCEdefined
+}
+#endif
+
+
// Check types
// CHECK: signext i8 @check_char()