diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2010-12-12 08:39:38 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2010-12-12 08:39:38 +0000 |
commit | fe62274f48efcd93b2f3fc0fcc67cdf5725083db (patch) | |
tree | f552d993a2b027b293d511c4f0e2d105f6cbaba6 /lib/Sema/SemaOverload.cpp | |
parent | daf55d39306dccd13db46586c071262d9ace5533 (diff) |
Move and copy function calls around to remove the indirection through gotos
from the switch statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121626 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaOverload.cpp')
-rw-r--r-- | lib/Sema/SemaOverload.cpp | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/lib/Sema/SemaOverload.cpp b/lib/Sema/SemaOverload.cpp index abe1a33fd2..5ec7b935b2 100644 --- a/lib/Sema/SemaOverload.cpp +++ b/lib/Sema/SemaOverload.cpp @@ -5543,7 +5543,7 @@ Sema::AddBuiltinOperatorCandidates(OverloadedOperatorKind Op, if (NumArgs == 1) OpBuilder.addUnaryStarPointerOverloads(); else - goto BinaryStar; + OpBuilder.addGenericBinaryArithmeticOverloads(/*isComparison=*/false); break; case OO_Plus: // '+' is either unary or binary @@ -5551,15 +5551,18 @@ Sema::AddBuiltinOperatorCandidates(OverloadedOperatorKind Op, OpBuilder.addUnaryPlusPointerOverloads(); OpBuilder.addUnaryPlusOrMinusArithmeticOverloads(); } else { - goto BinaryPlus; + OpBuilder.addBinaryPlusOrMinusPointerOverloads(Op); + OpBuilder.addGenericBinaryArithmeticOverloads(/*isComparison=*/false); } break; case OO_Minus: // '-' is either unary or binary - if (NumArgs == 1) + if (NumArgs == 1) { OpBuilder.addUnaryPlusOrMinusArithmeticOverloads(); - else - goto BinaryMinus; + } else { + OpBuilder.addBinaryPlusOrMinusPointerOverloads(Op); + OpBuilder.addGenericBinaryArithmeticOverloads(/*isComparison=*/false); + } break; case OO_Amp: // '&' is either unary or binary @@ -5609,15 +5612,7 @@ Sema::AddBuiltinOperatorCandidates(OverloadedOperatorKind Op, OpBuilder.addGenericBinaryArithmeticOverloads(/*isComparison=*/true); break; - BinaryPlus: - BinaryMinus: - OpBuilder.addBinaryPlusOrMinusPointerOverloads(Op); - OpBuilder.addGenericBinaryArithmeticOverloads(/*isComparison=*/false);; - break; - case OO_Slash: - BinaryStar: - Conditional: OpBuilder.addGenericBinaryArithmeticOverloads(/*isComparison=*/false); break; @@ -5672,7 +5667,8 @@ Sema::AddBuiltinOperatorCandidates(OverloadedOperatorKind Op, case OO_Conditional: OpBuilder.addConditionalOperatorOverloads(); - goto Conditional; + OpBuilder.addGenericBinaryArithmeticOverloads(/*isComparison=*/false); + break; } } |