aboutsummaryrefslogtreecommitdiffstats
path: root/test/FrontendC
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2010-02-17 02:20:34 +0000
committerDevang Patel <dpatel@apple.com>2010-02-17 02:20:34 +0000
commit067e6d9f234becde5a72eff6f8bc64bfeb557ea5 (patch)
tree66dc0d7ced7216b9b9d45213a3c5700835500739 /test/FrontendC
parent2e3202e51608b8d776b8a022d59676f67951f764 (diff)
downloadexternal_llvm-067e6d9f234becde5a72eff6f8bc64bfeb557ea5.zip
external_llvm-067e6d9f234becde5a72eff6f8bc64bfeb557ea5.tar.gz
external_llvm-067e6d9f234becde5a72eff6f8bc64bfeb557ea5.tar.bz2
Before setting scope end marker, pay attention to scope begin marker and existing scope end marker, if any. Scope must begin before it ends and nested inlined scope do not truncate surrounding scope.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96445 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/FrontendC')
-rw-r--r--test/FrontendC/2010-02-16-DbgVarScope.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/FrontendC/2010-02-16-DbgVarScope.c b/test/FrontendC/2010-02-16-DbgVarScope.c
new file mode 100644
index 0000000..1d912d0
--- /dev/null
+++ b/test/FrontendC/2010-02-16-DbgVarScope.c
@@ -0,0 +1,30 @@
+// RUN: %llvmgcc -S -O0 -g %s -o - | \
+// RUN: llc --disable-fp-elim -o %t.s -O0 -relocation-model=pic
+// RUN: %compile_c %t.s -o %t.o
+// RUN: %link %t.o -o %t.exe
+// RUN: echo {break 24\nrun\np loc\n} > %t.in
+// RN: gdb -q -batch -n -x %t.in %t.exe | tee %t.out | \
+// RN: grep {$1 = 1}
+
+int g1 = 1;
+int g2 = 2;
+
+int __attribute__((always_inline)) bar() {
+ return g2 - g1;
+}
+void foobar() {}
+
+void foo(int s) {
+ unsigned loc = 0;
+ if (s) {
+ loc = 1;
+ foobar();
+ } else {
+ loc = bar();
+ foobar();
+ }
+}
+
+int main() {
+ foo(0);
+}