175c12bf46d5175060d0adeab992a886f22ef7ef8David Blaikie// RUN: %clang_cc1 -emit-llvm -g < %s | FileCheck %s
2d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel// Test to check number of lexical scope identified in debug info.
375c12bf46d5175060d0adeab992a886f22ef7ef8David Blaikie// CHECK: DW_TAG_lexical_block
475c12bf46d5175060d0adeab992a886f22ef7ef8David Blaikie// CHECK: DW_TAG_lexical_block
575c12bf46d5175060d0adeab992a886f22ef7ef8David Blaikie// CHECK: DW_TAG_lexical_block
675c12bf46d5175060d0adeab992a886f22ef7ef8David Blaikie// CHECK: DW_TAG_lexical_block
7d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel
8d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patelextern int bar();
9d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patelextern void foobar();
10d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patelvoid foo(int s) {
11d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel  unsigned loc = 0;
12d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel  if (s) {
13d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel    if (bar()) {
14d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel      foobar();
15d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel    }
16d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel  } else {
17d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel    loc = 1;
18d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel    if (bar()) {
19d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel      loc = 2;
20d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel    }
21d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel  }
22d19429f01a4169b573cafa466dd7a09a51e5fd92Devang Patel}
23