aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaOverload.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2010-12-12 08:39:38 +0000
committerChandler Carruth <chandlerc@gmail.com>2010-12-12 08:39:38 +0000
commitfe62274f48efcd93b2f3fc0fcc67cdf5725083db (patch)
treef552d993a2b027b293d511c4f0e2d105f6cbaba6 /lib/Sema/SemaOverload.cpp
parentdaf55d39306dccd13db46586c071262d9ace5533 (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.cpp24
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;
}
}