[Clang] Add an empty builtins.h file.
authorStefan Pintilie <stefanp@ca.ibm.com>
Thu, 15 Jul 2021 14:23:23 +0000 (09:23 -0500)
committerStefan Pintilie <stefanp@ca.ibm.com>
Fri, 16 Jul 2021 17:50:04 +0000 (12:50 -0500)
On Power PC some legacy compilers included a number of builtins in a
builtins.h header file. While this header file is not required to hold
builtins for clang some legacy code does try to include this file and so
this patch provides an empty version of that file.

Differential Revision: https://reviews.llvm.org/D106065

clang/lib/Headers/CMakeLists.txt
clang/lib/Headers/builtins.h [new file with mode: 0644]
clang/test/Headers/builtins-header.c [new file with mode: 0644]

index 382d40b..8131f60 100644 (file)
@@ -38,6 +38,7 @@ set(files
   avxvnniintrin.h
   bmi2intrin.h
   bmiintrin.h
+  builtins.h
   __clang_cuda_builtin_vars.h
   __clang_cuda_math.h
   __clang_cuda_cmath.h
diff --git a/clang/lib/Headers/builtins.h b/clang/lib/Headers/builtins.h
new file mode 100644 (file)
index 0000000..6509586
--- /dev/null
@@ -0,0 +1,16 @@
+/*===---- builtins.h - Standard header for extra builtins -----------------===*\
+ *
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ * See https://llvm.org/LICENSE.txt for license information.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ *
+\*===----------------------------------------------------------------------===*/
+
+/// Some legacy compilers have builtin definitions in a file named builtins.h.
+/// This header file has been added to allow compatibility with code that was
+/// written for those compilers. Code may have an include line for this file
+/// and to avoid an error an empty file with this name is provided.
+#ifndef __BUILTINS_H
+#define __BUILTINS_H
+
+#endif /* __BUILTINS_H */
diff --git a/clang/test/Headers/builtins-header.c b/clang/test/Headers/builtins-header.c
new file mode 100644 (file)
index 0000000..db5e0c5
--- /dev/null
@@ -0,0 +1,8 @@
+// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -ffreestanding -emit-llvm -o - %s | FileCheck %s
+// RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -ffreestanding -emit-llvm -o - %s | FileCheck %s
+
+#include <builtins.h>
+
+// Verify that we can include <builtins.h>
+
+// CHECK: target triple = "powerpc64