Index: test/Import/compound-assign-op/Inputs/F.cpp =================================================================== --- /dev/null +++ test/Import/compound-assign-op/Inputs/F.cpp @@ -0,0 +1,18 @@ +void f() { + unsigned iadd_eq = 0U; + iadd_eq += 1U; + unsigned isub_eq = 0U; + isub_eq -= 1U; + unsigned imul_eq = 0U; + imul_eq *= 1U; + unsigned idiv_eq = 0U; + idiv_eq /= 1U; + unsigned iand_eq = 0U; + iand_eq &= 1U; + unsigned ixor_eq = 0U; + ixor_eq ^= 1U; + unsigned ilsh_eq = 0U; + ilsh_eq <<= 1U; + unsigned irsh_eq = 0U; + irsh_eq >>= 1U; +} Index: test/Import/compound-assign-op/test.cpp =================================================================== --- /dev/null +++ test/Import/compound-assign-op/test.cpp @@ -0,0 +1,45 @@ +// RUN: clang-import-test -dump-ast -import %S/Inputs/F.cpp -expression %s | FileCheck %s + +// CHECK: VarDecl +// CHECK-NEXT: Integer +// CHECK-NEXT: CompoundAssignOperator +// CHECK-SAME: '+=' + +// CHECK: VarDecl +// CHECK-NEXT: Integer +// CHECK-NEXT: CompoundAssignOperator +// CHECK-SAME: '-=' + +// CHECK: VarDecl +// CHECK-NEXT: Integer +// CHECK-NEXT: CompoundAssignOperator +// CHECK-SAME: '*=' + +// CHECK: VarDecl +// CHECK-NEXT: Integer +// CHECK-NEXT: CompoundAssignOperator +// CHECK-SAME: '/=' + +// CHECK: VarDecl +// CHECK-NEXT: Integer +// CHECK-NEXT: CompoundAssignOperator +// CHECK-SAME: '&=' + +// CHECK: VarDecl +// CHECK-NEXT: Integer +// CHECK-NEXT: CompoundAssignOperator +// CHECK-SAME: '^=' + +// CHECK: VarDecl +// CHECK-NEXT: Integer +// CHECK-NEXT: CompoundAssignOperator +// CHECK-SAME: '<<=' + +// CHECK: VarDecl +// CHECK-NEXT: Integer +// CHECK-NEXT: CompoundAssignOperator +// CHECK-SAME: '>>=' + +void expr() { + f(); +}