brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 47a4aa1 Raw
84 lines · cpp
1// When linking with link.exe, -gdwarf still produces PDB instead.2// UNSUPPORTED: system-windows3 4// RUN: %clangxx_host -gdwarf -std=c++11 -o %t %s5// RUN: %lldb %t \6// RUN:   -o run \7// RUN:   -o "frame var --show-types f" \8// RUN:   -o "frame var vla0" \9// RUN:   -o "frame var fla0" \10// RUN:   -o "frame var fla1" \11// RUN:   -o "frame var vla01" \12// RUN:   -o "frame var vla10" \13// RUN:   -o "frame var vlaN" \14// RUN:   -o "frame var vlaNM" \15// RUN:   -o exit | FileCheck %s16 17struct Foo {18  static constexpr int n = 1;19  int m_vlaN[n];20 21  int m_vla0[0];22};23 24int main() {25  Foo f;26  f.m_vlaN[0] = 60;27 28  // CHECK:      (lldb) frame var --show-types f29  // CHECK-NEXT: (Foo) f = {30  // CHECK-NEXT:   (int[1]) m_vlaN = {31  // CHECK-NEXT:     (int) [0] = 6032  // CHECK-NEXT:   }33  // CHECK-NEXT:   (int[0]) m_vla0 = {}34  // CHECK-NEXT: }35 36  int vla0[0] = {};37 38  // CHECK:      (lldb) frame var vla039  // CHECK-NEXT: (int[0]) vla0 = {}40 41  int fla0[] = {};42 43  // CHECK:      (lldb) frame var fla044  // CHECK-NEXT: (int[0]) fla0 = {}45 46  int fla1[] = {42};47 48  // CHECK:      (lldb) frame var fla149  // CHECK-NEXT: (int[1]) fla1 = ([0] = 42)50 51  int vla01[0][1];52 53  // CHECK:      (lldb) frame var vla0154  // CHECK-NEXT: (int[0][1]) vla01 = {}55 56  int vla10[1][0];57 58  // CHECK:      (lldb) frame var vla1059  // CHECK-NEXT: (int[1][0]) vla10 = ([0] = int[0]60 61  int n = 3;62  int vlaN[n];63  for (int i = 0; i < n; ++i)64    vlaN[i] = -i;65 66  // CHECK:      (lldb) frame var vlaN67  // CHECK-NEXT: (int[]) vlaN = ([0] = 0, [1] = -1, [2] = -2)68 69  int m = 2;70  int vlaNM[n][m];71  for (int i = 0; i < n; ++i)72    for (int j = 0; j < m; ++j)73      vlaNM[i][j] = i + j;74 75  // FIXME: multi-dimensional VLAs aren't well supported76  // CHECK:      (lldb) frame var vlaNM77  // CHECK-NEXT: (int[][]) vlaNM = {78  // CHECK-NEXT:   [0] = ([0] = 0, [1] = 1, [2] = 1)79  // CHECK-NEXT:   [1] = ([0] = 1, [1] = 1, [2] = 2)80  // CHECK-NEXT: }81 82  __builtin_debugtrap();83}84