brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 4fc88b6 Raw
56 lines · cpp
1// Tests evaluating expressions with side effects.2// Applied side effect should be visible to the debugger.3 4// RUN: %build %s -o %t5// RUN: %lldb %t \6// RUN:   -o "settings set target.process.track-memory-cache-changes false" \7// RUN:   -o "run" \8// RUN:   -o "frame variable x" \9// RUN:   -o "expr x.inc()" \10// RUN:   -o "frame variable x" \11// RUN:   -o "continue" \12// RUN:   -o "frame variable x" \13// RUN:   -o "expr x.i = 10" \14// RUN:   -o "frame variable x" \15// RUN:   -o "continue" \16// RUN:   -o "frame variable x" \17// RUN:   -o "exit" | FileCheck %s -dump-input=fail18 19class X {20  int i = 0;21 22public:23  void inc() { ++i; }24};25 26int main() {27  X x;28  x.inc();29 30  __builtin_debugtrap();31  __builtin_debugtrap();32  __builtin_debugtrap();33  return 0;34}35 36// CHECK-LABEL: frame variable x37// CHECK: (X) x = (i = 1)38 39// CHECK-LABEL: expr x.inc()40// CHECK-LABEL: frame variable x41// CHECK: (X) x = (i = 2)42 43// CHECK-LABEL: continue44// CHECK-LABEL: frame variable x45// CHECK: (X) x = (i = 2)46 47// CHECK-LABEL: expr x.i = 1048// CHECK: (int) $0 = 1049 50// CHECK-LABEL: frame variable x51// CHECK: (X) x = (i = 10)52 53// CHECK-LABEL: continue54// CHECK-LABEL: frame variable x55// CHECK: (X) x = (i = 10)56