aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Target/ARM/ARMAsmPrinter.cpp2
-rw-r--r--test/CodeGen/ARM/weak.ll9
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMAsmPrinter.cpp b/lib/Target/ARM/ARMAsmPrinter.cpp
index 51a0f883d2..ba5cdb1940 100644
--- a/lib/Target/ARM/ARMAsmPrinter.cpp
+++ b/lib/Target/ARM/ARMAsmPrinter.cpp
@@ -128,7 +128,7 @@ bool ARMAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
break;
case Function::WeakLinkage:
case Function::LinkOnceLinkage:
- assert(0 && "Not implemented");
+ O << "\t.weak\t" << CurrentFnName << "\n";
break;
}
EmitAlignment(2, F);
diff --git a/test/CodeGen/ARM/weak.ll b/test/CodeGen/ARM/weak.ll
new file mode 100644
index 0000000000..682da8c42b
--- /dev/null
+++ b/test/CodeGen/ARM/weak.ll
@@ -0,0 +1,9 @@
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm &&
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep .weak
+
+implementation ; Functions:
+
+weak uint %f() {
+entry:
+ unreachable
+}