mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 07:06:38 +00:00
Compound assign
This commit is contained in:
parent
b6f42ab8be
commit
e92a5d1b0f
@ -897,6 +897,7 @@ public:
|
||||
return result; \
|
||||
} \
|
||||
Value *VisitBin##OP##Assign(const CompoundAssignOperator *E) { \
|
||||
ApplyAtomGroup Grp(CGF.getDebugInfo()); \
|
||||
return EmitCompoundAssign(E, &ScalarExprEmitter::Emit##OP); \
|
||||
}
|
||||
HANDLEBINOP(Mul)
|
||||
@ -5741,6 +5742,7 @@ LValue CodeGenFunction::EmitObjCIsaExpr(const ObjCIsaExpr *E) {
|
||||
|
||||
LValue CodeGenFunction::EmitCompoundAssignmentLValue(
|
||||
const CompoundAssignOperator *E) {
|
||||
ApplyAtomGroup Grp(getDebugInfo());
|
||||
ScalarExprEmitter Scalar(*this);
|
||||
Value *Result = nullptr;
|
||||
switch (E->getOpcode()) {
|
||||
|
@ -1,4 +1,7 @@
|
||||
// RUN: %clang -gkey-instructions %s -gmlt -gcolumn-info -S -emit-llvm -o - -Wno-unused-variable \
|
||||
// RUN: %clang -gkey-instructions -x c++ %s -gmlt -gcolumn-info -S -emit-llvm -o - -Wno-unused-variable \
|
||||
// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not atomRank
|
||||
|
||||
// RUN: %clang -gkey-instructions -x c %s -gmlt -gcolumn-info -S -emit-llvm -o - -Wno-unused-variable \
|
||||
// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not atomRank
|
||||
|
||||
unsigned long long g;
|
||||
@ -15,9 +18,17 @@ void fun() {
|
||||
// CHECK-NEXT: store i64 %0, ptr @g{{.*}}, !dbg [[G3R1:!.*]]
|
||||
// CHECK-NEXT: store i64 %0, ptr @g{{.*}}, !dbg [[G2R1:!.*]]
|
||||
g = g = g;
|
||||
|
||||
// Compound assignment.
|
||||
// CHECK: %1 = load i64, ptr @g
|
||||
// CHECK: %add = add i64 %1, 50, !dbg [[G4R2:!.*]]
|
||||
// CHECK: store i64 %add, ptr @g{{.*}}, !dbg [[G4R1:!.*]]
|
||||
g += 50;
|
||||
}
|
||||
|
||||
// CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
|
||||
// CHECK: [[G2R2]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 2)
|
||||
// CHECK: [[G3R1]] = !DILocation({{.*}}, atomGroup: 3, atomRank: 1)
|
||||
// CHECK: [[G2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)
|
||||
// CHECK: [[G4R2]] = !DILocation({{.*}}, atomGroup: 4, atomRank: 2)
|
||||
// CHECK: [[G4R1]] = !DILocation({{.*}}, atomGroup: 4, atomRank: 1)
|
Loading…
x
Reference in New Issue
Block a user