aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnshuman Dasgupta <adasgupt@codeaurora.org>2013-01-02 21:25:57 +0000
committerAnshuman Dasgupta <adasgupt@codeaurora.org>2013-01-02 21:25:57 +0000
commit1a090f1b239889d0b48e1413152e88ed07e6e09d (patch)
tree0b2afed27af22154eb5c71e8b2b54c7ebea8a62c
parentee3d9f0be3d2080abb1cf76d7d327a044791b22a (diff)
Correct Hexagon DataLayout string. Fixes bug 14744.
Patch by Krzysztof Parzyszek! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171415 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Basic/Targets.cpp2
-rw-r--r--test/Frontend/hexagon-target-basic.c8
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index aadca20ebb..aaf5a8a794 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -3500,7 +3500,7 @@ public:
HexagonTargetInfo(const std::string& triple) : TargetInfo(triple) {
BigEndian = false;
DescriptionString = ("e-p:32:32:32-"
- "i64:64:64-i32:32:32-i16:16:16-i1:32:32"
+ "i64:64:64-i32:32:32-i16:16:16-i1:32:32-"
"f64:64:64-f32:32:32-a0:0-n32");
// {} in inline assembly are packet specifiers, not assembly variant
diff --git a/test/Frontend/hexagon-target-basic.c b/test/Frontend/hexagon-target-basic.c
new file mode 100644
index 0000000000..2c0e82b4de
--- /dev/null
+++ b/test/Frontend/hexagon-target-basic.c
@@ -0,0 +1,8 @@
+// RUN: %clang_cc1 -emit-llvm -triple hexagon-unknown-unknown %s -S -o /dev/null
+
+// Testcase for bug 14744. Empty file is sufficient, since the problem
+// was a bad data layout string in the Hexagon target causing an ICE
+// when compiling any Hexagon program.
+
+int x; // In C99, a translation unit needs to have at least one declaration.
+