Changeset 652:c8fcde3337b0
- Timestamp:
- 10/05/08 16:26:25
(2 months ago)
- Author:
- Christian Kamm <kamm incasoftware de>
- branch:
- default
- Message:
Fix TryFinally? without body or finalbody.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r632 |
r652 |
|
| 512 | 512 | DtoDwarfStopPoint(loc.linnum); |
|---|
| 513 | 513 | |
|---|
| | 514 | // if there's no finalbody or no body, things are simple |
|---|
| | 515 | if (!finalbody) { |
|---|
| | 516 | if (body) |
|---|
| | 517 | body->toIR(p); |
|---|
| | 518 | return; |
|---|
| | 519 | } |
|---|
| | 520 | if (!body) { |
|---|
| | 521 | finalbody->toIR(p); |
|---|
| | 522 | return; |
|---|
| | 523 | } |
|---|
| | 524 | |
|---|
| 514 | 525 | // create basic blocks |
|---|
| 515 | 526 | llvm::BasicBlock* oldend = p->scopeend(); |
|---|
| … | … | |
| 530 | 541 | p->scope() = IRScope(landingpadbb, endbb); |
|---|
| 531 | 542 | |
|---|
| | 543 | assert(finalbody); |
|---|
| 532 | 544 | gIR->func()->landingPad.addFinally(finalbody); |
|---|
| 533 | 545 | gIR->func()->landingPad.push(landingpadbb); |
|---|
| … | … | |
| 551 | 563 | // |
|---|
| 552 | 564 | p->scope() = IRScope(finallybb,landingpadbb); |
|---|
| 553 | | assert(finalbody); |
|---|
| 554 | 565 | finalbody->toIR(p); |
|---|
| 555 | 566 | |
|---|