OSDN Git Service

PR tree-optimization/30843
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / redecl-3.c
1 /* Test for multiple declarations and composite types.  Includes bug
2    13801.  */
3 /* Origin: Joseph Myers <jsm@polyomino.org.uk> */
4 /* { dg-do compile } */
5 /* { dg-options "-g" } */
6
7 typedef int IA[];
8 typedef int A10[10];
9
10 /* Test all combinations of: a variable declared at file scope (no
11    type specifiers, or extern, or static), or just inside a function
12    (with extern), redeclared in an inner scope (with extern), and
13    redeclared in an inner scope when the previous declaration is
14    hidden (with extern, and not if the original declaration was
15    static).  Test three times: incomplete variable types; pointers to
16    incomplete types; functions returning such pointers.  */
17
18 IA a0;
19 void
20 f0 (void)
21 {
22   sizeof(a0); /* { dg-error "incomplete" } */
23   {
24     extern IA a0;
25     sizeof(a0); /* { dg-error "incomplete" } */
26     {
27       int a0;
28       {
29         extern IA a0;
30         sizeof(a0); /* { dg-error "incomplete" } */
31       }
32     }
33     sizeof(a0); /* { dg-error "incomplete" } */
34   }
35   sizeof(a0); /* { dg-error "incomplete" } */
36 }
37 extern A10 a0;
38
39 IA a1;
40 void
41 f1 (void)
42 {
43   sizeof(a1); /* { dg-error "incomplete" } */
44   {
45     extern IA a1;
46     sizeof(a1); /* { dg-error "incomplete" } */
47     {
48       int a1;
49       {
50         extern A10 a1;
51         sizeof(a1);
52       }
53     }
54     sizeof(a1); /* { dg-error "incomplete" } */
55   }
56   sizeof(a1); /* { dg-error "incomplete" } */
57 }
58 extern A10 a1;
59
60 IA a2;
61 void
62 f2 (void)
63 {
64   sizeof(a2); /* { dg-error "incomplete" } */
65   {
66     extern A10 a2;
67     sizeof(a2);
68     {
69       int a2;
70       {
71         extern IA a2;
72         sizeof(a2); /* { dg-error "incomplete" } */
73       }
74     }
75     sizeof(a2);
76   }
77   sizeof(a2); /* { dg-error "incomplete" } */
78 }
79 extern A10 a2;
80
81 IA a3;
82 void
83 f3 (void)
84 {
85   sizeof(a3); /* { dg-error "incomplete" } */
86   {
87     extern A10 a3;
88     sizeof(a3);
89     {
90       int a3;
91       {
92         extern A10 a3;
93         sizeof(a3);
94       }
95     }
96     sizeof(a3);
97   }
98   sizeof(a3); /* { dg-error "incomplete" } */
99 }
100 extern A10 a3;
101
102 A10 a4;
103 void
104 f4 (void)
105 {
106   sizeof(a4);
107   {
108     extern IA a4;
109     sizeof(a4);
110     {
111       int a4;
112       {
113         extern IA a4;
114         sizeof(a4); /* { dg-error "incomplete" } */
115       }
116     }
117     sizeof(a4);
118   }
119   sizeof(a4);
120 }
121 extern A10 a4;
122
123 A10 a5;
124 void
125 f5 (void)
126 {
127   sizeof(a5);
128   {
129     extern IA a5;
130     sizeof(a5);
131     {
132       int a5;
133       {
134         extern A10 a5;
135         sizeof(a5);
136       }
137     }
138     sizeof(a5);
139   }
140   sizeof(a5);
141 }
142 extern A10 a5;
143
144 A10 a6;
145 void
146 f6 (void)
147 {
148   sizeof(a6);
149   {
150     extern A10 a6;
151     sizeof(a6);
152     {
153       int a6;
154       {
155         extern IA a6;
156         sizeof(a6); /* { dg-error "incomplete" } */
157       }
158     }
159     sizeof(a6);
160   }
161   sizeof(a6);
162 }
163 extern A10 a6;
164
165 A10 a7;
166 void
167 f7 (void)
168 {
169   sizeof(a7);
170   {
171     extern A10 a7;
172     sizeof(a7);
173     {
174       int a7;
175       {
176         extern A10 a7;
177         sizeof(a7);
178       }
179     }
180     sizeof(a7);
181   }
182   sizeof(a7);
183 }
184 extern A10 a7;
185
186 extern IA a8;
187 void
188 f8 (void)
189 {
190   sizeof(a8); /* { dg-error "incomplete" } */
191   {
192     extern IA a8;
193     sizeof(a8); /* { dg-error "incomplete" } */
194     {
195       int a8;
196       {
197         extern IA a8;
198         sizeof(a8); /* { dg-error "incomplete" } */
199       }
200     }
201     sizeof(a8); /* { dg-error "incomplete" } */
202   }
203   sizeof(a8); /* { dg-error "incomplete" } */
204 }
205 extern A10 a8;
206
207 extern IA a9;
208 void
209 f9 (void)
210 {
211   sizeof(a9); /* { dg-error "incomplete" } */
212   {
213     extern IA a9;
214     sizeof(a9); /* { dg-error "incomplete" } */
215     {
216       int a9;
217       {
218         extern A10 a9;
219         sizeof(a9);
220       }
221     }
222     sizeof(a9); /* { dg-error "incomplete" } */
223   }
224   sizeof(a9); /* { dg-error "incomplete" } */
225 }
226 extern A10 a9;
227
228 extern IA a10;
229 void
230 f10 (void)
231 {
232   sizeof(a10); /* { dg-error "incomplete" } */
233   {
234     extern A10 a10;
235     sizeof(a10);
236     {
237       int a10;
238       {
239         extern IA a10;
240         sizeof(a10); /* { dg-error "incomplete" } */
241       }
242     }
243     sizeof(a10);
244   }
245   sizeof(a10); /* { dg-error "incomplete" } */
246 }
247 extern A10 a10;
248
249 extern IA a11;
250 void
251 f11 (void)
252 {
253   sizeof(a11); /* { dg-error "incomplete" } */
254   {
255     extern A10 a11;
256     sizeof(a11);
257     {
258       int a11;
259       {
260         extern A10 a11;
261         sizeof(a11);
262       }
263     }
264     sizeof(a11);
265   }
266   sizeof(a11); /* { dg-error "incomplete" } */
267 }
268 extern A10 a11;
269
270 extern A10 a12;
271 void
272 f12 (void)
273 {
274   sizeof(a12);
275   {
276     extern IA a12;
277     sizeof(a12);
278     {
279       int a12;
280       {
281         extern IA a12;
282         sizeof(a12); /* { dg-error "incomplete" } */
283       }
284     }
285     sizeof(a12);
286   }
287   sizeof(a12);
288 }
289 extern A10 a12;
290
291 extern A10 a13;
292 void
293 f13 (void)
294 {
295   sizeof(a13);
296   {
297     extern IA a13;
298     sizeof(a13);
299     {
300       int a13;
301       {
302         extern A10 a13;
303         sizeof(a13);
304       }
305     }
306     sizeof(a13);
307   }
308   sizeof(a13);
309 }
310 extern A10 a13;
311
312 extern A10 a14;
313 void
314 f14 (void)
315 {
316   sizeof(a14);
317   {
318     extern A10 a14;
319     sizeof(a14);
320     {
321       int a14;
322       {
323         extern IA a14;
324         sizeof(a14); /* { dg-error "incomplete" } */
325       }
326     }
327     sizeof(a14);
328   }
329   sizeof(a14);
330 }
331 extern A10 a14;
332
333 extern A10 a15;
334 void
335 f15 (void)
336 {
337   sizeof(a15);
338   {
339     extern A10 a15;
340     sizeof(a15);
341     {
342       int a15;
343       {
344         extern A10 a15;
345         sizeof(a15);
346       }
347     }
348     sizeof(a15);
349   }
350   sizeof(a15);
351 }
352 extern A10 a15;
353
354 static IA a16;
355 void
356 f16 (void)
357 {
358   sizeof(a16); /* { dg-error "incomplete" } */
359   {
360     extern IA a16;
361     sizeof(a16); /* { dg-error "incomplete" } */
362   }
363   sizeof(a16); /* { dg-error "incomplete" } */
364 }
365 extern A10 a16;
366
367 static IA a17;
368 void
369 f17 (void)
370 {
371   sizeof(a17); /* { dg-error "incomplete" } */
372   {
373     extern A10 a17;
374     sizeof(a17);
375   }
376   sizeof(a17); /* { dg-error "incomplete" } */
377 }
378 extern A10 a17;
379
380 static A10 a18;
381 void
382 f18 (void)
383 {
384   sizeof(a18);
385   {
386     extern IA a18;
387     sizeof(a18);
388   }
389   sizeof(a18);
390 }
391 extern A10 a18;
392
393 static A10 a19;
394 void
395 f19 (void)
396 {
397   sizeof(a19);
398   {
399     extern A10 a19;
400     sizeof(a19);
401   }
402   sizeof(a19);
403 }
404 extern A10 a19;
405
406 IA *b0;
407 void
408 g0 (void)
409 {
410   sizeof(*b0); /* { dg-error "incomplete" } */
411   {
412     extern IA *b0;
413     sizeof(*b0); /* { dg-error "incomplete" } */
414     {
415       int b0;
416       {
417         extern IA *b0;
418         sizeof(*b0); /* { dg-error "incomplete" } */
419       }
420     }
421     sizeof(*b0); /* { dg-error "incomplete" } */
422   }
423   sizeof(*b0); /* { dg-error "incomplete" } */
424 }
425 extern A10 *b0;
426
427 IA *b1;
428 void
429 g1 (void)
430 {
431   sizeof(*b1); /* { dg-error "incomplete" } */
432   {
433     extern IA *b1;
434     sizeof(*b1); /* { dg-error "incomplete" } */
435     {
436       int b1;
437       {
438         extern A10 *b1;
439         sizeof(*b1);
440       }
441     }
442     sizeof(*b1); /* { dg-error "incomplete" } */
443   }
444   sizeof(*b1); /* { dg-error "incomplete" } */
445 }
446 extern A10 *b1;
447
448 IA *b2;
449 void
450 g2 (void)
451 {
452   sizeof(*b2); /* { dg-error "incomplete" } */
453   {
454     extern A10 *b2;
455     sizeof(*b2);
456     {
457       int b2;
458       {
459         extern IA *b2;
460         sizeof(*b2); /* { dg-error "incomplete" } */
461       }
462     }
463     sizeof(*b2);
464   }
465   sizeof(*b2); /* { dg-error "incomplete" } */
466 }
467 extern A10 *b2;
468
469 IA *b3;
470 void
471 g3 (void)
472 {
473   sizeof(*b3); /* { dg-error "incomplete" } */
474   {
475     extern A10 *b3;
476     sizeof(*b3);
477     {
478       int b3;
479       {
480         extern A10 *b3;
481         sizeof(*b3);
482       }
483     }
484     sizeof(*b3);
485   }
486   sizeof(*b3); /* { dg-error "incomplete" } */
487 }
488 extern A10 *b3;
489
490 A10 *b4;
491 void
492 g4 (void)
493 {
494   sizeof(*b4);
495   {
496     extern IA *b4;
497     sizeof(*b4);
498     {
499       int b4;
500       {
501         extern IA *b4;
502         sizeof(*b4); /* { dg-error "incomplete" } */
503       }
504     }
505     sizeof(*b4);
506   }
507   sizeof(*b4);
508 }
509 extern A10 *b4;
510
511 A10 *b5;
512 void
513 g5 (void)
514 {
515   sizeof(*b5);
516   {
517     extern IA *b5;
518     sizeof(*b5);
519     {
520       int b5;
521       {
522         extern A10 *b5;
523         sizeof(*b5);
524       }
525     }
526     sizeof(*b5);
527   }
528   sizeof(*b5);
529 }
530 extern A10 *b5;
531
532 A10 *b6;
533 void
534 g6 (void)
535 {
536   sizeof(*b6);
537   {
538     extern A10 *b6;
539     sizeof(*b6);
540     {
541       int b6;
542       {
543         extern IA *b6;
544         sizeof(*b6); /* { dg-error "incomplete" } */
545       }
546     }
547     sizeof(*b6);
548   }
549   sizeof(*b6);
550 }
551 extern A10 *b6;
552
553 A10 *b7;
554 void
555 g7 (void)
556 {
557   sizeof(*b7);
558   {
559     extern A10 *b7;
560     sizeof(*b7);
561     {
562       int b7;
563       {
564         extern A10 *b7;
565         sizeof(*b7);
566       }
567     }
568     sizeof(*b7);
569   }
570   sizeof(*b7);
571 }
572 extern A10 *b7;
573
574 extern IA *b8;
575 void
576 g8 (void)
577 {
578   sizeof(*b8); /* { dg-error "incomplete" } */
579   {
580     extern IA *b8;
581     sizeof(*b8); /* { dg-error "incomplete" } */
582     {
583       int b8;
584       {
585         extern IA *b8;
586         sizeof(*b8); /* { dg-error "incomplete" } */
587       }
588     }
589     sizeof(*b8); /* { dg-error "incomplete" } */
590   }
591   sizeof(*b8); /* { dg-error "incomplete" } */
592 }
593 extern A10 *b8;
594
595 extern IA *b9;
596 void
597 g9 (void)
598 {
599   sizeof(*b9); /* { dg-error "incomplete" } */
600   {
601     extern IA *b9;
602     sizeof(*b9); /* { dg-error "incomplete" } */
603     {
604       int b9;
605       {
606         extern A10 *b9;
607         sizeof(*b9);
608       }
609     }
610     sizeof(*b9); /* { dg-error "incomplete" } */
611   }
612   sizeof(*b9); /* { dg-error "incomplete" } */
613 }
614 extern A10 *b9;
615
616 extern IA *b10;
617 void
618 g10 (void)
619 {
620   sizeof(*b10); /* { dg-error "incomplete" } */
621   {
622     extern A10 *b10;
623     sizeof(*b10);
624     {
625       int b10;
626       {
627         extern IA *b10;
628         sizeof(*b10); /* { dg-error "incomplete" } */
629       }
630     }
631     sizeof(*b10);
632   }
633   sizeof(*b10); /* { dg-error "incomplete" } */
634 }
635 extern A10 *b10;
636
637 extern IA *b11;
638 void
639 g11 (void)
640 {
641   sizeof(*b11); /* { dg-error "incomplete" } */
642   {
643     extern A10 *b11;
644     sizeof(*b11);
645     {
646       int b11;
647       {
648         extern A10 *b11;
649         sizeof(*b11);
650       }
651     }
652     sizeof(*b11);
653   }
654   sizeof(*b11); /* { dg-error "incomplete" } */
655 }
656 extern A10 *b11;
657
658 extern A10 *b12;
659 void
660 g12 (void)
661 {
662   sizeof(*b12);
663   {
664     extern IA *b12;
665     sizeof(*b12);
666     {
667       int b12;
668       {
669         extern IA *b12;
670         sizeof(*b12); /* { dg-error "incomplete" } */
671       }
672     }
673     sizeof(*b12);
674   }
675   sizeof(*b12);
676 }
677 extern A10 *b12;
678
679 extern A10 *b13;
680 void
681 g13 (void)
682 {
683   sizeof(*b13);
684   {
685     extern IA *b13;
686     sizeof(*b13);
687     {
688       int b13;
689       {
690         extern A10 *b13;
691         sizeof(*b13);
692       }
693     }
694     sizeof(*b13);
695   }
696   sizeof(*b13);
697 }
698 extern A10 *b13;
699
700 extern A10 *b14;
701 void
702 g14 (void)
703 {
704   sizeof(*b14);
705   {
706     extern A10 *b14;
707     sizeof(*b14);
708     {
709       int b14;
710       {
711         extern IA *b14;
712         sizeof(*b14); /* { dg-error "incomplete" } */
713       }
714     }
715     sizeof(*b14);
716   }
717   sizeof(*b14);
718 }
719 extern A10 *b14;
720
721 extern A10 *b15;
722 void
723 g15 (void)
724 {
725   sizeof(*b15);
726   {
727     extern A10 *b15;
728     sizeof(*b15);
729     {
730       int b15;
731       {
732         extern A10 *b15;
733         sizeof(*b15);
734       }
735     }
736     sizeof(*b15);
737   }
738   sizeof(*b15);
739 }
740 extern A10 *b15;
741
742 static IA *b16;
743 void
744 g16 (void)
745 {
746   sizeof(*b16); /* { dg-error "incomplete" } */
747   {
748     extern IA *b16;
749     sizeof(*b16); /* { dg-error "incomplete" } */
750   }
751   sizeof(*b16); /* { dg-error "incomplete" } */
752 }
753 extern A10 *b16;
754
755 static IA *b17;
756 void
757 g17 (void)
758 {
759   sizeof(*b17); /* { dg-error "incomplete" } */
760   {
761     extern A10 *b17;
762     sizeof(*b17);
763   }
764   sizeof(*b17); /* { dg-error "incomplete" } */
765 }
766 extern A10 *b17;
767
768 static A10 *b18;
769 void
770 g18 (void)
771 {
772   sizeof(*b18);
773   {
774     extern IA *b18;
775     sizeof(*b18);
776   }
777   sizeof(*b18);
778 }
779 extern A10 *b18;
780
781 static A10 *b19;
782 void
783 g19 (void)
784 {
785   sizeof(*b19);
786   {
787     extern A10 *b19;
788     sizeof(*b19);
789   }
790   sizeof(*b19);
791 }
792 extern A10 *b19;
793
794 IA *c0 (void);
795 void
796 h0 (void)
797 {
798   sizeof(*c0()); /* { dg-error "incomplete" } */
799   {
800     extern IA *c0 (void);
801     sizeof(*c0()); /* { dg-error "incomplete" } */
802     {
803       int c0;
804       {
805         extern IA *c0 (void);
806         sizeof(*c0()); /* { dg-error "incomplete" } */
807       }
808     }
809     sizeof(*c0()); /* { dg-error "incomplete" } */
810   }
811   sizeof(*c0()); /* { dg-error "incomplete" } */
812 }
813 A10 *c0 (void) { return 0; }
814
815 IA *c1 (void);
816 void
817 h1 (void)
818 {
819   sizeof(*c1()); /* { dg-error "incomplete" } */
820   {
821     extern IA *c1 (void);
822     sizeof(*c1()); /* { dg-error "incomplete" } */
823     {
824       int c1;
825       {
826         extern A10 *c1 (void);
827         sizeof(*c1());
828       }
829     }
830     sizeof(*c1()); /* { dg-error "incomplete" } */
831   }
832   sizeof(*c1()); /* { dg-error "incomplete" } */
833 }
834 A10 *c1 (void) { return 0; }
835
836 IA *c2 (void);
837 void
838 h2 (void)
839 {
840   sizeof(*c2()); /* { dg-error "incomplete" } */
841   {
842     extern A10 *c2 (void);
843     sizeof(*c2());
844     {
845       int c2;
846       {
847         extern IA *c2 (void);
848         sizeof(*c2()); /* { dg-error "incomplete" } */
849       }
850     }
851     sizeof(*c2());
852   }
853   sizeof(*c2()); /* { dg-error "incomplete" } */
854 }
855 A10 *c2 (void) { return 0; }
856
857 IA *c3 (void);
858 void
859 h3 (void)
860 {
861   sizeof(*c3()); /* { dg-error "incomplete" } */
862   {
863     extern A10 *c3 (void);
864     sizeof(*c3());
865     {
866       int c3;
867       {
868         extern A10 *c3 (void);
869         sizeof(*c3());
870       }
871     }
872     sizeof(*c3());
873   }
874   sizeof(*c3()); /* { dg-error "incomplete" } */
875 }
876 A10 *c3 (void) { return 0; }
877
878 A10 *c4 (void);
879 void
880 h4 (void)
881 {
882   sizeof(*c4());
883   {
884     extern IA *c4 (void);
885     sizeof(*c4());
886     {
887       int c4;
888       {
889         extern IA *c4 (void);
890         sizeof(*c4()); /* { dg-error "incomplete" } */
891       }
892     }
893     sizeof(*c4());
894   }
895   sizeof(*c4());
896 }
897 A10 *c4 (void) { return 0; }
898
899 A10 *c5 (void);
900 void
901 h5 (void)
902 {
903   sizeof(*c5());
904   {
905     extern IA *c5 (void);
906     sizeof(*c5());
907     {
908       int c5;
909       {
910         extern A10 *c5 (void);
911         sizeof(*c5());
912       }
913     }
914     sizeof(*c5());
915   }
916   sizeof(*c5());
917 }
918 A10 *c5 (void) { return 0; }
919
920 A10 *c6 (void);
921 void
922 h6 (void)
923 {
924   sizeof(*c6());
925   {
926     extern A10 *c6 (void);
927     sizeof(*c6());
928     {
929       int c6;
930       {
931         extern IA *c6 (void);
932         sizeof(*c6()); /* { dg-error "incomplete" } */
933       }
934     }
935     sizeof(*c6());
936   }
937   sizeof(*c6());
938 }
939 A10 *c6 (void) { return 0; }
940
941 A10 *c7 (void);
942 void
943 h7 (void)
944 {
945   sizeof(*c7());
946   {
947     extern A10 *c7 (void);
948     sizeof(*c7());
949     {
950       int c7;
951       {
952         extern A10 *c7 (void);
953         sizeof(*c7());
954       }
955     }
956     sizeof(*c7());
957   }
958   sizeof(*c7());
959 }
960 A10 *c7 (void) { return 0; }
961
962 extern IA *c8 (void);
963 void
964 h8 (void)
965 {
966   sizeof(*c8()); /* { dg-error "incomplete" } */
967   {
968     extern IA *c8 (void);
969     sizeof(*c8()); /* { dg-error "incomplete" } */
970     {
971       int c8;
972       {
973         extern IA *c8 (void);
974         sizeof(*c8()); /* { dg-error "incomplete" } */
975       }
976     }
977     sizeof(*c8()); /* { dg-error "incomplete" } */
978   }
979   sizeof(*c8()); /* { dg-error "incomplete" } */
980 }
981 extern A10 *c8 (void) { return 0; }
982
983 extern IA *c9 (void);
984 void
985 h9 (void)
986 {
987   sizeof(*c9()); /* { dg-error "incomplete" } */
988   {
989     extern IA *c9 (void);
990     sizeof(*c9()); /* { dg-error "incomplete" } */
991     {
992       int c9;
993       {
994         extern A10 *c9 (void);
995         sizeof(*c9());
996       }
997     }
998     sizeof(*c9()); /* { dg-error "incomplete" } */
999   }
1000   sizeof(*c9()); /* { dg-error "incomplete" } */
1001 }
1002 extern A10 *c9 (void) { return 0; }
1003
1004 extern IA *c10 (void);
1005 void
1006 h10 (void)
1007 {
1008   sizeof(*c10()); /* { dg-error "incomplete" } */
1009   {
1010     extern A10 *c10 (void);
1011     sizeof(*c10());
1012     {
1013       int c10;
1014       {
1015         extern IA *c10 (void);
1016         sizeof(*c10()); /* { dg-error "incomplete" } */
1017       }
1018     }
1019     sizeof(*c10());
1020   }
1021   sizeof(*c10()); /* { dg-error "incomplete" } */
1022 }
1023 extern A10 *c10 (void) { return 0; }
1024
1025 extern IA *c11 (void);
1026 void
1027 h11 (void)
1028 {
1029   sizeof(*c11()); /* { dg-error "incomplete" } */
1030   {
1031     extern A10 *c11 (void);
1032     sizeof(*c11());
1033     {
1034       int c11;
1035       {
1036         extern A10 *c11 (void);
1037         sizeof(*c11());
1038       }
1039     }
1040     sizeof(*c11());
1041   }
1042   sizeof(*c11()); /* { dg-error "incomplete" } */
1043 }
1044 extern A10 *c11 (void) { return 0; }
1045
1046 extern A10 *c12 (void);
1047 void
1048 h12 (void)
1049 {
1050   sizeof(*c12());
1051   {
1052     extern IA *c12 (void);
1053     sizeof(*c12());
1054     {
1055       int c12;
1056       {
1057         extern IA *c12 (void);
1058         sizeof(*c12()); /* { dg-error "incomplete" } */
1059       }
1060     }
1061     sizeof(*c12());
1062   }
1063   sizeof(*c12());
1064 }
1065 extern A10 *c12 (void) { return 0; }
1066
1067 extern A10 *c13 (void);
1068 void
1069 h13 (void)
1070 {
1071   sizeof(*c13());
1072   {
1073     extern IA *c13 (void);
1074     sizeof(*c13());
1075     {
1076       int c13;
1077       {
1078         extern A10 *c13 (void);
1079         sizeof(*c13());
1080       }
1081     }
1082     sizeof(*c13());
1083   }
1084   sizeof(*c13());
1085 }
1086 extern A10 *c13 (void) { return 0; }
1087
1088 extern A10 *c14 (void);
1089 void
1090 h14 (void)
1091 {
1092   sizeof(*c14());
1093   {
1094     extern A10 *c14 (void);
1095     sizeof(*c14());
1096     {
1097       int c14;
1098       {
1099         extern IA *c14 (void);
1100         sizeof(*c14()); /* { dg-error "incomplete" } */
1101       }
1102     }
1103     sizeof(*c14());
1104   }
1105   sizeof(*c14());
1106 }
1107 extern A10 *c14 (void) { return 0; }
1108
1109 extern A10 *c15 (void);
1110 void
1111 h15 (void)
1112 {
1113   sizeof(*c15());
1114   {
1115     extern A10 *c15 (void);
1116     sizeof(*c15());
1117     {
1118       int c15;
1119       {
1120         extern A10 *c15 (void);
1121         sizeof(*c15());
1122       }
1123     }
1124     sizeof(*c15());
1125   }
1126   sizeof(*c15());
1127 }
1128 extern A10 *c15 (void) { return 0; }
1129
1130 static IA *c16 (void);
1131 void
1132 h16 (void)
1133 {
1134   sizeof(*c16()); /* { dg-error "incomplete" } */
1135   {
1136     extern IA *c16 (void);
1137     sizeof(*c16()); /* { dg-error "incomplete" } */
1138   }
1139   sizeof(*c16()); /* { dg-error "incomplete" } */
1140 }
1141 static A10 *c16 (void) { return 0; }
1142
1143 static IA *c17 (void);
1144 void
1145 h17 (void)
1146 {
1147   sizeof(*c17()); /* { dg-error "incomplete" } */
1148   {
1149     extern A10 *c17 (void);
1150     sizeof(*c17());
1151   }
1152   sizeof(*c17()); /* { dg-error "incomplete" } */
1153 }
1154 static A10 *c17 (void) { return 0; }
1155
1156 static A10 *c18 (void);
1157 void
1158 h18 (void)
1159 {
1160   sizeof(*c18());
1161   {
1162     extern IA *c18 (void);
1163     sizeof(*c18());
1164   }
1165   sizeof(*c18());
1166 }
1167 static A10 *c18 (void) { return 0; }
1168
1169 static A10 *c19 (void);
1170 void
1171 h19 (void)
1172 {
1173   sizeof(*c19());
1174   {
1175     extern A10 *c19 (void);
1176     sizeof(*c19());
1177   }
1178   sizeof(*c19());
1179 }
1180 static A10 *c19 (void) { return 0; }