187aa9c9eSJonas Devlieghere // clang-format off
2*eb50b643SPavel Labath // REQUIRES: lld, x86
387aa9c9eSJonas Devlieghere 
4*eb50b643SPavel Labath // RUN: %clang_cl --target=x86_64-windows-msvc -Od -Z7 -GR- -c /Fo%t.obj -- %s
5*eb50b643SPavel Labath // RUN: lld-link -debug:full -nodefaultlib -entry:main %t.obj -out:%t.exe -pdb:%t.pdb
687aa9c9eSJonas Devlieghere // RUN: env LLDB_USE_NATIVE_PDB_READER=1 %lldb -f %t.exe -s \
787aa9c9eSJonas Devlieghere // RUN:     %p/Inputs/ast-methods.lldbinit 2>&1 | FileCheck %s
887aa9c9eSJonas Devlieghere 
987aa9c9eSJonas Devlieghere struct Struct {
1087aa9c9eSJonas Devlieghere   void simple_method() {}
1187aa9c9eSJonas Devlieghere 
1287aa9c9eSJonas Devlieghere   virtual void virtual_method() {}
1387aa9c9eSJonas Devlieghere 
1487aa9c9eSJonas Devlieghere   static void static_method() {}
1587aa9c9eSJonas Devlieghere 
1687aa9c9eSJonas Devlieghere   int overloaded_method() {}
1787aa9c9eSJonas Devlieghere   int overloaded_method(char c) {}
1887aa9c9eSJonas Devlieghere   int overloaded_method(char c, int i, ...) {}
1987aa9c9eSJonas Devlieghere };
2087aa9c9eSJonas Devlieghere 
2187aa9c9eSJonas Devlieghere Struct s;
2287aa9c9eSJonas Devlieghere 
2387aa9c9eSJonas Devlieghere int main(int argc, char **argv) {
2487aa9c9eSJonas Devlieghere   return 0;
2587aa9c9eSJonas Devlieghere }
2687aa9c9eSJonas Devlieghere 
2787aa9c9eSJonas Devlieghere // CHECK: TranslationUnitDecl
2887aa9c9eSJonas Devlieghere // CHECK: |-CXXRecordDecl {{.*}} struct Struct definition
2987aa9c9eSJonas Devlieghere // CHECK: | |-CXXMethodDecl {{.*}} simple_method 'void (){{.*}}'
3087aa9c9eSJonas Devlieghere // CHECK: | |-CXXMethodDecl {{.*}} virtual_method 'void (){{.*}}' virtual
3187aa9c9eSJonas Devlieghere // CHECK: | |-CXXMethodDecl {{.*}} static_method 'void ()' static
3287aa9c9eSJonas Devlieghere // CHECK: | |-CXXMethodDecl {{.*}} overloaded_method 'int (){{.*}}'
3387aa9c9eSJonas Devlieghere // CHECK: | |-CXXMethodDecl {{.*}} overloaded_method 'int (char){{.*}}'
3487aa9c9eSJonas Devlieghere // CHECK: | | `-ParmVarDecl {{.*}} 'char'
3587aa9c9eSJonas Devlieghere // CHECK: | `-CXXMethodDecl {{.*}} overloaded_method 'int (char, int, ...)'
3687aa9c9eSJonas Devlieghere // CHECK: |   |-ParmVarDecl {{.*}} 'char'
3787aa9c9eSJonas Devlieghere // CHECK: |   `-ParmVarDecl {{.*}} 'int'
38