diff options
| author | Lang Hames <lhames@gmail.com> | 2016-07-22 16:11:25 +0000 |
|---|---|---|
| committer | Lang Hames <lhames@gmail.com> | 2016-07-22 16:11:25 +0000 |
| commit | 5e51a2e31abac0d03f5a3056d368b7cd289beff1 (patch) | |
| tree | 3cfa6d2a2ff799451243715a1d8eae75289e5dfe /llvm/lib/Transforms/InstCombine/InstructionCombining.cpp | |
| parent | 047149f7452ac3eeeff226683d7fb1d354fc36cf (diff) | |
| download | bcm5719-llvm-5e51a2e31abac0d03f5a3056d368b7cd289beff1.tar.gz bcm5719-llvm-5e51a2e31abac0d03f5a3056d368b7cd289beff1.zip | |
[Support] Make ErrorAsOutParameter take an Error* rather than an Error&.
This allows ErrorAsOutParameter to work better with "optional" errors. For
example, consider a function where for certain input values it is known that
the function can't fail. This can now be written as:
Result foo(Arg X, Error *Err) {
ErrorAsOutParameter EAO(Err);
if (<Error Condition>) {
if (Err)
*Err = <report error>;
else
llvm_unreachable("Unexpected failure!");
}
}
Rather than having to construct an ErrorAsOutParameter under every conditional
where Err is known to be non-null.
llvm-svn: 276430
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstructionCombining.cpp')
0 files changed, 0 insertions, 0 deletions

