diff options
Diffstat (limited to 'test/Assembler/2007-02-07-UpgradeCSRETCC.ll')
-rw-r--r-- | test/Assembler/2007-02-07-UpgradeCSRETCC.ll | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/Assembler/2007-02-07-UpgradeCSRETCC.ll b/test/Assembler/2007-02-07-UpgradeCSRETCC.ll new file mode 100644 index 0000000..745c499 --- /dev/null +++ b/test/Assembler/2007-02-07-UpgradeCSRETCC.ll @@ -0,0 +1,25 @@ +; For PR1187 +; RUN: llvm-upgrade < %s > /dev/null +; XFAIL: * +; Un-XFAIL this when PR1146 is fixed. + +%mystruct = type { int, double } +%glob = global %mystruct { int 3, double 42.0 } +%fptr = external global void (i32)* + +implementation + +csretcc void %nada(%mystruct * %ptr, int %val) { + ret void +} + +int %main(int %argc, ubyte** %argv) { + %astr = alloca %mystruct + call void %nada(%mystruct* %astr, i32 7) + %fptr = alloca void (%mystruct*, i32)* + %f = load void (%mystruct*, i32)**%fptr + call csretcc void %f(%mystruct* %astr, i32 7) + store void (%mystruct* , i32)* %nada, void (%mystruct*, i32)** %fptr + + ret int 0 +} |