bindgen 0.16.0

A binding generator for Rust
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
/* automatically generated by rust-bindgen */

pub type size_t = ::libc::c_ulong;
pub type Enum_CXErrorCode = ::libc::c_uint;
pub const CXError_Success: ::libc::c_uint = 0;
pub const CXError_Failure: ::libc::c_uint = 1;
pub const CXError_Crashed: ::libc::c_uint = 2;
pub const CXError_InvalidArguments: ::libc::c_uint = 3;
pub const CXError_ASTReadError: ::libc::c_uint = 4;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed1 {
    pub data: *const ::libc::c_void,
    pub private_flags: ::libc::c_uint,
}
impl ::std::default::Default for Struct_Unnamed1 {
    fn default() -> Struct_Unnamed1 { unsafe { ::std::mem::zeroed() } }
}
pub type CXString = Struct_Unnamed1;
pub enum Struct_CXVirtualFileOverlayImpl { }
pub type CXVirtualFileOverlay = *mut Struct_CXVirtualFileOverlayImpl;
pub enum Struct_CXModuleMapDescriptorImpl { }
pub type CXModuleMapDescriptor = *mut Struct_CXModuleMapDescriptorImpl;
pub type CXIndex = *mut ::libc::c_void;
pub enum Struct_CXTranslationUnitImpl { }
pub type CXTranslationUnit = *mut Struct_CXTranslationUnitImpl;
pub type CXClientData = *mut ::libc::c_void;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_CXUnsavedFile {
    pub Filename: *const ::libc::c_char,
    pub Contents: *const ::libc::c_char,
    pub Length: ::libc::c_ulong,
}
impl ::std::default::Default for Struct_CXUnsavedFile {
    fn default() -> Struct_CXUnsavedFile { unsafe { ::std::mem::zeroed() } }
}
pub type Enum_CXAvailabilityKind = ::libc::c_uint;
pub const CXAvailability_Available: ::libc::c_uint = 0;
pub const CXAvailability_Deprecated: ::libc::c_uint = 1;
pub const CXAvailability_NotAvailable: ::libc::c_uint = 2;
pub const CXAvailability_NotAccessible: ::libc::c_uint = 3;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_CXVersion {
    pub Major: ::libc::c_int,
    pub Minor: ::libc::c_int,
    pub Subminor: ::libc::c_int,
}
impl ::std::default::Default for Struct_CXVersion {
    fn default() -> Struct_CXVersion { unsafe { ::std::mem::zeroed() } }
}
pub type CXVersion = Struct_CXVersion;
pub type Enum_Unnamed2 = ::libc::c_uint;
pub const CXGlobalOpt_None: ::libc::c_uint = 0;
pub const CXGlobalOpt_ThreadBackgroundPriorityForIndexing: ::libc::c_uint = 1;
pub const CXGlobalOpt_ThreadBackgroundPriorityForEditing: ::libc::c_uint = 2;
pub const CXGlobalOpt_ThreadBackgroundPriorityForAll: ::libc::c_uint = 3;
pub type CXGlobalOptFlags = Enum_Unnamed2;
pub type CXFile = *mut ::libc::c_void;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed3 {
    pub data: [::libc::c_ulonglong; 3us],
}
impl ::std::default::Default for Struct_Unnamed3 {
    fn default() -> Struct_Unnamed3 { unsafe { ::std::mem::zeroed() } }
}
pub type CXFileUniqueID = Struct_Unnamed3;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed4 {
    pub ptr_data: [*const ::libc::c_void; 2us],
    pub int_data: ::libc::c_uint,
}
impl ::std::default::Default for Struct_Unnamed4 {
    fn default() -> Struct_Unnamed4 { unsafe { ::std::mem::zeroed() } }
}
pub type CXSourceLocation = Struct_Unnamed4;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed5 {
    pub ptr_data: [*const ::libc::c_void; 2us],
    pub begin_int_data: ::libc::c_uint,
    pub end_int_data: ::libc::c_uint,
}
impl ::std::default::Default for Struct_Unnamed5 {
    fn default() -> Struct_Unnamed5 { unsafe { ::std::mem::zeroed() } }
}
pub type CXSourceRange = Struct_Unnamed5;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed6 {
    pub count: ::libc::c_uint,
    pub ranges: *mut CXSourceRange,
}
impl ::std::default::Default for Struct_Unnamed6 {
    fn default() -> Struct_Unnamed6 { unsafe { ::std::mem::zeroed() } }
}
pub type CXSourceRangeList = Struct_Unnamed6;
pub type Enum_CXDiagnosticSeverity = ::libc::c_uint;
pub const CXDiagnostic_Ignored: ::libc::c_uint = 0;
pub const CXDiagnostic_Note: ::libc::c_uint = 1;
pub const CXDiagnostic_Warning: ::libc::c_uint = 2;
pub const CXDiagnostic_Error: ::libc::c_uint = 3;
pub const CXDiagnostic_Fatal: ::libc::c_uint = 4;
pub type CXDiagnostic = *mut ::libc::c_void;
pub type CXDiagnosticSet = *mut ::libc::c_void;
pub type Enum_CXLoadDiag_Error = ::libc::c_uint;
pub const CXLoadDiag_None: ::libc::c_uint = 0;
pub const CXLoadDiag_Unknown: ::libc::c_uint = 1;
pub const CXLoadDiag_CannotLoad: ::libc::c_uint = 2;
pub const CXLoadDiag_InvalidFile: ::libc::c_uint = 3;
pub type Enum_CXDiagnosticDisplayOptions = ::libc::c_uint;
pub const CXDiagnostic_DisplaySourceLocation: ::libc::c_uint = 1;
pub const CXDiagnostic_DisplayColumn: ::libc::c_uint = 2;
pub const CXDiagnostic_DisplaySourceRanges: ::libc::c_uint = 4;
pub const CXDiagnostic_DisplayOption: ::libc::c_uint = 8;
pub const CXDiagnostic_DisplayCategoryId: ::libc::c_uint = 16;
pub const CXDiagnostic_DisplayCategoryName: ::libc::c_uint = 32;
pub type Enum_CXTranslationUnit_Flags = ::libc::c_uint;
pub const CXTranslationUnit_None: ::libc::c_uint = 0;
pub const CXTranslationUnit_DetailedPreprocessingRecord: ::libc::c_uint = 1;
pub const CXTranslationUnit_Incomplete: ::libc::c_uint = 2;
pub const CXTranslationUnit_PrecompiledPreamble: ::libc::c_uint = 4;
pub const CXTranslationUnit_CacheCompletionResults: ::libc::c_uint = 8;
pub const CXTranslationUnit_ForSerialization: ::libc::c_uint = 16;
pub const CXTranslationUnit_CXXChainedPCH: ::libc::c_uint = 32;
pub const CXTranslationUnit_SkipFunctionBodies: ::libc::c_uint = 64;
pub const CXTranslationUnit_IncludeBriefCommentsInCodeCompletion:
          ::libc::c_uint =
    128;
pub type Enum_CXSaveTranslationUnit_Flags = ::libc::c_uint;
pub const CXSaveTranslationUnit_None: ::libc::c_uint = 0;
pub type Enum_CXSaveError = ::libc::c_uint;
pub const CXSaveError_None: ::libc::c_uint = 0;
pub const CXSaveError_Unknown: ::libc::c_uint = 1;
pub const CXSaveError_TranslationErrors: ::libc::c_uint = 2;
pub const CXSaveError_InvalidTU: ::libc::c_uint = 3;
pub type Enum_CXReparse_Flags = ::libc::c_uint;
pub const CXReparse_None: ::libc::c_uint = 0;
pub type Enum_CXTUResourceUsageKind = ::libc::c_uint;
pub const CXTUResourceUsage_AST: ::libc::c_uint = 1;
pub const CXTUResourceUsage_Identifiers: ::libc::c_uint = 2;
pub const CXTUResourceUsage_Selectors: ::libc::c_uint = 3;
pub const CXTUResourceUsage_GlobalCompletionResults: ::libc::c_uint = 4;
pub const CXTUResourceUsage_SourceManagerContentCache: ::libc::c_uint = 5;
pub const CXTUResourceUsage_AST_SideTables: ::libc::c_uint = 6;
pub const CXTUResourceUsage_SourceManager_Membuffer_Malloc: ::libc::c_uint =
    7;
pub const CXTUResourceUsage_SourceManager_Membuffer_MMap: ::libc::c_uint = 8;
pub const CXTUResourceUsage_ExternalASTSource_Membuffer_Malloc: ::libc::c_uint
          =
    9;
pub const CXTUResourceUsage_ExternalASTSource_Membuffer_MMap: ::libc::c_uint =
    10;
pub const CXTUResourceUsage_Preprocessor: ::libc::c_uint = 11;
pub const CXTUResourceUsage_PreprocessingRecord: ::libc::c_uint = 12;
pub const CXTUResourceUsage_SourceManager_DataStructures: ::libc::c_uint = 13;
pub const CXTUResourceUsage_Preprocessor_HeaderSearch: ::libc::c_uint = 14;
pub const CXTUResourceUsage_MEMORY_IN_BYTES_BEGIN: ::libc::c_uint = 1;
pub const CXTUResourceUsage_MEMORY_IN_BYTES_END: ::libc::c_uint = 14;
pub const CXTUResourceUsage_First: ::libc::c_uint = 1;
pub const CXTUResourceUsage_Last: ::libc::c_uint = 14;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_CXTUResourceUsageEntry {
    pub kind: Enum_CXTUResourceUsageKind,
    pub amount: ::libc::c_ulong,
}
impl ::std::default::Default for Struct_CXTUResourceUsageEntry {
    fn default() -> Struct_CXTUResourceUsageEntry {
        unsafe { ::std::mem::zeroed() }
    }
}
pub type CXTUResourceUsageEntry = Struct_CXTUResourceUsageEntry;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_CXTUResourceUsage {
    pub data: *mut ::libc::c_void,
    pub numEntries: ::libc::c_uint,
    pub entries: *mut CXTUResourceUsageEntry,
}
impl ::std::default::Default for Struct_CXTUResourceUsage {
    fn default() -> Struct_CXTUResourceUsage {
        unsafe { ::std::mem::zeroed() }
    }
}
pub type CXTUResourceUsage = Struct_CXTUResourceUsage;
pub type Enum_CXCursorKind = ::libc::c_uint;
pub const CXCursor_UnexposedDecl: ::libc::c_uint = 1;
pub const CXCursor_StructDecl: ::libc::c_uint = 2;
pub const CXCursor_UnionDecl: ::libc::c_uint = 3;
pub const CXCursor_ClassDecl: ::libc::c_uint = 4;
pub const CXCursor_EnumDecl: ::libc::c_uint = 5;
pub const CXCursor_FieldDecl: ::libc::c_uint = 6;
pub const CXCursor_EnumConstantDecl: ::libc::c_uint = 7;
pub const CXCursor_FunctionDecl: ::libc::c_uint = 8;
pub const CXCursor_VarDecl: ::libc::c_uint = 9;
pub const CXCursor_ParmDecl: ::libc::c_uint = 10;
pub const CXCursor_ObjCInterfaceDecl: ::libc::c_uint = 11;
pub const CXCursor_ObjCCategoryDecl: ::libc::c_uint = 12;
pub const CXCursor_ObjCProtocolDecl: ::libc::c_uint = 13;
pub const CXCursor_ObjCPropertyDecl: ::libc::c_uint = 14;
pub const CXCursor_ObjCIvarDecl: ::libc::c_uint = 15;
pub const CXCursor_ObjCInstanceMethodDecl: ::libc::c_uint = 16;
pub const CXCursor_ObjCClassMethodDecl: ::libc::c_uint = 17;
pub const CXCursor_ObjCImplementationDecl: ::libc::c_uint = 18;
pub const CXCursor_ObjCCategoryImplDecl: ::libc::c_uint = 19;
pub const CXCursor_TypedefDecl: ::libc::c_uint = 20;
pub const CXCursor_CXXMethod: ::libc::c_uint = 21;
pub const CXCursor_Namespace: ::libc::c_uint = 22;
pub const CXCursor_LinkageSpec: ::libc::c_uint = 23;
pub const CXCursor_Constructor: ::libc::c_uint = 24;
pub const CXCursor_Destructor: ::libc::c_uint = 25;
pub const CXCursor_ConversionFunction: ::libc::c_uint = 26;
pub const CXCursor_TemplateTypeParameter: ::libc::c_uint = 27;
pub const CXCursor_NonTypeTemplateParameter: ::libc::c_uint = 28;
pub const CXCursor_TemplateTemplateParameter: ::libc::c_uint = 29;
pub const CXCursor_FunctionTemplate: ::libc::c_uint = 30;
pub const CXCursor_ClassTemplate: ::libc::c_uint = 31;
pub const CXCursor_ClassTemplatePartialSpecialization: ::libc::c_uint = 32;
pub const CXCursor_NamespaceAlias: ::libc::c_uint = 33;
pub const CXCursor_UsingDirective: ::libc::c_uint = 34;
pub const CXCursor_UsingDeclaration: ::libc::c_uint = 35;
pub const CXCursor_TypeAliasDecl: ::libc::c_uint = 36;
pub const CXCursor_ObjCSynthesizeDecl: ::libc::c_uint = 37;
pub const CXCursor_ObjCDynamicDecl: ::libc::c_uint = 38;
pub const CXCursor_CXXAccessSpecifier: ::libc::c_uint = 39;
pub const CXCursor_FirstDecl: ::libc::c_uint = 1;
pub const CXCursor_LastDecl: ::libc::c_uint = 39;
pub const CXCursor_FirstRef: ::libc::c_uint = 40;
pub const CXCursor_ObjCSuperClassRef: ::libc::c_uint = 40;
pub const CXCursor_ObjCProtocolRef: ::libc::c_uint = 41;
pub const CXCursor_ObjCClassRef: ::libc::c_uint = 42;
pub const CXCursor_TypeRef: ::libc::c_uint = 43;
pub const CXCursor_CXXBaseSpecifier: ::libc::c_uint = 44;
pub const CXCursor_TemplateRef: ::libc::c_uint = 45;
pub const CXCursor_NamespaceRef: ::libc::c_uint = 46;
pub const CXCursor_MemberRef: ::libc::c_uint = 47;
pub const CXCursor_LabelRef: ::libc::c_uint = 48;
pub const CXCursor_OverloadedDeclRef: ::libc::c_uint = 49;
pub const CXCursor_VariableRef: ::libc::c_uint = 50;
pub const CXCursor_LastRef: ::libc::c_uint = 50;
pub const CXCursor_FirstInvalid: ::libc::c_uint = 70;
pub const CXCursor_InvalidFile: ::libc::c_uint = 70;
pub const CXCursor_NoDeclFound: ::libc::c_uint = 71;
pub const CXCursor_NotImplemented: ::libc::c_uint = 72;
pub const CXCursor_InvalidCode: ::libc::c_uint = 73;
pub const CXCursor_LastInvalid: ::libc::c_uint = 73;
pub const CXCursor_FirstExpr: ::libc::c_uint = 100;
pub const CXCursor_UnexposedExpr: ::libc::c_uint = 100;
pub const CXCursor_DeclRefExpr: ::libc::c_uint = 101;
pub const CXCursor_MemberRefExpr: ::libc::c_uint = 102;
pub const CXCursor_CallExpr: ::libc::c_uint = 103;
pub const CXCursor_ObjCMessageExpr: ::libc::c_uint = 104;
pub const CXCursor_BlockExpr: ::libc::c_uint = 105;
pub const CXCursor_IntegerLiteral: ::libc::c_uint = 106;
pub const CXCursor_FloatingLiteral: ::libc::c_uint = 107;
pub const CXCursor_ImaginaryLiteral: ::libc::c_uint = 108;
pub const CXCursor_StringLiteral: ::libc::c_uint = 109;
pub const CXCursor_CharacterLiteral: ::libc::c_uint = 110;
pub const CXCursor_ParenExpr: ::libc::c_uint = 111;
pub const CXCursor_UnaryOperator: ::libc::c_uint = 112;
pub const CXCursor_ArraySubscriptExpr: ::libc::c_uint = 113;
pub const CXCursor_BinaryOperator: ::libc::c_uint = 114;
pub const CXCursor_CompoundAssignOperator: ::libc::c_uint = 115;
pub const CXCursor_ConditionalOperator: ::libc::c_uint = 116;
pub const CXCursor_CStyleCastExpr: ::libc::c_uint = 117;
pub const CXCursor_CompoundLiteralExpr: ::libc::c_uint = 118;
pub const CXCursor_InitListExpr: ::libc::c_uint = 119;
pub const CXCursor_AddrLabelExpr: ::libc::c_uint = 120;
pub const CXCursor_StmtExpr: ::libc::c_uint = 121;
pub const CXCursor_GenericSelectionExpr: ::libc::c_uint = 122;
pub const CXCursor_GNUNullExpr: ::libc::c_uint = 123;
pub const CXCursor_CXXStaticCastExpr: ::libc::c_uint = 124;
pub const CXCursor_CXXDynamicCastExpr: ::libc::c_uint = 125;
pub const CXCursor_CXXReinterpretCastExpr: ::libc::c_uint = 126;
pub const CXCursor_CXXConstCastExpr: ::libc::c_uint = 127;
pub const CXCursor_CXXFunctionalCastExpr: ::libc::c_uint = 128;
pub const CXCursor_CXXTypeidExpr: ::libc::c_uint = 129;
pub const CXCursor_CXXBoolLiteralExpr: ::libc::c_uint = 130;
pub const CXCursor_CXXNullPtrLiteralExpr: ::libc::c_uint = 131;
pub const CXCursor_CXXThisExpr: ::libc::c_uint = 132;
pub const CXCursor_CXXThrowExpr: ::libc::c_uint = 133;
pub const CXCursor_CXXNewExpr: ::libc::c_uint = 134;
pub const CXCursor_CXXDeleteExpr: ::libc::c_uint = 135;
pub const CXCursor_UnaryExpr: ::libc::c_uint = 136;
pub const CXCursor_ObjCStringLiteral: ::libc::c_uint = 137;
pub const CXCursor_ObjCEncodeExpr: ::libc::c_uint = 138;
pub const CXCursor_ObjCSelectorExpr: ::libc::c_uint = 139;
pub const CXCursor_ObjCProtocolExpr: ::libc::c_uint = 140;
pub const CXCursor_ObjCBridgedCastExpr: ::libc::c_uint = 141;
pub const CXCursor_PackExpansionExpr: ::libc::c_uint = 142;
pub const CXCursor_SizeOfPackExpr: ::libc::c_uint = 143;
pub const CXCursor_LambdaExpr: ::libc::c_uint = 144;
pub const CXCursor_ObjCBoolLiteralExpr: ::libc::c_uint = 145;
pub const CXCursor_ObjCSelfExpr: ::libc::c_uint = 146;
pub const CXCursor_LastExpr: ::libc::c_uint = 146;
pub const CXCursor_FirstStmt: ::libc::c_uint = 200;
pub const CXCursor_UnexposedStmt: ::libc::c_uint = 200;
pub const CXCursor_LabelStmt: ::libc::c_uint = 201;
pub const CXCursor_CompoundStmt: ::libc::c_uint = 202;
pub const CXCursor_CaseStmt: ::libc::c_uint = 203;
pub const CXCursor_DefaultStmt: ::libc::c_uint = 204;
pub const CXCursor_IfStmt: ::libc::c_uint = 205;
pub const CXCursor_SwitchStmt: ::libc::c_uint = 206;
pub const CXCursor_WhileStmt: ::libc::c_uint = 207;
pub const CXCursor_DoStmt: ::libc::c_uint = 208;
pub const CXCursor_ForStmt: ::libc::c_uint = 209;
pub const CXCursor_GotoStmt: ::libc::c_uint = 210;
pub const CXCursor_IndirectGotoStmt: ::libc::c_uint = 211;
pub const CXCursor_ContinueStmt: ::libc::c_uint = 212;
pub const CXCursor_BreakStmt: ::libc::c_uint = 213;
pub const CXCursor_ReturnStmt: ::libc::c_uint = 214;
pub const CXCursor_GCCAsmStmt: ::libc::c_uint = 215;
pub const CXCursor_AsmStmt: ::libc::c_uint = 215;
pub const CXCursor_ObjCAtTryStmt: ::libc::c_uint = 216;
pub const CXCursor_ObjCAtCatchStmt: ::libc::c_uint = 217;
pub const CXCursor_ObjCAtFinallyStmt: ::libc::c_uint = 218;
pub const CXCursor_ObjCAtThrowStmt: ::libc::c_uint = 219;
pub const CXCursor_ObjCAtSynchronizedStmt: ::libc::c_uint = 220;
pub const CXCursor_ObjCAutoreleasePoolStmt: ::libc::c_uint = 221;
pub const CXCursor_ObjCForCollectionStmt: ::libc::c_uint = 222;
pub const CXCursor_CXXCatchStmt: ::libc::c_uint = 223;
pub const CXCursor_CXXTryStmt: ::libc::c_uint = 224;
pub const CXCursor_CXXForRangeStmt: ::libc::c_uint = 225;
pub const CXCursor_SEHTryStmt: ::libc::c_uint = 226;
pub const CXCursor_SEHExceptStmt: ::libc::c_uint = 227;
pub const CXCursor_SEHFinallyStmt: ::libc::c_uint = 228;
pub const CXCursor_MSAsmStmt: ::libc::c_uint = 229;
pub const CXCursor_NullStmt: ::libc::c_uint = 230;
pub const CXCursor_DeclStmt: ::libc::c_uint = 231;
pub const CXCursor_OMPParallelDirective: ::libc::c_uint = 232;
pub const CXCursor_OMPSimdDirective: ::libc::c_uint = 233;
pub const CXCursor_OMPForDirective: ::libc::c_uint = 234;
pub const CXCursor_OMPSectionsDirective: ::libc::c_uint = 235;
pub const CXCursor_OMPSectionDirective: ::libc::c_uint = 236;
pub const CXCursor_OMPSingleDirective: ::libc::c_uint = 237;
pub const CXCursor_OMPParallelForDirective: ::libc::c_uint = 238;
pub const CXCursor_OMPParallelSectionsDirective: ::libc::c_uint = 239;
pub const CXCursor_OMPTaskDirective: ::libc::c_uint = 240;
pub const CXCursor_OMPMasterDirective: ::libc::c_uint = 241;
pub const CXCursor_OMPCriticalDirective: ::libc::c_uint = 242;
pub const CXCursor_OMPTaskyieldDirective: ::libc::c_uint = 243;
pub const CXCursor_OMPBarrierDirective: ::libc::c_uint = 244;
pub const CXCursor_OMPTaskwaitDirective: ::libc::c_uint = 245;
pub const CXCursor_OMPFlushDirective: ::libc::c_uint = 246;
pub const CXCursor_SEHLeaveStmt: ::libc::c_uint = 247;
pub const CXCursor_LastStmt: ::libc::c_uint = 247;
pub const CXCursor_TranslationUnit: ::libc::c_uint = 300;
pub const CXCursor_FirstAttr: ::libc::c_uint = 400;
pub const CXCursor_UnexposedAttr: ::libc::c_uint = 400;
pub const CXCursor_IBActionAttr: ::libc::c_uint = 401;
pub const CXCursor_IBOutletAttr: ::libc::c_uint = 402;
pub const CXCursor_IBOutletCollectionAttr: ::libc::c_uint = 403;
pub const CXCursor_CXXFinalAttr: ::libc::c_uint = 404;
pub const CXCursor_CXXOverrideAttr: ::libc::c_uint = 405;
pub const CXCursor_AnnotateAttr: ::libc::c_uint = 406;
pub const CXCursor_AsmLabelAttr: ::libc::c_uint = 407;
pub const CXCursor_PackedAttr: ::libc::c_uint = 408;
pub const CXCursor_PureAttr: ::libc::c_uint = 409;
pub const CXCursor_ConstAttr: ::libc::c_uint = 410;
pub const CXCursor_NoDuplicateAttr: ::libc::c_uint = 411;
pub const CXCursor_CUDAConstantAttr: ::libc::c_uint = 412;
pub const CXCursor_CUDADeviceAttr: ::libc::c_uint = 413;
pub const CXCursor_CUDAGlobalAttr: ::libc::c_uint = 414;
pub const CXCursor_CUDAHostAttr: ::libc::c_uint = 415;
pub const CXCursor_LastAttr: ::libc::c_uint = 415;
pub const CXCursor_PreprocessingDirective: ::libc::c_uint = 500;
pub const CXCursor_MacroDefinition: ::libc::c_uint = 501;
pub const CXCursor_MacroExpansion: ::libc::c_uint = 502;
pub const CXCursor_MacroInstantiation: ::libc::c_uint = 502;
pub const CXCursor_InclusionDirective: ::libc::c_uint = 503;
pub const CXCursor_FirstPreprocessing: ::libc::c_uint = 500;
pub const CXCursor_LastPreprocessing: ::libc::c_uint = 503;
pub const CXCursor_ModuleImportDecl: ::libc::c_uint = 600;
pub const CXCursor_FirstExtraDecl: ::libc::c_uint = 600;
pub const CXCursor_LastExtraDecl: ::libc::c_uint = 600;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed7 {
    pub kind: Enum_CXCursorKind,
    pub xdata: ::libc::c_int,
    pub data: [*const ::libc::c_void; 3us],
}
impl ::std::default::Default for Struct_Unnamed7 {
    fn default() -> Struct_Unnamed7 { unsafe { ::std::mem::zeroed() } }
}
pub type CXCursor = Struct_Unnamed7;
pub type Enum_CXLinkageKind = ::libc::c_uint;
pub const CXLinkage_Invalid: ::libc::c_uint = 0;
pub const CXLinkage_NoLinkage: ::libc::c_uint = 1;
pub const CXLinkage_Internal: ::libc::c_uint = 2;
pub const CXLinkage_UniqueExternal: ::libc::c_uint = 3;
pub const CXLinkage_External: ::libc::c_uint = 4;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_CXPlatformAvailability {
    pub Platform: CXString,
    pub Introduced: CXVersion,
    pub Deprecated: CXVersion,
    pub Obsoleted: CXVersion,
    pub Unavailable: ::libc::c_int,
    pub Message: CXString,
}
impl ::std::default::Default for Struct_CXPlatformAvailability {
    fn default() -> Struct_CXPlatformAvailability {
        unsafe { ::std::mem::zeroed() }
    }
}
pub type CXPlatformAvailability = Struct_CXPlatformAvailability;
pub type Enum_CXLanguageKind = ::libc::c_uint;
pub const CXLanguage_Invalid: ::libc::c_uint = 0;
pub const CXLanguage_C: ::libc::c_uint = 1;
pub const CXLanguage_ObjC: ::libc::c_uint = 2;
pub const CXLanguage_CPlusPlus: ::libc::c_uint = 3;
pub enum Struct_CXCursorSetImpl { }
pub type CXCursorSet = *mut Struct_CXCursorSetImpl;
pub type Enum_CXTypeKind = ::libc::c_uint;
pub const CXType_Invalid: ::libc::c_uint = 0;
pub const CXType_Unexposed: ::libc::c_uint = 1;
pub const CXType_Void: ::libc::c_uint = 2;
pub const CXType_Bool: ::libc::c_uint = 3;
pub const CXType_Char_U: ::libc::c_uint = 4;
pub const CXType_UChar: ::libc::c_uint = 5;
pub const CXType_Char16: ::libc::c_uint = 6;
pub const CXType_Char32: ::libc::c_uint = 7;
pub const CXType_UShort: ::libc::c_uint = 8;
pub const CXType_UInt: ::libc::c_uint = 9;
pub const CXType_ULong: ::libc::c_uint = 10;
pub const CXType_ULongLong: ::libc::c_uint = 11;
pub const CXType_UInt128: ::libc::c_uint = 12;
pub const CXType_Char_S: ::libc::c_uint = 13;
pub const CXType_SChar: ::libc::c_uint = 14;
pub const CXType_WChar: ::libc::c_uint = 15;
pub const CXType_Short: ::libc::c_uint = 16;
pub const CXType_Int: ::libc::c_uint = 17;
pub const CXType_Long: ::libc::c_uint = 18;
pub const CXType_LongLong: ::libc::c_uint = 19;
pub const CXType_Int128: ::libc::c_uint = 20;
pub const CXType_Float: ::libc::c_uint = 21;
pub const CXType_Double: ::libc::c_uint = 22;
pub const CXType_LongDouble: ::libc::c_uint = 23;
pub const CXType_NullPtr: ::libc::c_uint = 24;
pub const CXType_Overload: ::libc::c_uint = 25;
pub const CXType_Dependent: ::libc::c_uint = 26;
pub const CXType_ObjCId: ::libc::c_uint = 27;
pub const CXType_ObjCClass: ::libc::c_uint = 28;
pub const CXType_ObjCSel: ::libc::c_uint = 29;
pub const CXType_FirstBuiltin: ::libc::c_uint = 2;
pub const CXType_LastBuiltin: ::libc::c_uint = 29;
pub const CXType_Complex: ::libc::c_uint = 100;
pub const CXType_Pointer: ::libc::c_uint = 101;
pub const CXType_BlockPointer: ::libc::c_uint = 102;
pub const CXType_LValueReference: ::libc::c_uint = 103;
pub const CXType_RValueReference: ::libc::c_uint = 104;
pub const CXType_Record: ::libc::c_uint = 105;
pub const CXType_Enum: ::libc::c_uint = 106;
pub const CXType_Typedef: ::libc::c_uint = 107;
pub const CXType_ObjCInterface: ::libc::c_uint = 108;
pub const CXType_ObjCObjectPointer: ::libc::c_uint = 109;
pub const CXType_FunctionNoProto: ::libc::c_uint = 110;
pub const CXType_FunctionProto: ::libc::c_uint = 111;
pub const CXType_ConstantArray: ::libc::c_uint = 112;
pub const CXType_Vector: ::libc::c_uint = 113;
pub const CXType_IncompleteArray: ::libc::c_uint = 114;
pub const CXType_VariableArray: ::libc::c_uint = 115;
pub const CXType_DependentSizedArray: ::libc::c_uint = 116;
pub const CXType_MemberPointer: ::libc::c_uint = 117;
pub type Enum_CXCallingConv = ::libc::c_uint;
pub const CXCallingConv_Default: ::libc::c_uint = 0;
pub const CXCallingConv_C: ::libc::c_uint = 1;
pub const CXCallingConv_X86StdCall: ::libc::c_uint = 2;
pub const CXCallingConv_X86FastCall: ::libc::c_uint = 3;
pub const CXCallingConv_X86ThisCall: ::libc::c_uint = 4;
pub const CXCallingConv_X86Pascal: ::libc::c_uint = 5;
pub const CXCallingConv_AAPCS: ::libc::c_uint = 6;
pub const CXCallingConv_AAPCS_VFP: ::libc::c_uint = 7;
pub const CXCallingConv_PnaclCall: ::libc::c_uint = 8;
pub const CXCallingConv_IntelOclBicc: ::libc::c_uint = 9;
pub const CXCallingConv_X86_64Win64: ::libc::c_uint = 10;
pub const CXCallingConv_X86_64SysV: ::libc::c_uint = 11;
pub const CXCallingConv_Invalid: ::libc::c_uint = 100;
pub const CXCallingConv_Unexposed: ::libc::c_uint = 200;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed8 {
    pub kind: Enum_CXTypeKind,
    pub data: [*mut ::libc::c_void; 2us],
}
impl ::std::default::Default for Struct_Unnamed8 {
    fn default() -> Struct_Unnamed8 { unsafe { ::std::mem::zeroed() } }
}
pub type CXType = Struct_Unnamed8;
pub type Enum_CXTypeLayoutError = ::libc::c_int;
pub const CXTypeLayoutError_Invalid: ::libc::c_int = -1;
pub const CXTypeLayoutError_Incomplete: ::libc::c_int = -2;
pub const CXTypeLayoutError_Dependent: ::libc::c_int = -3;
pub const CXTypeLayoutError_NotConstantSize: ::libc::c_int = -4;
pub const CXTypeLayoutError_InvalidFieldName: ::libc::c_int = -5;
pub type Enum_CXRefQualifierKind = ::libc::c_uint;
pub const CXRefQualifier_None: ::libc::c_uint = 0;
pub const CXRefQualifier_LValue: ::libc::c_uint = 1;
pub const CXRefQualifier_RValue: ::libc::c_uint = 2;
pub type Enum_CX_CXXAccessSpecifier = ::libc::c_uint;
pub const CX_CXXInvalidAccessSpecifier: ::libc::c_uint = 0;
pub const CX_CXXPublic: ::libc::c_uint = 1;
pub const CX_CXXProtected: ::libc::c_uint = 2;
pub const CX_CXXPrivate: ::libc::c_uint = 3;
pub type Enum_CXChildVisitResult = ::libc::c_uint;
pub const CXChildVisit_Break: ::libc::c_uint = 0;
pub const CXChildVisit_Continue: ::libc::c_uint = 1;
pub const CXChildVisit_Recurse: ::libc::c_uint = 2;
pub type CXCursorVisitor =
    ::std::option::Option<extern "C" fn
                              (cursor: CXCursor, parent: CXCursor,
                               client_data: CXClientData)
                              -> Enum_CXChildVisitResult>;
pub type Enum_Unnamed9 = ::libc::c_uint;
pub const CXObjCPropertyAttr_noattr: ::libc::c_uint = 0;
pub const CXObjCPropertyAttr_readonly: ::libc::c_uint = 1;
pub const CXObjCPropertyAttr_getter: ::libc::c_uint = 2;
pub const CXObjCPropertyAttr_assign: ::libc::c_uint = 4;
pub const CXObjCPropertyAttr_readwrite: ::libc::c_uint = 8;
pub const CXObjCPropertyAttr_retain: ::libc::c_uint = 16;
pub const CXObjCPropertyAttr_copy: ::libc::c_uint = 32;
pub const CXObjCPropertyAttr_nonatomic: ::libc::c_uint = 64;
pub const CXObjCPropertyAttr_setter: ::libc::c_uint = 128;
pub const CXObjCPropertyAttr_atomic: ::libc::c_uint = 256;
pub const CXObjCPropertyAttr_weak: ::libc::c_uint = 512;
pub const CXObjCPropertyAttr_strong: ::libc::c_uint = 1024;
pub const CXObjCPropertyAttr_unsafe_unretained: ::libc::c_uint = 2048;
pub type CXObjCPropertyAttrKind = Enum_Unnamed9;
pub type Enum_Unnamed10 = ::libc::c_uint;
pub const CXObjCDeclQualifier_None: ::libc::c_uint = 0;
pub const CXObjCDeclQualifier_In: ::libc::c_uint = 1;
pub const CXObjCDeclQualifier_Inout: ::libc::c_uint = 2;
pub const CXObjCDeclQualifier_Out: ::libc::c_uint = 4;
pub const CXObjCDeclQualifier_Bycopy: ::libc::c_uint = 8;
pub const CXObjCDeclQualifier_Byref: ::libc::c_uint = 16;
pub const CXObjCDeclQualifier_Oneway: ::libc::c_uint = 32;
pub type CXObjCDeclQualifierKind = Enum_Unnamed10;
pub type CXModule = *mut ::libc::c_void;
pub type Enum_CXNameRefFlags = ::libc::c_uint;
pub const CXNameRange_WantQualifier: ::libc::c_uint = 1;
pub const CXNameRange_WantTemplateArgs: ::libc::c_uint = 2;
pub const CXNameRange_WantSinglePiece: ::libc::c_uint = 4;
pub type Enum_CXTokenKind = ::libc::c_uint;
pub const CXToken_Punctuation: ::libc::c_uint = 0;
pub const CXToken_Keyword: ::libc::c_uint = 1;
pub const CXToken_Identifier: ::libc::c_uint = 2;
pub const CXToken_Literal: ::libc::c_uint = 3;
pub const CXToken_Comment: ::libc::c_uint = 4;
pub type CXTokenKind = Enum_CXTokenKind;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed11 {
    pub int_data: [::libc::c_uint; 4us],
    pub ptr_data: *mut ::libc::c_void,
}
impl ::std::default::Default for Struct_Unnamed11 {
    fn default() -> Struct_Unnamed11 { unsafe { ::std::mem::zeroed() } }
}
pub type CXToken = Struct_Unnamed11;
pub type CXCompletionString = *mut ::libc::c_void;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed12 {
    pub CursorKind: Enum_CXCursorKind,
    pub CompletionString: CXCompletionString,
}
impl ::std::default::Default for Struct_Unnamed12 {
    fn default() -> Struct_Unnamed12 { unsafe { ::std::mem::zeroed() } }
}
pub type CXCompletionResult = Struct_Unnamed12;
pub type Enum_CXCompletionChunkKind = ::libc::c_uint;
pub const CXCompletionChunk_Optional: ::libc::c_uint = 0;
pub const CXCompletionChunk_TypedText: ::libc::c_uint = 1;
pub const CXCompletionChunk_Text: ::libc::c_uint = 2;
pub const CXCompletionChunk_Placeholder: ::libc::c_uint = 3;
pub const CXCompletionChunk_Informative: ::libc::c_uint = 4;
pub const CXCompletionChunk_CurrentParameter: ::libc::c_uint = 5;
pub const CXCompletionChunk_LeftParen: ::libc::c_uint = 6;
pub const CXCompletionChunk_RightParen: ::libc::c_uint = 7;
pub const CXCompletionChunk_LeftBracket: ::libc::c_uint = 8;
pub const CXCompletionChunk_RightBracket: ::libc::c_uint = 9;
pub const CXCompletionChunk_LeftBrace: ::libc::c_uint = 10;
pub const CXCompletionChunk_RightBrace: ::libc::c_uint = 11;
pub const CXCompletionChunk_LeftAngle: ::libc::c_uint = 12;
pub const CXCompletionChunk_RightAngle: ::libc::c_uint = 13;
pub const CXCompletionChunk_Comma: ::libc::c_uint = 14;
pub const CXCompletionChunk_ResultType: ::libc::c_uint = 15;
pub const CXCompletionChunk_Colon: ::libc::c_uint = 16;
pub const CXCompletionChunk_SemiColon: ::libc::c_uint = 17;
pub const CXCompletionChunk_Equal: ::libc::c_uint = 18;
pub const CXCompletionChunk_HorizontalSpace: ::libc::c_uint = 19;
pub const CXCompletionChunk_VerticalSpace: ::libc::c_uint = 20;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed13 {
    pub Results: *mut CXCompletionResult,
    pub NumResults: ::libc::c_uint,
}
impl ::std::default::Default for Struct_Unnamed13 {
    fn default() -> Struct_Unnamed13 { unsafe { ::std::mem::zeroed() } }
}
pub type CXCodeCompleteResults = Struct_Unnamed13;
pub type Enum_CXCodeComplete_Flags = ::libc::c_uint;
pub const CXCodeComplete_IncludeMacros: ::libc::c_uint = 1;
pub const CXCodeComplete_IncludeCodePatterns: ::libc::c_uint = 2;
pub const CXCodeComplete_IncludeBriefComments: ::libc::c_uint = 4;
pub type Enum_CXCompletionContext = ::libc::c_uint;
pub const CXCompletionContext_Unexposed: ::libc::c_uint = 0;
pub const CXCompletionContext_AnyType: ::libc::c_uint = 1;
pub const CXCompletionContext_AnyValue: ::libc::c_uint = 2;
pub const CXCompletionContext_ObjCObjectValue: ::libc::c_uint = 4;
pub const CXCompletionContext_ObjCSelectorValue: ::libc::c_uint = 8;
pub const CXCompletionContext_CXXClassTypeValue: ::libc::c_uint = 16;
pub const CXCompletionContext_DotMemberAccess: ::libc::c_uint = 32;
pub const CXCompletionContext_ArrowMemberAccess: ::libc::c_uint = 64;
pub const CXCompletionContext_ObjCPropertyAccess: ::libc::c_uint = 128;
pub const CXCompletionContext_EnumTag: ::libc::c_uint = 256;
pub const CXCompletionContext_UnionTag: ::libc::c_uint = 512;
pub const CXCompletionContext_StructTag: ::libc::c_uint = 1024;
pub const CXCompletionContext_ClassTag: ::libc::c_uint = 2048;
pub const CXCompletionContext_Namespace: ::libc::c_uint = 4096;
pub const CXCompletionContext_NestedNameSpecifier: ::libc::c_uint = 8192;
pub const CXCompletionContext_ObjCInterface: ::libc::c_uint = 16384;
pub const CXCompletionContext_ObjCProtocol: ::libc::c_uint = 32768;
pub const CXCompletionContext_ObjCCategory: ::libc::c_uint = 65536;
pub const CXCompletionContext_ObjCInstanceMessage: ::libc::c_uint = 131072;
pub const CXCompletionContext_ObjCClassMessage: ::libc::c_uint = 262144;
pub const CXCompletionContext_ObjCSelectorName: ::libc::c_uint = 524288;
pub const CXCompletionContext_MacroName: ::libc::c_uint = 1048576;
pub const CXCompletionContext_NaturalLanguage: ::libc::c_uint = 2097152;
pub const CXCompletionContext_Unknown: ::libc::c_uint = 4194303;
pub type CXInclusionVisitor =
    ::std::option::Option<extern "C" fn
                              (included_file: CXFile,
                               inclusion_stack: *mut CXSourceLocation,
                               include_len: ::libc::c_uint,
                               client_data: CXClientData) -> ()>;
pub type CXRemapping = *mut ::libc::c_void;
pub type Enum_CXVisitorResult = ::libc::c_uint;
pub const CXVisit_Break: ::libc::c_uint = 0;
pub const CXVisit_Continue: ::libc::c_uint = 1;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed14 {
    pub context: *mut ::libc::c_void,
    pub visit: ::std::option::Option<extern "C" fn
                                         (context: *mut ::libc::c_void,
                                          arg1: CXCursor, arg2: CXSourceRange)
                                         -> Enum_CXVisitorResult>,
}
impl ::std::default::Default for Struct_Unnamed14 {
    fn default() -> Struct_Unnamed14 { unsafe { ::std::mem::zeroed() } }
}
pub type CXCursorAndRangeVisitor = Struct_Unnamed14;
pub type Enum_Unnamed15 = ::libc::c_uint;
pub const CXResult_Success: ::libc::c_uint = 0;
pub const CXResult_Invalid: ::libc::c_uint = 1;
pub const CXResult_VisitBreak: ::libc::c_uint = 2;
pub type CXResult = Enum_Unnamed15;
pub type CXIdxClientFile = *mut ::libc::c_void;
pub type CXIdxClientEntity = *mut ::libc::c_void;
pub type CXIdxClientContainer = *mut ::libc::c_void;
pub type CXIdxClientASTFile = *mut ::libc::c_void;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed16 {
    pub ptr_data: [*mut ::libc::c_void; 2us],
    pub int_data: ::libc::c_uint,
}
impl ::std::default::Default for Struct_Unnamed16 {
    fn default() -> Struct_Unnamed16 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxLoc = Struct_Unnamed16;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed17 {
    pub hashLoc: CXIdxLoc,
    pub filename: *const ::libc::c_char,
    pub file: CXFile,
    pub isImport: ::libc::c_int,
    pub isAngled: ::libc::c_int,
    pub isModuleImport: ::libc::c_int,
}
impl ::std::default::Default for Struct_Unnamed17 {
    fn default() -> Struct_Unnamed17 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxIncludedFileInfo = Struct_Unnamed17;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed18 {
    pub file: CXFile,
    pub module: CXModule,
    pub loc: CXIdxLoc,
    pub isImplicit: ::libc::c_int,
}
impl ::std::default::Default for Struct_Unnamed18 {
    fn default() -> Struct_Unnamed18 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxImportedASTFileInfo = Struct_Unnamed18;
pub type Enum_Unnamed19 = ::libc::c_uint;
pub const CXIdxEntity_Unexposed: ::libc::c_uint = 0;
pub const CXIdxEntity_Typedef: ::libc::c_uint = 1;
pub const CXIdxEntity_Function: ::libc::c_uint = 2;
pub const CXIdxEntity_Variable: ::libc::c_uint = 3;
pub const CXIdxEntity_Field: ::libc::c_uint = 4;
pub const CXIdxEntity_EnumConstant: ::libc::c_uint = 5;
pub const CXIdxEntity_ObjCClass: ::libc::c_uint = 6;
pub const CXIdxEntity_ObjCProtocol: ::libc::c_uint = 7;
pub const CXIdxEntity_ObjCCategory: ::libc::c_uint = 8;
pub const CXIdxEntity_ObjCInstanceMethod: ::libc::c_uint = 9;
pub const CXIdxEntity_ObjCClassMethod: ::libc::c_uint = 10;
pub const CXIdxEntity_ObjCProperty: ::libc::c_uint = 11;
pub const CXIdxEntity_ObjCIvar: ::libc::c_uint = 12;
pub const CXIdxEntity_Enum: ::libc::c_uint = 13;
pub const CXIdxEntity_Struct: ::libc::c_uint = 14;
pub const CXIdxEntity_Union: ::libc::c_uint = 15;
pub const CXIdxEntity_CXXClass: ::libc::c_uint = 16;
pub const CXIdxEntity_CXXNamespace: ::libc::c_uint = 17;
pub const CXIdxEntity_CXXNamespaceAlias: ::libc::c_uint = 18;
pub const CXIdxEntity_CXXStaticVariable: ::libc::c_uint = 19;
pub const CXIdxEntity_CXXStaticMethod: ::libc::c_uint = 20;
pub const CXIdxEntity_CXXInstanceMethod: ::libc::c_uint = 21;
pub const CXIdxEntity_CXXConstructor: ::libc::c_uint = 22;
pub const CXIdxEntity_CXXDestructor: ::libc::c_uint = 23;
pub const CXIdxEntity_CXXConversionFunction: ::libc::c_uint = 24;
pub const CXIdxEntity_CXXTypeAlias: ::libc::c_uint = 25;
pub const CXIdxEntity_CXXInterface: ::libc::c_uint = 26;
pub type CXIdxEntityKind = Enum_Unnamed19;
pub type Enum_Unnamed20 = ::libc::c_uint;
pub const CXIdxEntityLang_None: ::libc::c_uint = 0;
pub const CXIdxEntityLang_C: ::libc::c_uint = 1;
pub const CXIdxEntityLang_ObjC: ::libc::c_uint = 2;
pub const CXIdxEntityLang_CXX: ::libc::c_uint = 3;
pub type CXIdxEntityLanguage = Enum_Unnamed20;
pub type Enum_Unnamed21 = ::libc::c_uint;
pub const CXIdxEntity_NonTemplate: ::libc::c_uint = 0;
pub const CXIdxEntity_Template: ::libc::c_uint = 1;
pub const CXIdxEntity_TemplatePartialSpecialization: ::libc::c_uint = 2;
pub const CXIdxEntity_TemplateSpecialization: ::libc::c_uint = 3;
pub type CXIdxEntityCXXTemplateKind = Enum_Unnamed21;
pub type Enum_Unnamed22 = ::libc::c_uint;
pub const CXIdxAttr_Unexposed: ::libc::c_uint = 0;
pub const CXIdxAttr_IBAction: ::libc::c_uint = 1;
pub const CXIdxAttr_IBOutlet: ::libc::c_uint = 2;
pub const CXIdxAttr_IBOutletCollection: ::libc::c_uint = 3;
pub type CXIdxAttrKind = Enum_Unnamed22;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed23 {
    pub kind: CXIdxAttrKind,
    pub cursor: CXCursor,
    pub loc: CXIdxLoc,
}
impl ::std::default::Default for Struct_Unnamed23 {
    fn default() -> Struct_Unnamed23 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxAttrInfo = Struct_Unnamed23;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed24 {
    pub kind: CXIdxEntityKind,
    pub templateKind: CXIdxEntityCXXTemplateKind,
    pub lang: CXIdxEntityLanguage,
    pub name: *const ::libc::c_char,
    pub USR: *const ::libc::c_char,
    pub cursor: CXCursor,
    pub attributes: *const *const CXIdxAttrInfo,
    pub numAttributes: ::libc::c_uint,
}
impl ::std::default::Default for Struct_Unnamed24 {
    fn default() -> Struct_Unnamed24 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxEntityInfo = Struct_Unnamed24;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed25 {
    pub cursor: CXCursor,
}
impl ::std::default::Default for Struct_Unnamed25 {
    fn default() -> Struct_Unnamed25 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxContainerInfo = Struct_Unnamed25;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed26 {
    pub attrInfo: *const CXIdxAttrInfo,
    pub objcClass: *const CXIdxEntityInfo,
    pub classCursor: CXCursor,
    pub classLoc: CXIdxLoc,
}
impl ::std::default::Default for Struct_Unnamed26 {
    fn default() -> Struct_Unnamed26 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxIBOutletCollectionAttrInfo = Struct_Unnamed26;
pub type Enum_Unnamed27 = ::libc::c_uint;
pub const CXIdxDeclFlag_Skipped: ::libc::c_uint = 1;
pub type CXIdxDeclInfoFlags = Enum_Unnamed27;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed28 {
    pub entityInfo: *const CXIdxEntityInfo,
    pub cursor: CXCursor,
    pub loc: CXIdxLoc,
    pub semanticContainer: *const CXIdxContainerInfo,
    pub lexicalContainer: *const CXIdxContainerInfo,
    pub isRedeclaration: ::libc::c_int,
    pub isDefinition: ::libc::c_int,
    pub isContainer: ::libc::c_int,
    pub declAsContainer: *const CXIdxContainerInfo,
    pub isImplicit: ::libc::c_int,
    pub attributes: *const *const CXIdxAttrInfo,
    pub numAttributes: ::libc::c_uint,
    pub flags: ::libc::c_uint,
}
impl ::std::default::Default for Struct_Unnamed28 {
    fn default() -> Struct_Unnamed28 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxDeclInfo = Struct_Unnamed28;
pub type Enum_Unnamed29 = ::libc::c_uint;
pub const CXIdxObjCContainer_ForwardRef: ::libc::c_uint = 0;
pub const CXIdxObjCContainer_Interface: ::libc::c_uint = 1;
pub const CXIdxObjCContainer_Implementation: ::libc::c_uint = 2;
pub type CXIdxObjCContainerKind = Enum_Unnamed29;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed30 {
    pub declInfo: *const CXIdxDeclInfo,
    pub kind: CXIdxObjCContainerKind,
}
impl ::std::default::Default for Struct_Unnamed30 {
    fn default() -> Struct_Unnamed30 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxObjCContainerDeclInfo = Struct_Unnamed30;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed31 {
    pub base: *const CXIdxEntityInfo,
    pub cursor: CXCursor,
    pub loc: CXIdxLoc,
}
impl ::std::default::Default for Struct_Unnamed31 {
    fn default() -> Struct_Unnamed31 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxBaseClassInfo = Struct_Unnamed31;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed32 {
    pub protocol: *const CXIdxEntityInfo,
    pub cursor: CXCursor,
    pub loc: CXIdxLoc,
}
impl ::std::default::Default for Struct_Unnamed32 {
    fn default() -> Struct_Unnamed32 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxObjCProtocolRefInfo = Struct_Unnamed32;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed33 {
    pub protocols: *const *const CXIdxObjCProtocolRefInfo,
    pub numProtocols: ::libc::c_uint,
}
impl ::std::default::Default for Struct_Unnamed33 {
    fn default() -> Struct_Unnamed33 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxObjCProtocolRefListInfo = Struct_Unnamed33;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed34 {
    pub containerInfo: *const CXIdxObjCContainerDeclInfo,
    pub superInfo: *const CXIdxBaseClassInfo,
    pub protocols: *const CXIdxObjCProtocolRefListInfo,
}
impl ::std::default::Default for Struct_Unnamed34 {
    fn default() -> Struct_Unnamed34 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxObjCInterfaceDeclInfo = Struct_Unnamed34;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed35 {
    pub containerInfo: *const CXIdxObjCContainerDeclInfo,
    pub objcClass: *const CXIdxEntityInfo,
    pub classCursor: CXCursor,
    pub classLoc: CXIdxLoc,
    pub protocols: *const CXIdxObjCProtocolRefListInfo,
}
impl ::std::default::Default for Struct_Unnamed35 {
    fn default() -> Struct_Unnamed35 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxObjCCategoryDeclInfo = Struct_Unnamed35;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed36 {
    pub declInfo: *const CXIdxDeclInfo,
    pub getter: *const CXIdxEntityInfo,
    pub setter: *const CXIdxEntityInfo,
}
impl ::std::default::Default for Struct_Unnamed36 {
    fn default() -> Struct_Unnamed36 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxObjCPropertyDeclInfo = Struct_Unnamed36;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed37 {
    pub declInfo: *const CXIdxDeclInfo,
    pub bases: *const *const CXIdxBaseClassInfo,
    pub numBases: ::libc::c_uint,
}
impl ::std::default::Default for Struct_Unnamed37 {
    fn default() -> Struct_Unnamed37 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxCXXClassDeclInfo = Struct_Unnamed37;
pub type Enum_Unnamed38 = ::libc::c_uint;
pub const CXIdxEntityRef_Direct: ::libc::c_uint = 1;
pub const CXIdxEntityRef_Implicit: ::libc::c_uint = 2;
pub type CXIdxEntityRefKind = Enum_Unnamed38;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed39 {
    pub kind: CXIdxEntityRefKind,
    pub cursor: CXCursor,
    pub loc: CXIdxLoc,
    pub referencedEntity: *const CXIdxEntityInfo,
    pub parentEntity: *const CXIdxEntityInfo,
    pub container: *const CXIdxContainerInfo,
}
impl ::std::default::Default for Struct_Unnamed39 {
    fn default() -> Struct_Unnamed39 { unsafe { ::std::mem::zeroed() } }
}
pub type CXIdxEntityRefInfo = Struct_Unnamed39;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed40 {
    pub abortQuery: ::std::option::Option<extern "C" fn
                                              (client_data: CXClientData,
                                               reserved: *mut ::libc::c_void)
                                              -> ::libc::c_int>,
    pub diagnostic: ::std::option::Option<extern "C" fn
                                              (client_data: CXClientData,
                                               arg1: CXDiagnosticSet,
                                               reserved: *mut ::libc::c_void)
                                              -> ()>,
    pub enteredMainFile: ::std::option::Option<extern "C" fn
                                                   (client_data: CXClientData,
                                                    mainFile: CXFile,
                                                    reserved:
                                                        *mut ::libc::c_void)
                                                   -> CXIdxClientFile>,
    pub ppIncludedFile: ::std::option::Option<extern "C" fn
                                                  (client_data: CXClientData,
                                                   arg1:
                                                       *const CXIdxIncludedFileInfo)
                                                  -> CXIdxClientFile>,
    pub importedASTFile: ::std::option::Option<extern "C" fn
                                                   (client_data: CXClientData,
                                                    arg1:
                                                        *const CXIdxImportedASTFileInfo)
                                                   -> CXIdxClientASTFile>,
    pub startedTranslationUnit: ::std::option::Option<extern "C" fn
                                                          (client_data:
                                                               CXClientData,
                                                           reserved:
                                                               *mut ::libc::c_void)
                                                          ->
                                                              CXIdxClientContainer>,
    pub indexDeclaration: ::std::option::Option<extern "C" fn
                                                    (client_data:
                                                         CXClientData,
                                                     arg1:
                                                         *const CXIdxDeclInfo)
                                                    -> ()>,
    pub indexEntityReference: ::std::option::Option<extern "C" fn
                                                        (client_data:
                                                             CXClientData,
                                                         arg1:
                                                             *const CXIdxEntityRefInfo)
                                                        -> ()>,
}
impl ::std::default::Default for Struct_Unnamed40 {
    fn default() -> Struct_Unnamed40 { unsafe { ::std::mem::zeroed() } }
}
pub type IndexerCallbacks = Struct_Unnamed40;
pub type CXIndexAction = *mut ::libc::c_void;
pub type Enum_Unnamed41 = ::libc::c_uint;
pub const CXIndexOpt_None: ::libc::c_uint = 0;
pub const CXIndexOpt_SuppressRedundantRefs: ::libc::c_uint = 1;
pub const CXIndexOpt_IndexFunctionLocalSymbols: ::libc::c_uint = 2;
pub const CXIndexOpt_IndexImplicitTemplateInstantiations: ::libc::c_uint = 4;
pub const CXIndexOpt_SuppressWarnings: ::libc::c_uint = 8;
pub const CXIndexOpt_SkipParsedBodiesInSession: ::libc::c_uint = 16;
pub type CXIndexOptFlags = Enum_Unnamed41;
#[repr(C)]
#[derive(Copy)]
pub struct Struct_Unnamed42 {
    pub ASTNode: *const ::libc::c_void,
    pub TranslationUnit: CXTranslationUnit,
}
impl ::std::default::Default for Struct_Unnamed42 {
    fn default() -> Struct_Unnamed42 { unsafe { ::std::mem::zeroed() } }
}
pub type CXComment = Struct_Unnamed42;
pub type Enum_CXCommentKind = ::libc::c_uint;
pub const CXComment_Null: ::libc::c_uint = 0;
pub const CXComment_Text: ::libc::c_uint = 1;
pub const CXComment_InlineCommand: ::libc::c_uint = 2;
pub const CXComment_HTMLStartTag: ::libc::c_uint = 3;
pub const CXComment_HTMLEndTag: ::libc::c_uint = 4;
pub const CXComment_Paragraph: ::libc::c_uint = 5;
pub const CXComment_BlockCommand: ::libc::c_uint = 6;
pub const CXComment_ParamCommand: ::libc::c_uint = 7;
pub const CXComment_TParamCommand: ::libc::c_uint = 8;
pub const CXComment_VerbatimBlockCommand: ::libc::c_uint = 9;
pub const CXComment_VerbatimBlockLine: ::libc::c_uint = 10;
pub const CXComment_VerbatimLine: ::libc::c_uint = 11;
pub const CXComment_FullComment: ::libc::c_uint = 12;
pub type Enum_CXCommentInlineCommandRenderKind = ::libc::c_uint;
pub const CXCommentInlineCommandRenderKind_Normal: ::libc::c_uint = 0;
pub const CXCommentInlineCommandRenderKind_Bold: ::libc::c_uint = 1;
pub const CXCommentInlineCommandRenderKind_Monospaced: ::libc::c_uint = 2;
pub const CXCommentInlineCommandRenderKind_Emphasized: ::libc::c_uint = 3;
pub type Enum_CXCommentParamPassDirection = ::libc::c_uint;
pub const CXCommentParamPassDirection_In: ::libc::c_uint = 0;
pub const CXCommentParamPassDirection_Out: ::libc::c_uint = 1;
pub const CXCommentParamPassDirection_InOut: ::libc::c_uint = 2;
#[link(name = "clang")]
extern "C" {
    pub fn clang_getCString(string: CXString) -> *const ::libc::c_char;
    pub fn clang_disposeString(string: CXString) -> ();
    pub fn clang_getBuildSessionTimestamp() -> ::libc::c_ulonglong;
    pub fn clang_VirtualFileOverlay_create(options: ::libc::c_uint)
     -> CXVirtualFileOverlay;
    pub fn clang_VirtualFileOverlay_addFileMapping(arg1: CXVirtualFileOverlay,
                                                   virtualPath:
                                                       *const ::libc::c_char,
                                                   realPath:
                                                       *const ::libc::c_char)
     -> Enum_CXErrorCode;
    pub fn clang_VirtualFileOverlay_setCaseSensitivity(arg1:
                                                           CXVirtualFileOverlay,
                                                       caseSensitive:
                                                           ::libc::c_int)
     -> Enum_CXErrorCode;
    pub fn clang_VirtualFileOverlay_writeToBuffer(arg1: CXVirtualFileOverlay,
                                                  options: ::libc::c_uint,
                                                  out_buffer_ptr:
                                                      *mut *mut ::libc::c_char,
                                                  out_buffer_size:
                                                      *mut ::libc::c_uint)
     -> Enum_CXErrorCode;
    pub fn clang_VirtualFileOverlay_dispose(arg1: CXVirtualFileOverlay) -> ();
    pub fn clang_ModuleMapDescriptor_create(options: ::libc::c_uint)
     -> CXModuleMapDescriptor;
    pub fn clang_ModuleMapDescriptor_setFrameworkModuleName(arg1:
                                                                CXModuleMapDescriptor,
                                                            name:
                                                                *const ::libc::c_char)
     -> Enum_CXErrorCode;
    pub fn clang_ModuleMapDescriptor_setUmbrellaHeader(arg1:
                                                           CXModuleMapDescriptor,
                                                       name:
                                                           *const ::libc::c_char)
     -> Enum_CXErrorCode;
    pub fn clang_ModuleMapDescriptor_writeToBuffer(arg1:
                                                       CXModuleMapDescriptor,
                                                   options: ::libc::c_uint,
                                                   out_buffer_ptr:
                                                       *mut *mut ::libc::c_char,
                                                   out_buffer_size:
                                                       *mut ::libc::c_uint)
     -> Enum_CXErrorCode;
    pub fn clang_ModuleMapDescriptor_dispose(arg1: CXModuleMapDescriptor)
     -> ();
    pub fn clang_createIndex(excludeDeclarationsFromPCH: ::libc::c_int,
                             displayDiagnostics: ::libc::c_int) -> CXIndex;
    pub fn clang_disposeIndex(index: CXIndex) -> ();
    pub fn clang_CXIndex_setGlobalOptions(arg1: CXIndex,
                                          options: ::libc::c_uint) -> ();
    pub fn clang_CXIndex_getGlobalOptions(arg1: CXIndex) -> ::libc::c_uint;
    pub fn clang_getFileName(SFile: CXFile) -> CXString;
    pub fn clang_getFileTime(SFile: CXFile) -> time_t;
    pub fn clang_getFileUniqueID(file: CXFile, outID: *mut CXFileUniqueID)
     -> ::libc::c_int;
    pub fn clang_isFileMultipleIncludeGuarded(tu: CXTranslationUnit,
                                              file: CXFile) -> ::libc::c_uint;
    pub fn clang_getFile(tu: CXTranslationUnit,
                         file_name: *const ::libc::c_char) -> CXFile;
    pub fn clang_getNullLocation() -> CXSourceLocation;
    pub fn clang_equalLocations(loc1: CXSourceLocation,
                                loc2: CXSourceLocation) -> ::libc::c_uint;
    pub fn clang_getLocation(tu: CXTranslationUnit, file: CXFile,
                             line: ::libc::c_uint, column: ::libc::c_uint)
     -> CXSourceLocation;
    pub fn clang_getLocationForOffset(tu: CXTranslationUnit, file: CXFile,
                                      offset: ::libc::c_uint)
     -> CXSourceLocation;
    pub fn clang_Location_isInSystemHeader(location: CXSourceLocation)
     -> ::libc::c_int;
    pub fn clang_Location_isFromMainFile(location: CXSourceLocation)
     -> ::libc::c_int;
    pub fn clang_getNullRange() -> CXSourceRange;
    pub fn clang_getRange(begin: CXSourceLocation, end: CXSourceLocation)
     -> CXSourceRange;
    pub fn clang_equalRanges(range1: CXSourceRange, range2: CXSourceRange)
     -> ::libc::c_uint;
    pub fn clang_Range_isNull(range: CXSourceRange) -> ::libc::c_int;
    pub fn clang_getExpansionLocation(location: CXSourceLocation,
                                      file: *mut CXFile,
                                      line: *mut ::libc::c_uint,
                                      column: *mut ::libc::c_uint,
                                      offset: *mut ::libc::c_uint) -> ();
    pub fn clang_getPresumedLocation(location: CXSourceLocation,
                                     filename: *mut CXString,
                                     line: *mut ::libc::c_uint,
                                     column: *mut ::libc::c_uint) -> ();
    pub fn clang_getInstantiationLocation(location: CXSourceLocation,
                                          file: *mut CXFile,
                                          line: *mut ::libc::c_uint,
                                          column: *mut ::libc::c_uint,
                                          offset: *mut ::libc::c_uint) -> ();
    pub fn clang_getSpellingLocation(location: CXSourceLocation,
                                     file: *mut CXFile,
                                     line: *mut ::libc::c_uint,
                                     column: *mut ::libc::c_uint,
                                     offset: *mut ::libc::c_uint) -> ();
    pub fn clang_getFileLocation(location: CXSourceLocation,
                                 file: *mut CXFile, line: *mut ::libc::c_uint,
                                 column: *mut ::libc::c_uint,
                                 offset: *mut ::libc::c_uint) -> ();
    pub fn clang_getRangeStart(range: CXSourceRange) -> CXSourceLocation;
    pub fn clang_getRangeEnd(range: CXSourceRange) -> CXSourceLocation;
    pub fn clang_getSkippedRanges(tu: CXTranslationUnit, file: CXFile)
     -> *mut CXSourceRangeList;
    pub fn clang_disposeSourceRangeList(ranges: *mut CXSourceRangeList) -> ();
    pub fn clang_getNumDiagnosticsInSet(Diags: CXDiagnosticSet)
     -> ::libc::c_uint;
    pub fn clang_getDiagnosticInSet(Diags: CXDiagnosticSet,
                                    Index: ::libc::c_uint) -> CXDiagnostic;
    pub fn clang_loadDiagnostics(file: *const ::libc::c_char,
                                 error: *mut Enum_CXLoadDiag_Error,
                                 errorString: *mut CXString)
     -> CXDiagnosticSet;
    pub fn clang_disposeDiagnosticSet(Diags: CXDiagnosticSet) -> ();
    pub fn clang_getChildDiagnostics(D: CXDiagnostic) -> CXDiagnosticSet;
    pub fn clang_getNumDiagnostics(Unit: CXTranslationUnit) -> ::libc::c_uint;
    pub fn clang_getDiagnostic(Unit: CXTranslationUnit, Index: ::libc::c_uint)
     -> CXDiagnostic;
    pub fn clang_getDiagnosticSetFromTU(Unit: CXTranslationUnit)
     -> CXDiagnosticSet;
    pub fn clang_disposeDiagnostic(Diagnostic: CXDiagnostic) -> ();
    pub fn clang_formatDiagnostic(Diagnostic: CXDiagnostic,
                                  Options: ::libc::c_uint) -> CXString;
    pub fn clang_defaultDiagnosticDisplayOptions() -> ::libc::c_uint;
    pub fn clang_getDiagnosticSeverity(arg1: CXDiagnostic)
     -> Enum_CXDiagnosticSeverity;
    pub fn clang_getDiagnosticLocation(arg1: CXDiagnostic)
     -> CXSourceLocation;
    pub fn clang_getDiagnosticSpelling(arg1: CXDiagnostic) -> CXString;
    pub fn clang_getDiagnosticOption(Diag: CXDiagnostic,
                                     Disable: *mut CXString) -> CXString;
    pub fn clang_getDiagnosticCategory(arg1: CXDiagnostic) -> ::libc::c_uint;
    pub fn clang_getDiagnosticCategoryName(Category: ::libc::c_uint)
     -> CXString;
    pub fn clang_getDiagnosticCategoryText(arg1: CXDiagnostic) -> CXString;
    pub fn clang_getDiagnosticNumRanges(arg1: CXDiagnostic) -> ::libc::c_uint;
    pub fn clang_getDiagnosticRange(Diagnostic: CXDiagnostic,
                                    Range: ::libc::c_uint) -> CXSourceRange;
    pub fn clang_getDiagnosticNumFixIts(Diagnostic: CXDiagnostic)
     -> ::libc::c_uint;
    pub fn clang_getDiagnosticFixIt(Diagnostic: CXDiagnostic,
                                    FixIt: ::libc::c_uint,
                                    ReplacementRange: *mut CXSourceRange)
     -> CXString;
    pub fn clang_getTranslationUnitSpelling(CTUnit: CXTranslationUnit)
     -> CXString;
    pub fn clang_createTranslationUnitFromSourceFile(CIdx: CXIndex,
                                                     source_filename:
                                                         *const ::libc::c_char,
                                                     num_clang_command_line_args:
                                                         ::libc::c_int,
                                                     clang_command_line_args:
                                                         *const *const ::libc::c_char,
                                                     num_unsaved_files:
                                                         ::libc::c_uint,
                                                     unsaved_files:
                                                         *mut Struct_CXUnsavedFile)
     -> CXTranslationUnit;
    pub fn clang_createTranslationUnit(CIdx: CXIndex,
                                       ast_filename: *const ::libc::c_char)
     -> CXTranslationUnit;
    pub fn clang_createTranslationUnit2(CIdx: CXIndex,
                                        ast_filename: *const ::libc::c_char,
                                        out_TU: *mut CXTranslationUnit)
     -> Enum_CXErrorCode;
    pub fn clang_defaultEditingTranslationUnitOptions() -> ::libc::c_uint;
    pub fn clang_parseTranslationUnit(CIdx: CXIndex,
                                      source_filename: *const ::libc::c_char,
                                      command_line_args:
                                          *const *const ::libc::c_char,
                                      num_command_line_args: ::libc::c_int,
                                      unsaved_files:
                                          *mut Struct_CXUnsavedFile,
                                      num_unsaved_files: ::libc::c_uint,
                                      options: ::libc::c_uint)
     -> CXTranslationUnit;
    pub fn clang_parseTranslationUnit2(CIdx: CXIndex,
                                       source_filename: *const ::libc::c_char,
                                       command_line_args:
                                           *const *const ::libc::c_char,
                                       num_command_line_args: ::libc::c_int,
                                       unsaved_files:
                                           *mut Struct_CXUnsavedFile,
                                       num_unsaved_files: ::libc::c_uint,
                                       options: ::libc::c_uint,
                                       out_TU: *mut CXTranslationUnit)
     -> Enum_CXErrorCode;
    pub fn clang_defaultSaveOptions(TU: CXTranslationUnit) -> ::libc::c_uint;
    pub fn clang_saveTranslationUnit(TU: CXTranslationUnit,
                                     FileName: *const ::libc::c_char,
                                     options: ::libc::c_uint)
     -> ::libc::c_int;
    pub fn clang_disposeTranslationUnit(arg1: CXTranslationUnit) -> ();
    pub fn clang_defaultReparseOptions(TU: CXTranslationUnit)
     -> ::libc::c_uint;
    pub fn clang_reparseTranslationUnit(TU: CXTranslationUnit,
                                        num_unsaved_files: ::libc::c_uint,
                                        unsaved_files:
                                            *mut Struct_CXUnsavedFile,
                                        options: ::libc::c_uint)
     -> ::libc::c_int;
    pub fn clang_getTUResourceUsageName(kind: Enum_CXTUResourceUsageKind)
     -> *const ::libc::c_char;
    pub fn clang_getCXTUResourceUsage(TU: CXTranslationUnit)
     -> CXTUResourceUsage;
    pub fn clang_disposeCXTUResourceUsage(usage: CXTUResourceUsage) -> ();
    pub fn clang_getNullCursor() -> CXCursor;
    pub fn clang_getTranslationUnitCursor(arg1: CXTranslationUnit)
     -> CXCursor;
    pub fn clang_equalCursors(arg1: CXCursor, arg2: CXCursor)
     -> ::libc::c_uint;
    pub fn clang_Cursor_isNull(cursor: CXCursor) -> ::libc::c_int;
    pub fn clang_hashCursor(arg1: CXCursor) -> ::libc::c_uint;
    pub fn clang_getCursorKind(arg1: CXCursor) -> Enum_CXCursorKind;
    pub fn clang_isDeclaration(arg1: Enum_CXCursorKind) -> ::libc::c_uint;
    pub fn clang_isReference(arg1: Enum_CXCursorKind) -> ::libc::c_uint;
    pub fn clang_isExpression(arg1: Enum_CXCursorKind) -> ::libc::c_uint;
    pub fn clang_isStatement(arg1: Enum_CXCursorKind) -> ::libc::c_uint;
    pub fn clang_isAttribute(arg1: Enum_CXCursorKind) -> ::libc::c_uint;
    pub fn clang_isInvalid(arg1: Enum_CXCursorKind) -> ::libc::c_uint;
    pub fn clang_isTranslationUnit(arg1: Enum_CXCursorKind) -> ::libc::c_uint;
    pub fn clang_isPreprocessing(arg1: Enum_CXCursorKind) -> ::libc::c_uint;
    pub fn clang_isUnexposed(arg1: Enum_CXCursorKind) -> ::libc::c_uint;
    pub fn clang_getCursorLinkage(cursor: CXCursor) -> Enum_CXLinkageKind;
    pub fn clang_getCursorAvailability(cursor: CXCursor)
     -> Enum_CXAvailabilityKind;
    pub fn clang_getCursorPlatformAvailability(cursor: CXCursor,
                                               always_deprecated:
                                                   *mut ::libc::c_int,
                                               deprecated_message:
                                                   *mut CXString,
                                               always_unavailable:
                                                   *mut ::libc::c_int,
                                               unavailable_message:
                                                   *mut CXString,
                                               availability:
                                                   *mut CXPlatformAvailability,
                                               availability_size:
                                                   ::libc::c_int)
     -> ::libc::c_int;
    pub fn clang_disposeCXPlatformAvailability(availability:
                                                   *mut CXPlatformAvailability)
     -> ();
    pub fn clang_getCursorLanguage(cursor: CXCursor) -> Enum_CXLanguageKind;
    pub fn clang_Cursor_getTranslationUnit(arg1: CXCursor)
     -> CXTranslationUnit;
    pub fn clang_createCXCursorSet() -> CXCursorSet;
    pub fn clang_disposeCXCursorSet(cset: CXCursorSet) -> ();
    pub fn clang_CXCursorSet_contains(cset: CXCursorSet, cursor: CXCursor)
     -> ::libc::c_uint;
    pub fn clang_CXCursorSet_insert(cset: CXCursorSet, cursor: CXCursor)
     -> ::libc::c_uint;
    pub fn clang_getCursorSemanticParent(cursor: CXCursor) -> CXCursor;
    pub fn clang_getCursorLexicalParent(cursor: CXCursor) -> CXCursor;
    pub fn clang_getOverriddenCursors(cursor: CXCursor,
                                      overridden: *mut *mut CXCursor,
                                      num_overridden: *mut ::libc::c_uint)
     -> ();
    pub fn clang_disposeOverriddenCursors(overridden: *mut CXCursor) -> ();
    pub fn clang_getIncludedFile(cursor: CXCursor) -> CXFile;
    pub fn clang_getCursor(arg1: CXTranslationUnit, arg2: CXSourceLocation)
     -> CXCursor;
    pub fn clang_getCursorLocation(arg1: CXCursor) -> CXSourceLocation;
    pub fn clang_getCursorExtent(arg1: CXCursor) -> CXSourceRange;
    pub fn clang_getCursorType(C: CXCursor) -> CXType;
    pub fn clang_getTypeSpelling(CT: CXType) -> CXString;
    pub fn clang_getTypedefDeclUnderlyingType(C: CXCursor) -> CXType;
    pub fn clang_getEnumDeclIntegerType(C: CXCursor) -> CXType;
    pub fn clang_getEnumConstantDeclValue(C: CXCursor) -> ::libc::c_longlong;
    pub fn clang_getEnumConstantDeclUnsignedValue(C: CXCursor)
     -> ::libc::c_ulonglong;
    pub fn clang_getFieldDeclBitWidth(C: CXCursor) -> ::libc::c_int;
    pub fn clang_Cursor_getNumArguments(C: CXCursor) -> ::libc::c_int;
    pub fn clang_Cursor_getArgument(C: CXCursor, i: ::libc::c_uint)
     -> CXCursor;
    pub fn clang_equalTypes(A: CXType, B: CXType) -> ::libc::c_uint;
    pub fn clang_getCanonicalType(T: CXType) -> CXType;
    pub fn clang_isConstQualifiedType(T: CXType) -> ::libc::c_uint;
    pub fn clang_isVolatileQualifiedType(T: CXType) -> ::libc::c_uint;
    pub fn clang_isRestrictQualifiedType(T: CXType) -> ::libc::c_uint;
    pub fn clang_getPointeeType(T: CXType) -> CXType;
    pub fn clang_getTypeDeclaration(T: CXType) -> CXCursor;
    pub fn clang_getDeclObjCTypeEncoding(C: CXCursor) -> CXString;
    pub fn clang_getTypeKindSpelling(K: Enum_CXTypeKind) -> CXString;
    pub fn clang_getFunctionTypeCallingConv(T: CXType) -> Enum_CXCallingConv;
    pub fn clang_getResultType(T: CXType) -> CXType;
    pub fn clang_getNumArgTypes(T: CXType) -> ::libc::c_int;
    pub fn clang_getArgType(T: CXType, i: ::libc::c_uint) -> CXType;
    pub fn clang_isFunctionTypeVariadic(T: CXType) -> ::libc::c_uint;
    pub fn clang_getCursorResultType(C: CXCursor) -> CXType;
    pub fn clang_isPODType(T: CXType) -> ::libc::c_uint;
    pub fn clang_getElementType(T: CXType) -> CXType;
    pub fn clang_getNumElements(T: CXType) -> ::libc::c_longlong;
    pub fn clang_getArrayElementType(T: CXType) -> CXType;
    pub fn clang_getArraySize(T: CXType) -> ::libc::c_longlong;
    pub fn clang_Type_getAlignOf(T: CXType) -> ::libc::c_longlong;
    pub fn clang_Type_getClassType(T: CXType) -> CXType;
    pub fn clang_Type_getSizeOf(T: CXType) -> ::libc::c_longlong;
    pub fn clang_Type_getOffsetOf(T: CXType, S: *const ::libc::c_char)
     -> ::libc::c_longlong;
    pub fn clang_Type_getNumTemplateArguments(T: CXType) -> ::libc::c_int;
    pub fn clang_Type_getTemplateArgumentAsType(T: CXType, i: ::libc::c_uint)
     -> CXType;
    pub fn clang_Type_getCXXRefQualifier(T: CXType)
     -> Enum_CXRefQualifierKind;
    pub fn clang_Cursor_isBitField(C: CXCursor) -> ::libc::c_uint;
    pub fn clang_isVirtualBase(arg1: CXCursor) -> ::libc::c_uint;
    pub fn clang_getCXXAccessSpecifier(arg1: CXCursor)
     -> Enum_CX_CXXAccessSpecifier;
    pub fn clang_getNumOverloadedDecls(cursor: CXCursor) -> ::libc::c_uint;
    pub fn clang_getOverloadedDecl(cursor: CXCursor, index: ::libc::c_uint)
     -> CXCursor;
    pub fn clang_getIBOutletCollectionType(arg1: CXCursor) -> CXType;
    pub fn clang_visitChildren(parent: CXCursor, visitor: CXCursorVisitor,
                               client_data: CXClientData) -> ::libc::c_uint;
    pub fn clang_getCursorUSR(arg1: CXCursor) -> CXString;
    pub fn clang_constructUSR_ObjCClass(class_name: *const ::libc::c_char)
     -> CXString;
    pub fn clang_constructUSR_ObjCCategory(class_name: *const ::libc::c_char,
                                           category_name:
                                               *const ::libc::c_char)
     -> CXString;
    pub fn clang_constructUSR_ObjCProtocol(protocol_name:
                                               *const ::libc::c_char)
     -> CXString;
    pub fn clang_constructUSR_ObjCIvar(name: *const ::libc::c_char,
                                       classUSR: CXString) -> CXString;
    pub fn clang_constructUSR_ObjCMethod(name: *const ::libc::c_char,
                                         isInstanceMethod: ::libc::c_uint,
                                         classUSR: CXString) -> CXString;
    pub fn clang_constructUSR_ObjCProperty(property: *const ::libc::c_char,
                                           classUSR: CXString) -> CXString;
    pub fn clang_getCursorSpelling(arg1: CXCursor) -> CXString;
    pub fn clang_Cursor_getSpellingNameRange(arg1: CXCursor,
                                             pieceIndex: ::libc::c_uint,
                                             options: ::libc::c_uint)
     -> CXSourceRange;
    pub fn clang_getCursorDisplayName(arg1: CXCursor) -> CXString;
    pub fn clang_getCursorReferenced(arg1: CXCursor) -> CXCursor;
    pub fn clang_getCursorDefinition(arg1: CXCursor) -> CXCursor;
    pub fn clang_isCursorDefinition(arg1: CXCursor) -> ::libc::c_uint;
    pub fn clang_getCanonicalCursor(arg1: CXCursor) -> CXCursor;
    pub fn clang_Cursor_getObjCSelectorIndex(arg1: CXCursor) -> ::libc::c_int;
    pub fn clang_Cursor_isDynamicCall(C: CXCursor) -> ::libc::c_int;
    pub fn clang_Cursor_getReceiverType(C: CXCursor) -> CXType;
    pub fn clang_Cursor_getObjCPropertyAttributes(C: CXCursor,
                                                  reserved: ::libc::c_uint)
     -> ::libc::c_uint;
    pub fn clang_Cursor_getObjCDeclQualifiers(C: CXCursor) -> ::libc::c_uint;
    pub fn clang_Cursor_isObjCOptional(C: CXCursor) -> ::libc::c_uint;
    pub fn clang_Cursor_isVariadic(C: CXCursor) -> ::libc::c_uint;
    pub fn clang_Cursor_getCommentRange(C: CXCursor) -> CXSourceRange;
    pub fn clang_Cursor_getRawCommentText(C: CXCursor) -> CXString;
    pub fn clang_Cursor_getBriefCommentText(C: CXCursor) -> CXString;
    pub fn clang_Cursor_getModule(C: CXCursor) -> CXModule;
    pub fn clang_getModuleForFile(arg1: CXTranslationUnit, arg2: CXFile)
     -> CXModule;
    pub fn clang_Module_getASTFile(Module: CXModule) -> CXFile;
    pub fn clang_Module_getParent(Module: CXModule) -> CXModule;
    pub fn clang_Module_getName(Module: CXModule) -> CXString;
    pub fn clang_Module_getFullName(Module: CXModule) -> CXString;
    pub fn clang_Module_isSystem(Module: CXModule) -> ::libc::c_int;
    pub fn clang_Module_getNumTopLevelHeaders(arg1: CXTranslationUnit,
                                              Module: CXModule)
     -> ::libc::c_uint;
    pub fn clang_Module_getTopLevelHeader(arg1: CXTranslationUnit,
                                          Module: CXModule,
                                          Index: ::libc::c_uint) -> CXFile;
    pub fn clang_CXXMethod_isPureVirtual(C: CXCursor) -> ::libc::c_uint;
    pub fn clang_CXXMethod_isStatic(C: CXCursor) -> ::libc::c_uint;
    pub fn clang_CXXMethod_isVirtual(C: CXCursor) -> ::libc::c_uint;
    pub fn clang_CXXMethod_isConst(C: CXCursor) -> ::libc::c_uint;
    pub fn clang_getTemplateCursorKind(C: CXCursor) -> Enum_CXCursorKind;
    pub fn clang_getSpecializedCursorTemplate(C: CXCursor) -> CXCursor;
    pub fn clang_getCursorReferenceNameRange(C: CXCursor,
                                             NameFlags: ::libc::c_uint,
                                             PieceIndex: ::libc::c_uint)
     -> CXSourceRange;
    pub fn clang_getTokenKind(arg1: CXToken) -> CXTokenKind;
    pub fn clang_getTokenSpelling(arg1: CXTranslationUnit, arg2: CXToken)
     -> CXString;
    pub fn clang_getTokenLocation(arg1: CXTranslationUnit, arg2: CXToken)
     -> CXSourceLocation;
    pub fn clang_getTokenExtent(arg1: CXTranslationUnit, arg2: CXToken)
     -> CXSourceRange;
    pub fn clang_tokenize(TU: CXTranslationUnit, Range: CXSourceRange,
                          Tokens: *mut *mut CXToken,
                          NumTokens: *mut ::libc::c_uint) -> ();
    pub fn clang_annotateTokens(TU: CXTranslationUnit, Tokens: *mut CXToken,
                                NumTokens: ::libc::c_uint,
                                Cursors: *mut CXCursor) -> ();
    pub fn clang_disposeTokens(TU: CXTranslationUnit, Tokens: *mut CXToken,
                               NumTokens: ::libc::c_uint) -> ();
    pub fn clang_getCursorKindSpelling(Kind: Enum_CXCursorKind) -> CXString;
    pub fn clang_getDefinitionSpellingAndExtent(arg1: CXCursor,
                                                startBuf:
                                                    *mut *const ::libc::c_char,
                                                endBuf:
                                                    *mut *const ::libc::c_char,
                                                startLine:
                                                    *mut ::libc::c_uint,
                                                startColumn:
                                                    *mut ::libc::c_uint,
                                                endLine: *mut ::libc::c_uint,
                                                endColumn:
                                                    *mut ::libc::c_uint)
     -> ();
    pub fn clang_enableStackTraces() -> ();
    pub fn clang_executeOnThread(_fn:
                                     ::std::option::Option<extern "C" fn
                                                               (arg1:
                                                                    *mut ::libc::c_void)
                                                               -> ()>,
                                 user_data: *mut ::libc::c_void,
                                 stack_size: ::libc::c_uint) -> ();
    pub fn clang_getCompletionChunkKind(completion_string: CXCompletionString,
                                        chunk_number: ::libc::c_uint)
     -> Enum_CXCompletionChunkKind;
    pub fn clang_getCompletionChunkText(completion_string: CXCompletionString,
                                        chunk_number: ::libc::c_uint)
     -> CXString;
    pub fn clang_getCompletionChunkCompletionString(completion_string:
                                                        CXCompletionString,
                                                    chunk_number:
                                                        ::libc::c_uint)
     -> CXCompletionString;
    pub fn clang_getNumCompletionChunks(completion_string: CXCompletionString)
     -> ::libc::c_uint;
    pub fn clang_getCompletionPriority(completion_string: CXCompletionString)
     -> ::libc::c_uint;
    pub fn clang_getCompletionAvailability(completion_string:
                                               CXCompletionString)
     -> Enum_CXAvailabilityKind;
    pub fn clang_getCompletionNumAnnotations(completion_string:
                                                 CXCompletionString)
     -> ::libc::c_uint;
    pub fn clang_getCompletionAnnotation(completion_string:
                                             CXCompletionString,
                                         annotation_number: ::libc::c_uint)
     -> CXString;
    pub fn clang_getCompletionParent(completion_string: CXCompletionString,
                                     kind: *mut Enum_CXCursorKind)
     -> CXString;
    pub fn clang_getCompletionBriefComment(completion_string:
                                               CXCompletionString)
     -> CXString;
    pub fn clang_getCursorCompletionString(cursor: CXCursor)
     -> CXCompletionString;
    pub fn clang_defaultCodeCompleteOptions() -> ::libc::c_uint;
    pub fn clang_codeCompleteAt(TU: CXTranslationUnit,
                                complete_filename: *const ::libc::c_char,
                                complete_line: ::libc::c_uint,
                                complete_column: ::libc::c_uint,
                                unsaved_files: *mut Struct_CXUnsavedFile,
                                num_unsaved_files: ::libc::c_uint,
                                options: ::libc::c_uint)
     -> *mut CXCodeCompleteResults;
    pub fn clang_sortCodeCompletionResults(Results: *mut CXCompletionResult,
                                           NumResults: ::libc::c_uint) -> ();
    pub fn clang_disposeCodeCompleteResults(Results:
                                                *mut CXCodeCompleteResults)
     -> ();
    pub fn clang_codeCompleteGetNumDiagnostics(Results:
                                                   *mut CXCodeCompleteResults)
     -> ::libc::c_uint;
    pub fn clang_codeCompleteGetDiagnostic(Results:
                                               *mut CXCodeCompleteResults,
                                           Index: ::libc::c_uint)
     -> CXDiagnostic;
    pub fn clang_codeCompleteGetContexts(Results: *mut CXCodeCompleteResults)
     -> ::libc::c_ulonglong;
    pub fn clang_codeCompleteGetContainerKind(Results:
                                                  *mut CXCodeCompleteResults,
                                              IsIncomplete:
                                                  *mut ::libc::c_uint)
     -> Enum_CXCursorKind;
    pub fn clang_codeCompleteGetContainerUSR(Results:
                                                 *mut CXCodeCompleteResults)
     -> CXString;
    pub fn clang_codeCompleteGetObjCSelector(Results:
                                                 *mut CXCodeCompleteResults)
     -> CXString;
    pub fn clang_getClangVersion() -> CXString;
    pub fn clang_toggleCrashRecovery(isEnabled: ::libc::c_uint) -> ();
    pub fn clang_getInclusions(tu: CXTranslationUnit,
                               visitor: CXInclusionVisitor,
                               client_data: CXClientData) -> ();
    pub fn clang_getRemappings(path: *const ::libc::c_char) -> CXRemapping;
    pub fn clang_getRemappingsFromFileList(filePaths:
                                               *mut *const ::libc::c_char,
                                           numFiles: ::libc::c_uint)
     -> CXRemapping;
    pub fn clang_remap_getNumFiles(arg1: CXRemapping) -> ::libc::c_uint;
    pub fn clang_remap_getFilenames(arg1: CXRemapping, index: ::libc::c_uint,
                                    original: *mut CXString,
                                    transformed: *mut CXString) -> ();
    pub fn clang_remap_dispose(arg1: CXRemapping) -> ();
    pub fn clang_findReferencesInFile(cursor: CXCursor, file: CXFile,
                                      visitor: CXCursorAndRangeVisitor)
     -> CXResult;
    pub fn clang_findIncludesInFile(TU: CXTranslationUnit, file: CXFile,
                                    visitor: CXCursorAndRangeVisitor)
     -> CXResult;
    pub fn clang_index_isEntityObjCContainerKind(arg1: CXIdxEntityKind)
     -> ::libc::c_int;
    pub fn clang_index_getObjCContainerDeclInfo(arg1: *const CXIdxDeclInfo)
     -> *const CXIdxObjCContainerDeclInfo;
    pub fn clang_index_getObjCInterfaceDeclInfo(arg1: *const CXIdxDeclInfo)
     -> *const CXIdxObjCInterfaceDeclInfo;
    pub fn clang_index_getObjCCategoryDeclInfo(arg1: *const CXIdxDeclInfo)
     -> *const CXIdxObjCCategoryDeclInfo;
    pub fn clang_index_getObjCProtocolRefListInfo(arg1: *const CXIdxDeclInfo)
     -> *const CXIdxObjCProtocolRefListInfo;
    pub fn clang_index_getObjCPropertyDeclInfo(arg1: *const CXIdxDeclInfo)
     -> *const CXIdxObjCPropertyDeclInfo;
    pub fn clang_index_getIBOutletCollectionAttrInfo(arg1:
                                                         *const CXIdxAttrInfo)
     -> *const CXIdxIBOutletCollectionAttrInfo;
    pub fn clang_index_getCXXClassDeclInfo(arg1: *const CXIdxDeclInfo)
     -> *const CXIdxCXXClassDeclInfo;
    pub fn clang_index_getClientContainer(arg1: *const CXIdxContainerInfo)
     -> CXIdxClientContainer;
    pub fn clang_index_setClientContainer(arg1: *const CXIdxContainerInfo,
                                          arg2: CXIdxClientContainer) -> ();
    pub fn clang_index_getClientEntity(arg1: *const CXIdxEntityInfo)
     -> CXIdxClientEntity;
    pub fn clang_index_setClientEntity(arg1: *const CXIdxEntityInfo,
                                       arg2: CXIdxClientEntity) -> ();
    pub fn clang_IndexAction_create(CIdx: CXIndex) -> CXIndexAction;
    pub fn clang_IndexAction_dispose(arg1: CXIndexAction) -> ();
    pub fn clang_indexSourceFile(arg1: CXIndexAction,
                                 client_data: CXClientData,
                                 index_callbacks: *mut IndexerCallbacks,
                                 index_callbacks_size: ::libc::c_uint,
                                 index_options: ::libc::c_uint,
                                 source_filename: *const ::libc::c_char,
                                 command_line_args:
                                     *const *const ::libc::c_char,
                                 num_command_line_args: ::libc::c_int,
                                 unsaved_files: *mut Struct_CXUnsavedFile,
                                 num_unsaved_files: ::libc::c_uint,
                                 out_TU: *mut CXTranslationUnit,
                                 TU_options: ::libc::c_uint) -> ::libc::c_int;
    pub fn clang_indexTranslationUnit(arg1: CXIndexAction,
                                      client_data: CXClientData,
                                      index_callbacks: *mut IndexerCallbacks,
                                      index_callbacks_size: ::libc::c_uint,
                                      index_options: ::libc::c_uint,
                                      arg2: CXTranslationUnit)
     -> ::libc::c_int;
    pub fn clang_indexLoc_getFileLocation(loc: CXIdxLoc,
                                          indexFile: *mut CXIdxClientFile,
                                          file: *mut CXFile,
                                          line: *mut ::libc::c_uint,
                                          column: *mut ::libc::c_uint,
                                          offset: *mut ::libc::c_uint) -> ();
    pub fn clang_indexLoc_getCXSourceLocation(loc: CXIdxLoc)
     -> CXSourceLocation;
    pub fn clang_Cursor_getParsedComment(C: CXCursor) -> CXComment;
    pub fn clang_Comment_getKind(Comment: CXComment) -> Enum_CXCommentKind;
    pub fn clang_Comment_getNumChildren(Comment: CXComment) -> ::libc::c_uint;
    pub fn clang_Comment_getChild(Comment: CXComment,
                                  ChildIdx: ::libc::c_uint) -> CXComment;
    pub fn clang_Comment_isWhitespace(Comment: CXComment) -> ::libc::c_uint;
    pub fn clang_InlineContentComment_hasTrailingNewline(Comment: CXComment)
     -> ::libc::c_uint;
    pub fn clang_TextComment_getText(Comment: CXComment) -> CXString;
    pub fn clang_InlineCommandComment_getCommandName(Comment: CXComment)
     -> CXString;
    pub fn clang_InlineCommandComment_getRenderKind(Comment: CXComment)
     -> Enum_CXCommentInlineCommandRenderKind;
    pub fn clang_InlineCommandComment_getNumArgs(Comment: CXComment)
     -> ::libc::c_uint;
    pub fn clang_InlineCommandComment_getArgText(Comment: CXComment,
                                                 ArgIdx: ::libc::c_uint)
     -> CXString;
    pub fn clang_HTMLTagComment_getTagName(Comment: CXComment) -> CXString;
    pub fn clang_HTMLStartTagComment_isSelfClosing(Comment: CXComment)
     -> ::libc::c_uint;
    pub fn clang_HTMLStartTag_getNumAttrs(Comment: CXComment)
     -> ::libc::c_uint;
    pub fn clang_HTMLStartTag_getAttrName(Comment: CXComment,
                                          AttrIdx: ::libc::c_uint)
     -> CXString;
    pub fn clang_HTMLStartTag_getAttrValue(Comment: CXComment,
                                           AttrIdx: ::libc::c_uint)
     -> CXString;
    pub fn clang_BlockCommandComment_getCommandName(Comment: CXComment)
     -> CXString;
    pub fn clang_BlockCommandComment_getNumArgs(Comment: CXComment)
     -> ::libc::c_uint;
    pub fn clang_BlockCommandComment_getArgText(Comment: CXComment,
                                                ArgIdx: ::libc::c_uint)
     -> CXString;
    pub fn clang_BlockCommandComment_getParagraph(Comment: CXComment)
     -> CXComment;
    pub fn clang_ParamCommandComment_getParamName(Comment: CXComment)
     -> CXString;
    pub fn clang_ParamCommandComment_isParamIndexValid(Comment: CXComment)
     -> ::libc::c_uint;
    pub fn clang_ParamCommandComment_getParamIndex(Comment: CXComment)
     -> ::libc::c_uint;
    pub fn clang_ParamCommandComment_isDirectionExplicit(Comment: CXComment)
     -> ::libc::c_uint;
    pub fn clang_ParamCommandComment_getDirection(Comment: CXComment)
     -> Enum_CXCommentParamPassDirection;
    pub fn clang_TParamCommandComment_getParamName(Comment: CXComment)
     -> CXString;
    pub fn clang_TParamCommandComment_isParamPositionValid(Comment: CXComment)
     -> ::libc::c_uint;
    pub fn clang_TParamCommandComment_getDepth(Comment: CXComment)
     -> ::libc::c_uint;
    pub fn clang_TParamCommandComment_getIndex(Comment: CXComment,
                                               Depth: ::libc::c_uint)
     -> ::libc::c_uint;
    pub fn clang_VerbatimBlockLineComment_getText(Comment: CXComment)
     -> CXString;
    pub fn clang_VerbatimLineComment_getText(Comment: CXComment) -> CXString;
    pub fn clang_HTMLTagComment_getAsString(Comment: CXComment) -> CXString;
    pub fn clang_FullComment_getAsHTML(Comment: CXComment) -> CXString;
    pub fn clang_FullComment_getAsXML(Comment: CXComment) -> CXString;
}