[PATCH] D51524: [ARM64] [Windows] Handle funclets
Sanjin Sijaric via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 1 13:56:15 PDT 2018
ssijaric updated this revision to Diff 172224.
ssijaric added a comment.
Remove an unused variable. Fix a nasty bug that Eli just pointed out, where I didn't insert a PrologEnd in funclets in this patch. Previously, I relied on an RAII object to this for me when we would go out of scope. I removed that logic, but forgot to insert a prolog end marker for the funclet case.
With this patch, the following should now pass:
#include <stdio.h>
int
main() {
int B[100];
int x = 4;
B[2] = 2;
B[4] = 0;
try {
throw B[2];
} catch (int i) {
printf("Caught %d\n", i);
B[4] = B[i] + i;
try {
throw 'c';
} catch (char c) {
printf("Caught char %c\n", c);
}
}
return x + B[4];
}
with the correct print outs and a return value of 8.
Repository:
rL LLVM
https://reviews.llvm.org/D51524
Files:
lib/Target/AArch64/AArch64FrameLowering.cpp
lib/Target/AArch64/AArch64FrameLowering.h
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/AArch64/AArch64ISelLowering.h
lib/Target/AArch64/AArch64InstrInfo.cpp
lib/Target/AArch64/AArch64InstrInfo.td
lib/Target/AArch64/AArch64MCInstLower.cpp
lib/Target/AArch64/AArch64RegisterInfo.cpp
lib/Target/AArch64/AArch64RegisterInfo.h
test/CodeGen/AArch64/wineh-try-catch.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51524.172224.patch
Type: text/x-patch
Size: 27716 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181101/3c6afbe2/attachment.bin>
More information about the llvm-commits
mailing list