1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -x c++ -include %s -emit-llvm-only %s
2*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -x c++ -emit-pch %s -o %t
3*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -include-pch %t -emit-llvm-only %s
4*0a6a1f1dSLionel Sambuc
5*0a6a1f1dSLionel Sambuc #ifndef HEADER
6*0a6a1f1dSLionel Sambuc #define HEADER
7*0a6a1f1dSLionel Sambuc
8*0a6a1f1dSLionel Sambuc struct S00 { virtual void f(); };
9*0a6a1f1dSLionel Sambuc struct S01 { virtual void f(); };
10*0a6a1f1dSLionel Sambuc struct S02 { virtual void f(); };
11*0a6a1f1dSLionel Sambuc struct S03 { virtual void f(); };
12*0a6a1f1dSLionel Sambuc struct S04 { virtual void f(); };
13*0a6a1f1dSLionel Sambuc struct S05 { virtual void f(); };
14*0a6a1f1dSLionel Sambuc struct S06 { virtual void f(); };
15*0a6a1f1dSLionel Sambuc struct S07 { virtual void f(); };
16*0a6a1f1dSLionel Sambuc struct S08 { virtual void f(); };
17*0a6a1f1dSLionel Sambuc struct S09 { virtual void f(); };
18*0a6a1f1dSLionel Sambuc struct S10 { virtual void f(); };
19*0a6a1f1dSLionel Sambuc struct S11 { virtual void f(); };
20*0a6a1f1dSLionel Sambuc struct S12 { virtual void f(); };
21*0a6a1f1dSLionel Sambuc struct S13 { virtual void f(); };
22*0a6a1f1dSLionel Sambuc struct S14 { virtual void f(); };
23*0a6a1f1dSLionel Sambuc struct S15 { virtual void f(); };
24*0a6a1f1dSLionel Sambuc struct S16 { virtual void f(); };
25*0a6a1f1dSLionel Sambuc struct S17 { virtual void f(); };
26*0a6a1f1dSLionel Sambuc struct S18 { virtual void f(); };
27*0a6a1f1dSLionel Sambuc struct S19 { virtual void f(); };
28*0a6a1f1dSLionel Sambuc struct S20 { virtual void f(); };
29*0a6a1f1dSLionel Sambuc struct S21 { virtual void f(); };
30*0a6a1f1dSLionel Sambuc struct S22 { virtual void f(); };
31*0a6a1f1dSLionel Sambuc struct S23 { virtual void f(); };
32*0a6a1f1dSLionel Sambuc struct S24 { virtual void f(); };
33*0a6a1f1dSLionel Sambuc struct S25 { virtual void f(); };
34*0a6a1f1dSLionel Sambuc struct S26 { virtual void f(); };
35*0a6a1f1dSLionel Sambuc struct S27 { virtual void f(); };
36*0a6a1f1dSLionel Sambuc struct S28 { virtual void f(); };
37*0a6a1f1dSLionel Sambuc struct S29 { virtual void f(); };
38*0a6a1f1dSLionel Sambuc struct S30 { virtual void f(); };
39*0a6a1f1dSLionel Sambuc struct S31 { virtual void f(); };
40*0a6a1f1dSLionel Sambuc struct S32 { virtual void f(); };
41*0a6a1f1dSLionel Sambuc struct S33 { virtual void f(); };
42*0a6a1f1dSLionel Sambuc struct S34 { virtual void f(); };
43*0a6a1f1dSLionel Sambuc struct S35 { virtual void f(); };
44*0a6a1f1dSLionel Sambuc struct S36 { virtual void f(); };
45*0a6a1f1dSLionel Sambuc struct S37 { virtual void f(); };
46*0a6a1f1dSLionel Sambuc struct S38 { virtual void f(); };
47*0a6a1f1dSLionel Sambuc struct S39 { virtual void f(); };
48*0a6a1f1dSLionel Sambuc struct S40 { virtual void f(); };
49*0a6a1f1dSLionel Sambuc struct S41 { virtual void f(); };
50*0a6a1f1dSLionel Sambuc struct S42 { virtual void f(); };
51*0a6a1f1dSLionel Sambuc struct S43 { virtual void f(); };
52*0a6a1f1dSLionel Sambuc struct S44 { virtual void f(); };
53*0a6a1f1dSLionel Sambuc struct S45 { virtual void f(); };
54*0a6a1f1dSLionel Sambuc struct S46 { virtual void f(); };
55*0a6a1f1dSLionel Sambuc struct S47 { virtual void f(); };
56*0a6a1f1dSLionel Sambuc struct S48 { virtual void f(); };
57*0a6a1f1dSLionel Sambuc struct S49 { virtual void f(); };
58*0a6a1f1dSLionel Sambuc struct S50 { virtual void f(); };
59*0a6a1f1dSLionel Sambuc struct S51 { virtual void f(); };
60*0a6a1f1dSLionel Sambuc struct S52 { virtual void f(); };
61*0a6a1f1dSLionel Sambuc struct S53 { virtual void f(); };
62*0a6a1f1dSLionel Sambuc struct S54 { virtual void f(); };
63*0a6a1f1dSLionel Sambuc struct S55 { virtual void f(); };
64*0a6a1f1dSLionel Sambuc struct S56 { virtual void f(); };
65*0a6a1f1dSLionel Sambuc struct S57 { virtual void f(); };
66*0a6a1f1dSLionel Sambuc struct S58 { virtual void f(); };
67*0a6a1f1dSLionel Sambuc struct S59 { virtual void f(); };
68*0a6a1f1dSLionel Sambuc struct S60 { virtual void f(); };
69*0a6a1f1dSLionel Sambuc struct S61 { virtual void f(); };
70*0a6a1f1dSLionel Sambuc struct S62 { virtual void f(); };
71*0a6a1f1dSLionel Sambuc struct S63 { virtual void f(); };
72*0a6a1f1dSLionel Sambuc struct S64 { virtual void f(); };
73*0a6a1f1dSLionel Sambuc struct S65 { virtual void f(); };
74*0a6a1f1dSLionel Sambuc struct S66 { virtual void f(); };
75*0a6a1f1dSLionel Sambuc struct S67 { virtual void f(); };
76*0a6a1f1dSLionel Sambuc struct S68 { virtual void f(); };
77*0a6a1f1dSLionel Sambuc struct S69 { virtual void f(); };
78*0a6a1f1dSLionel Sambuc
79*0a6a1f1dSLionel Sambuc struct Test {
80*0a6a1f1dSLionel Sambuc // Deserializing this key function should cause the key functions
81*0a6a1f1dSLionel Sambuc // table to get resized.
82*0a6a1f1dSLionel Sambuc virtual void f(S00, S01, S02, S03, S04, S05, S06, S07, S08, S09,
83*0a6a1f1dSLionel Sambuc S10, S11, S12, S13, S14, S15, S16, S17, S18, S19,
84*0a6a1f1dSLionel Sambuc S20, S21, S22, S23, S24, S25, S26, S27, S28, S29,
85*0a6a1f1dSLionel Sambuc S30, S31, S32, S33, S34, S35, S36, S37, S38, S39,
86*0a6a1f1dSLionel Sambuc S40, S41, S42, S43, S44, S45, S46, S47, S48, S49,
87*0a6a1f1dSLionel Sambuc S50, S51, S52, S53, S54, S55, S56, S57, S58, S59,
88*0a6a1f1dSLionel Sambuc S60, S61, S62, S63, S64, S65, S66, S67, S68, S69);
89*0a6a1f1dSLionel Sambuc virtual void g();
90*0a6a1f1dSLionel Sambuc };
91*0a6a1f1dSLionel Sambuc
92*0a6a1f1dSLionel Sambuc #else
93*0a6a1f1dSLionel Sambuc
g()94*0a6a1f1dSLionel Sambuc void Test::g() {}
h(Test & t)95*0a6a1f1dSLionel Sambuc void h(Test &t) { t.g(); }
96*0a6a1f1dSLionel Sambuc
97*0a6a1f1dSLionel Sambuc #endif
98