1*67e74705SXin Li 2*67e74705SXin Li 3*67e74705SXin Li 4*67e74705SXin Li typedef int T; OBSCURE(func)5*67e74705SXin Livoid OBSCURE(func)(int x) { 6*67e74705SXin Li OBSCURE(T) DECORATION value; 7*67e74705SXin Li } 8*67e74705SXin Li 9*67e74705SXin Li 10*67e74705SXin Li // Without PCH 11*67e74705SXin Li // RUN: c-index-test -cursor-at=%s.h:1:11 \ 12*67e74705SXin Li // RUN: -cursor-at=%s.h:2:14 \ 13*67e74705SXin Li // RUN: -cursor-at=%s.h:4:5 \ 14*67e74705SXin Li // RUN: -cursor-at=%s.h:5:5 \ 15*67e74705SXin Li // RUN: -cursor-at=%s.h:5:14 \ 16*67e74705SXin Li // RUN: -cursor-at=%s:5:7 \ 17*67e74705SXin Li // RUN: -cursor-at=%s:6:6 \ 18*67e74705SXin Li // RUN: -cursor-at=%s:6:19 \ 19*67e74705SXin Li // RUN: -include %s.h %s | FileCheck %s 20*67e74705SXin Li 21*67e74705SXin Li // With PCH 22*67e74705SXin Li // RUN: c-index-test -write-pch %t.h.pch %s.h -Xclang -detailed-preprocessing-record 23*67e74705SXin Li // RUN: c-index-test -cursor-at=%s.h:1:11 \ 24*67e74705SXin Li // RUN: -cursor-at=%s.h:2:14 \ 25*67e74705SXin Li // RUN: -cursor-at=%s.h:4:5 \ 26*67e74705SXin Li // RUN: -cursor-at=%s.h:5:5 \ 27*67e74705SXin Li // RUN: -cursor-at=%s.h:5:14 \ 28*67e74705SXin Li // RUN: -cursor-at=%s:5:7 \ 29*67e74705SXin Li // RUN: -cursor-at=%s:6:6 \ 30*67e74705SXin Li // RUN: -cursor-at=%s:6:19 \ 31*67e74705SXin Li // RUN: -include %t.h %s | FileCheck %s 32*67e74705SXin Li 33*67e74705SXin Li // From header 34*67e74705SXin Li // CHECK: macro definition=OBSCURE 35*67e74705SXin Li // CHECK: macro definition=DECORATION 36*67e74705SXin Li // CHECK: macro expansion=DECORATION:2:9 37*67e74705SXin Li // CHECK: macro expansion=OBSCURE:1:9 38*67e74705SXin Li // CHECK: macro expansion=DECORATION:2:9 39*67e74705SXin Li 40*67e74705SXin Li // From main file 41*67e74705SXin Li // CHECK: macro expansion=OBSCURE:1:9 42*67e74705SXin Li // CHECK: macro expansion=OBSCURE:1:9 43*67e74705SXin Li // CHECK: macro expansion=DECORATION:2:9 44