summaryrefslogtreecommitdiff
path: root/src/compiler-support.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-12-22 14:03:21 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-12-22 14:03:21 -0800
commit89972f57fc1d98a2990a635878df39867d1f98f9 (patch)
treeacc8af2fa4cc19441c5d5459661d6040074a1e6c /src/compiler-support.h
parent58cb71723a5243f8a347e51e9ceb20b664719585 (diff)
parent397ddb4bbced30b96d6f05dddaea6a395269cf34 (diff)
downloadbinaryen-89972f57fc1d98a2990a635878df39867d1f98f9.tar.gz
binaryen-89972f57fc1d98a2990a635878df39867d1f98f9.tar.bz2
binaryen-89972f57fc1d98a2990a635878df39867d1f98f9.zip
Merge pull request #28 from WebAssembly/wall
Fix warnings found by GCC
Diffstat (limited to 'src/compiler-support.h')
-rw-r--r--src/compiler-support.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/compiler-support.h b/src/compiler-support.h
new file mode 100644
index 000000000..f0ec62535
--- /dev/null
+++ b/src/compiler-support.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2015 WebAssembly Community Group participants
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __compiler_support_h__
+#define __compiler_support_h__
+
+#ifndef __has_feature
+# define __has_feature(x) 0
+#endif
+
+#ifndef __has_builtin
+# define __has_builtin(x) 0
+#endif
+
+// If control flow reaches the point of the WASM_UNREACHABLE(), the program is
+// undefined.
+#if __has_builtin(__builtin_unreachable)
+# define WASM_UNREACHABLE() __builtin_unreachable()
+#elif defined(_MSC_VER)
+# define WASM_UNREACHABLE() __assume(false)
+#else
+# define WASM_UNREACHABLE() abort()
+#endif
+
+#endif // __compiler_support_h__