[Openmp-dev] OMP Nodes Skipped over in AST for -ast-dump=json

Joshua Slagle via Openmp-dev openmp-dev at lists.llvm.org
Wed Feb 17 10:37:34 PST 2021


Hi all,

I am attempting to print out the json format using clang's -ast-dump
option. I am additionally passing in the -fopenmp flag so that the command
looks like the following:
         clang -Xclang -ast-dump=json -Xpreprocessor -fopenmp

If the -ast-dump option is run WITHOUT the json specification, all works
well and all nodes are printed out (see ast_orig_temp.txt file). However,
when the -ast-dump is run WITH the json specification, OMP Clauses nodes
disappear (note that all other nodes I've checked *do* appear - see
ast_json_temp.json file).

Any input or insight into why this is happening? The end goal here is to
get the JSON representation of the Clang AST with OMP nodes, so if there is
another way to accomplish this that would be useful as well.

Thanks for all the help - Joshua
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20210217/841281d4/attachment-0001.html>
-------------- next part --------------
TranslationUnitDecl 0x18fa3a8 <<invalid sloc>> <invalid sloc>
|-TypedefDecl 0x18fac60 <<invalid sloc>> <invalid sloc> implicit __int128_t '__int128'
| `-BuiltinType 0x18fa940 '__int128'
|-TypedefDecl 0x18facd0 <<invalid sloc>> <invalid sloc> implicit __uint128_t 'unsigned __int128'
| `-BuiltinType 0x18fa960 'unsigned __int128'
|-TypedefDecl 0x18fafd8 <<invalid sloc>> <invalid sloc> implicit __NSConstantString 'struct __NSConstantString_tag'
| `-RecordType 0x18fadb0 'struct __NSConstantString_tag'
|   `-Record 0x18fad28 '__NSConstantString_tag'
|-TypedefDecl 0x18fb070 <<invalid sloc>> <invalid sloc> implicit __builtin_ms_va_list 'char *'
| `-PointerType 0x18fb030 'char *'
|   `-BuiltinType 0x18fa440 'char'
|-TypedefDecl 0x1938bf0 <<invalid sloc>> <invalid sloc> implicit referenced __builtin_va_list 'struct __va_list_tag [1]'
| `-ConstantArrayType 0x18fb310 'struct __va_list_tag [1]' 1 
|   `-RecordType 0x18fb150 'struct __va_list_tag'
|     `-Record 0x18fb0c8 '__va_list_tag'
|-TypedefDecl 0x1938c60 </usr/lib/llvm-10/lib/clang/10.0.0/include/stddef.h:46:1, col:23> col:23 referenced size_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x1938cf0 </usr/lib/llvm-10/lib/clang/10.0.0/include/stdarg.h:14:1, col:27> col:27 va_list '__builtin_va_list':'struct __va_list_tag [1]'
| `-TypedefType 0x1938cc0 '__builtin_va_list' sugar
|   |-Typedef 0x1938bf0 '__builtin_va_list'
|   `-ConstantArrayType 0x18fb310 'struct __va_list_tag [1]' 1 
|     `-RecordType 0x18fb150 'struct __va_list_tag'
|       `-Record 0x18fb0c8 '__va_list_tag'
|-TypedefDecl 0x1938d58 <line:32:1, col:27> col:27 referenced __gnuc_va_list '__builtin_va_list':'struct __va_list_tag [1]'
| `-TypedefType 0x1938cc0 '__builtin_va_list' sugar
|   |-Typedef 0x1938bf0 '__builtin_va_list'
|   `-ConstantArrayType 0x18fb310 'struct __va_list_tag [1]' 1 
|     `-RecordType 0x18fb150 'struct __va_list_tag'
|       `-Record 0x18fb0c8 '__va_list_tag'
|-TypedefDecl 0x1938dc8 </usr/include/x86_64-linux-gnu/bits/types.h:31:1, col:23> col:23 __u_char 'unsigned char'
| `-BuiltinType 0x18fa500 'unsigned char'
|-TypedefDecl 0x1938e38 <line:32:1, col:28> col:28 __u_short 'unsigned short'
| `-BuiltinType 0x18fa520 'unsigned short'
|-TypedefDecl 0x1938ea8 <line:33:1, col:22> col:22 __u_int 'unsigned int'
| `-BuiltinType 0x18fa540 'unsigned int'
|-TypedefDecl 0x1938f18 <line:34:1, col:27> col:27 __u_long 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x1938f88 <line:37:1, col:21> col:21 referenced __int8_t 'signed char'
| `-BuiltinType 0x18fa460 'signed char'
|-TypedefDecl 0x1938ff8 <line:38:1, col:23> col:23 referenced __uint8_t 'unsigned char'
| `-BuiltinType 0x18fa500 'unsigned char'
|-TypedefDecl 0x1939068 <line:39:1, col:26> col:26 referenced __int16_t 'short'
| `-BuiltinType 0x18fa480 'short'
|-TypedefDecl 0x19390d8 <line:40:1, col:28> col:28 referenced __uint16_t 'unsigned short'
| `-BuiltinType 0x18fa520 'unsigned short'
|-TypedefDecl 0x1939148 <line:41:1, col:20> col:20 referenced __int32_t 'int'
| `-BuiltinType 0x18fa4a0 'int'
|-TypedefDecl 0x19391b8 <line:42:1, col:22> col:22 referenced __uint32_t 'unsigned int'
| `-BuiltinType 0x18fa540 'unsigned int'
|-TypedefDecl 0x1939228 <line:44:1, col:25> col:25 referenced __int64_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x1939298 <line:45:1, col:27> col:27 referenced __uint64_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x1939320 <line:52:1, col:18> col:18 __int_least8_t '__int8_t':'signed char'
| `-TypedefType 0x19392f0 '__int8_t' sugar
|   |-Typedef 0x1938f88 '__int8_t'
|   `-BuiltinType 0x18fa460 'signed char'
|-TypedefDecl 0x19393b0 <line:53:1, col:19> col:19 __uint_least8_t '__uint8_t':'unsigned char'
| `-TypedefType 0x1939380 '__uint8_t' sugar
|   |-Typedef 0x1938ff8 '__uint8_t'
|   `-BuiltinType 0x18fa500 'unsigned char'
|-TypedefDecl 0x1939440 <line:54:1, col:19> col:19 __int_least16_t '__int16_t':'short'
| `-TypedefType 0x1939410 '__int16_t' sugar
|   |-Typedef 0x1939068 '__int16_t'
|   `-BuiltinType 0x18fa480 'short'
|-TypedefDecl 0x19394d0 <line:55:1, col:20> col:20 __uint_least16_t '__uint16_t':'unsigned short'
| `-TypedefType 0x19394a0 '__uint16_t' sugar
|   |-Typedef 0x19390d8 '__uint16_t'
|   `-BuiltinType 0x18fa520 'unsigned short'
|-TypedefDecl 0x1939560 <line:56:1, col:19> col:19 __int_least32_t '__int32_t':'int'
| `-TypedefType 0x1939530 '__int32_t' sugar
|   |-Typedef 0x1939148 '__int32_t'
|   `-BuiltinType 0x18fa4a0 'int'
|-TypedefDecl 0x19395f0 <line:57:1, col:20> col:20 __uint_least32_t '__uint32_t':'unsigned int'
| `-TypedefType 0x19395c0 '__uint32_t' sugar
|   |-Typedef 0x19391b8 '__uint32_t'
|   `-BuiltinType 0x18fa540 'unsigned int'
|-TypedefDecl 0x1939680 <line:58:1, col:19> col:19 __int_least64_t '__int64_t':'long'
| `-TypedefType 0x1939650 '__int64_t' sugar
|   |-Typedef 0x1939228 '__int64_t'
|   `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x1939710 <line:59:1, col:20> col:20 __uint_least64_t '__uint64_t':'unsigned long'
| `-TypedefType 0x19396e0 '__uint64_t' sugar
|   |-Typedef 0x1939298 '__uint64_t'
|   `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x1939780 <line:63:1, col:18> col:18 __quad_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x19397f0 <line:64:1, col:27> col:27 __u_quad_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x1939860 <line:72:1, col:18> col:18 __intmax_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x19398d0 <line:73:1, col:27> col:27 __uintmax_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x1939940 <line:137:22, line:145:25> col:25 __dev_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x19399b0 <line:137:22, line:146:25> col:25 __uid_t 'unsigned int'
| `-BuiltinType 0x18fa540 'unsigned int'
|-TypedefDecl 0x1939a20 <line:137:22, line:147:25> col:25 __gid_t 'unsigned int'
| `-BuiltinType 0x18fa540 'unsigned int'
|-TypedefDecl 0x1939a90 <line:137:22, line:148:25> col:25 __ino_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x1939b00 <line:137:22, line:149:27> col:27 __ino64_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x1939b70 <line:137:22, line:150:26> col:26 __mode_t 'unsigned int'
| `-BuiltinType 0x18fa540 'unsigned int'
|-TypedefDecl 0x197e8e0 <line:137:22, line:151:27> col:27 __nlink_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x197e950 <line:137:22, line:152:25> col:25 referenced __off_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197e9c0 <line:137:22, line:153:27> col:27 referenced __off64_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197ea30 <line:137:22, line:154:25> col:25 __pid_t 'int'
| `-BuiltinType 0x18fa4a0 'int'
|-RecordDecl 0x197ea88 </usr/include/x86_64-linux-gnu/bits/typesizes.h:72:24, col:47> col:24 struct definition
| `-FieldDecl 0x197ebd0 <col:33, col:44> col:37 __val 'int [2]'
|-TypedefDecl 0x197ec78 </usr/include/x86_64-linux-gnu/bits/types.h:137:22, line:155:26> col:26 __fsid_t 'struct __fsid_t':'__fsid_t'
| `-ElaboratedType 0x197ec20 'struct __fsid_t' sugar
|   `-RecordType 0x197eb10 '__fsid_t'
|     `-Record 0x197ea88 ''
|-TypedefDecl 0x197ed00 <line:137:22, line:156:27> col:27 __clock_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197ed70 <line:137:22, line:157:26> col:26 __rlim_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x197ede0 <line:137:22, line:158:28> col:28 __rlim64_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x197ee50 <line:137:22, line:159:24> col:24 __id_t 'unsigned int'
| `-BuiltinType 0x18fa540 'unsigned int'
|-TypedefDecl 0x197eec0 <line:137:22, line:160:26> col:26 __time_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197ef30 <line:137:22, line:161:30> col:30 __useconds_t 'unsigned int'
| `-BuiltinType 0x18fa540 'unsigned int'
|-TypedefDecl 0x197efa0 <line:137:22, line:162:31> col:31 __suseconds_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197f010 <line:137:22, line:164:27> col:27 __daddr_t 'int'
| `-BuiltinType 0x18fa4a0 'int'
|-TypedefDecl 0x197f080 <line:137:22, line:165:25> col:25 __key_t 'int'
| `-BuiltinType 0x18fa4a0 'int'
|-TypedefDecl 0x197f0f0 <line:137:22, line:168:29> col:29 __clockid_t 'int'
| `-BuiltinType 0x18fa4a0 'int'
|-TypedefDecl 0x197f160 <line:137:22, line:171:27> col:27 __timer_t 'void *'
| `-PointerType 0x18fabe0 'void *'
|   `-BuiltinType 0x18fa400 'void'
|-TypedefDecl 0x197f1d0 <line:137:22, line:174:29> col:29 __blksize_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197f240 <line:137:22, line:179:28> col:28 __blkcnt_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197f2b0 <line:137:22, line:180:30> col:30 __blkcnt64_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197f320 <line:137:22, line:183:30> col:30 __fsblkcnt_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x197f390 <line:137:22, line:184:32> col:32 __fsblkcnt64_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x197f400 <line:137:22, line:187:30> col:30 __fsfilcnt_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x197f470 <line:137:22, line:188:32> col:32 __fsfilcnt64_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x197f4e0 <line:137:22, line:191:28> col:28 __fsword_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197f550 <line:137:22, line:193:27> col:27 referenced __ssize_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197f5c0 <line:137:22, line:196:33> col:33 __syscall_slong_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197f630 <line:137:22, line:198:33> col:33 __syscall_ulong_t 'unsigned long'
| `-BuiltinType 0x18fa560 'unsigned long'
|-TypedefDecl 0x197f6c0 <line:202:1, col:19> col:19 __loff_t '__off64_t':'long'
| `-TypedefType 0x197f690 '__off64_t' sugar
|   |-Typedef 0x197e9c0 '__off64_t'
|   `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197f730 <line:203:1, col:15> col:15 __caddr_t 'char *'
| `-PointerType 0x18fb030 'char *'
|   `-BuiltinType 0x18fa440 'char'
|-TypedefDecl 0x197f7a0 <line:137:22, line:206:25> col:25 __intptr_t 'long'
| `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x197f810 <line:137:22, line:209:23> col:23 __socklen_t 'unsigned int'
| `-BuiltinType 0x18fa540 'unsigned int'
|-TypedefDecl 0x197f880 <line:214:1, col:13> col:13 __sig_atomic_t 'int'
| `-BuiltinType 0x18fa4a0 'int'
|-RecordDecl 0x19858e0 </usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:13:9, line:21:1> line:13:9 struct definition
| |-FieldDecl 0x1985998 <line:15:3, col:7> col:7 __count 'int'
| |-RecordDecl 0x19859e8 <line:16:3, line:20:3> line:16:3 union definition
| | |-FieldDecl 0x1985aa8 <<built-in>:87:23, /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:18:19> col:19 __wch 'unsigned int'
| | `-FieldDecl 0x1985b88 <line:19:5, col:18> col:10 __wchb 'char [4]'
| `-FieldDecl 0x1985c38 <line:16:3, line:20:5> col:5 __value 'union (anonymous union at /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:16:3)':'union __mbstate_t::(anonymous at /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:16:3)'
|-TypedefDecl 0x1985ce8 <line:13:1, line:21:3> col:3 referenced __mbstate_t 'struct __mbstate_t':'__mbstate_t'
| `-ElaboratedType 0x1985c90 'struct __mbstate_t' sugar
|   `-RecordType 0x1985960 '__mbstate_t'
|     `-Record 0x19858e0 ''
|-RecordDecl 0x1985d58 </usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:10:9, line:14:1> line:10:16 struct _G_fpos_t definition
| |-FieldDecl 0x1985e30 <line:12:3, col:11> col:11 __pos '__off_t':'long'
| `-FieldDecl 0x1985eb0 <line:13:3, col:15> col:15 __state '__mbstate_t':'__mbstate_t'
|-TypedefDecl 0x1985f58 <line:10:1, line:14:3> col:3 referenced __fpos_t 'struct _G_fpos_t':'struct _G_fpos_t'
| `-ElaboratedType 0x1985f00 'struct _G_fpos_t' sugar
|   `-RecordType 0x1985de0 'struct _G_fpos_t'
|     `-Record 0x1985d58 '_G_fpos_t'
|-RecordDecl 0x1985fc8 </usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:10:9, line:14:1> line:10:16 struct _G_fpos64_t definition
| |-FieldDecl 0x1986080 <line:12:3, col:13> col:13 __pos '__off64_t':'long'
| `-FieldDecl 0x19860e0 <line:13:3, col:15> col:15 __state '__mbstate_t':'__mbstate_t'
|-TypedefDecl 0x1986188 <line:10:1, line:14:3> col:3 __fpos64_t 'struct _G_fpos64_t':'struct _G_fpos64_t'
| `-ElaboratedType 0x1986130 'struct _G_fpos64_t' sugar
|   `-RecordType 0x1986050 'struct _G_fpos64_t'
|     `-Record 0x1985fc8 '_G_fpos64_t'
|-RecordDecl 0x19861f8 </usr/include/x86_64-linux-gnu/bits/types/__FILE.h:4:1, col:8> col:8 struct _IO_FILE
|-TypedefDecl 0x19862f0 <line:5:1, col:25> col:25 __FILE 'struct _IO_FILE':'struct _IO_FILE'
| `-ElaboratedType 0x19862a0 'struct _IO_FILE' sugar
|   `-RecordType 0x1986280 'struct _IO_FILE'
|     `-Record 0x1986708 '_IO_FILE'
|-RecordDecl 0x1986348 prev 0x19861f8 </usr/include/x86_64-linux-gnu/bits/types/FILE.h:4:1, col:8> col:8 struct _IO_FILE
|-TypedefDecl 0x19863e8 <line:7:1, col:25> col:25 referenced FILE 'struct _IO_FILE':'struct _IO_FILE'
| `-ElaboratedType 0x19862a0 'struct _IO_FILE' sugar
|   `-RecordType 0x1986280 'struct _IO_FILE'
|     `-Record 0x1986708 '_IO_FILE'
|-RecordDecl 0x1986440 prev 0x1986348 </usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:35:1, col:8> col:8 struct _IO_FILE
|-RecordDecl 0x19864c0 <line:36:1, col:8> col:8 struct _IO_marker
|-RecordDecl 0x1986560 <line:37:1, col:8> col:8 struct _IO_codecvt
|-RecordDecl 0x1986600 <line:38:1, col:8> col:8 struct _IO_wide_data
|-TypedefDecl 0x19866b0 <line:43:1, col:14> col:14 referenced _IO_lock_t 'void'
| `-BuiltinType 0x18fa400 'void'
|-RecordDecl 0x1986708 prev 0x1986440 <line:49:1, line:99:1> line:49:8 struct _IO_FILE definition
| |-FieldDecl 0x19867a0 <line:51:3, col:7> col:7 _flags 'int'
| |-FieldDecl 0x1986808 <line:54:3, col:9> col:9 _IO_read_ptr 'char *'
| |-FieldDecl 0x1986870 <line:55:3, col:9> col:9 _IO_read_end 'char *'
| |-FieldDecl 0x1988970 <line:56:3, col:9> col:9 _IO_read_base 'char *'
| |-FieldDecl 0x19889d8 <line:57:3, col:9> col:9 _IO_write_base 'char *'
| |-FieldDecl 0x1988a40 <line:58:3, col:9> col:9 _IO_write_ptr 'char *'
| |-FieldDecl 0x1988aa8 <line:59:3, col:9> col:9 _IO_write_end 'char *'
| |-FieldDecl 0x1988b10 <line:60:3, col:9> col:9 _IO_buf_base 'char *'
| |-FieldDecl 0x1988b78 <line:61:3, col:9> col:9 _IO_buf_end 'char *'
| |-FieldDecl 0x1988be0 <line:64:3, col:9> col:9 _IO_save_base 'char *'
| |-FieldDecl 0x1988c48 <line:65:3, col:9> col:9 _IO_backup_base 'char *'
| |-FieldDecl 0x1988cb0 <line:66:3, col:9> col:9 _IO_save_end 'char *'
| |-FieldDecl 0x1988db0 <line:68:3, col:22> col:22 _markers 'struct _IO_marker *'
| |-FieldDecl 0x1988e80 <line:70:3, col:20> col:20 _chain 'struct _IO_FILE *'
| |-FieldDecl 0x1988ee8 <line:72:3, col:7> col:7 _fileno 'int'
| |-FieldDecl 0x1988f50 <line:73:3, col:7> col:7 _flags2 'int'
| |-FieldDecl 0x1988fb0 <line:74:3, col:11> col:11 _old_offset '__off_t':'long'
| |-FieldDecl 0x1989018 <line:77:3, col:18> col:18 _cur_column 'unsigned short'
| |-FieldDecl 0x1989080 <line:78:3, col:15> col:15 _vtable_offset 'signed char'
| |-FieldDecl 0x1989168 <line:79:3, col:19> col:8 _shortbuf 'char [1]'
| |-FieldDecl 0x1989218 <line:81:3, col:15> col:15 _lock '_IO_lock_t *'
| |-FieldDecl 0x1989278 <line:89:3, col:13> col:13 _offset '__off64_t':'long'
| |-FieldDecl 0x1989380 <line:91:3, col:23> col:23 _codecvt 'struct _IO_codecvt *'
| |-FieldDecl 0x1989480 <line:92:3, col:25> col:25 _wide_data 'struct _IO_wide_data *'
| |-FieldDecl 0x19894f8 <line:93:3, col:20> col:20 _freeres_list 'struct _IO_FILE *'
| |-FieldDecl 0x1989560 <line:94:3, col:9> col:9 _freeres_buf 'void *'
| |-FieldDecl 0x19895e0 <line:95:3, col:10> col:10 __pad5 'size_t':'unsigned long'
| |-FieldDecl 0x1989648 <line:96:3, col:7> col:7 _mode 'int'
| `-FieldDecl 0x1989898 <line:98:3, col:74> col:8 _unused2 'char [20]'
|-TypedefDecl 0x198b380 prev 0x1938cf0 </usr/include/stdio.h:52:1, col:24> col:24 va_list '__gnuc_va_list':'struct __va_list_tag [1]'
| `-TypedefType 0x19898f0 '__gnuc_va_list' sugar
|   |-Typedef 0x1938d58 '__gnuc_va_list'
|   `-TypedefType 0x1938cc0 '__builtin_va_list' sugar
|     |-Typedef 0x1938bf0 '__builtin_va_list'
|     `-ConstantArrayType 0x18fb310 'struct __va_list_tag [1]' 1 
|       `-RecordType 0x18fb150 'struct __va_list_tag'
|         `-Record 0x18fb0c8 '__va_list_tag'
|-TypedefDecl 0x198b3e8 <line:63:1, col:17> col:17 off_t '__off_t':'long'
| `-TypedefType 0x1985e00 '__off_t' sugar
|   |-Typedef 0x197e950 '__off_t'
|   `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x198b470 <line:77:1, col:19> col:19 ssize_t '__ssize_t':'long'
| `-TypedefType 0x198b440 '__ssize_t' sugar
|   |-Typedef 0x197f550 '__ssize_t'
|   `-BuiltinType 0x18fa4c0 'long'
|-TypedefDecl 0x198b500 <line:84:1, col:18> col:18 referenced fpos_t '__fpos_t':'struct _G_fpos_t'
| `-TypedefType 0x198b4d0 '__fpos_t' sugar
|   |-Typedef 0x1985f58 '__fpos_t'
|   `-ElaboratedType 0x1985f00 'struct _G_fpos_t' sugar
|     `-RecordType 0x1985de0 'struct _G_fpos_t'
|       `-Record 0x1985d58 '_G_fpos_t'
|-VarDecl 0x198b5b8 <line:137:1, col:14> col:14 stdin 'FILE *' extern
|-VarDecl 0x198b678 <line:138:1, col:14> col:14 stdout 'FILE *' extern
|-VarDecl 0x198b6f0 <line:139:1, col:14> col:14 stderr 'FILE *' extern
|-FunctionDecl 0x198b840 <line:146:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:146:12 remove 'int (const char *)' extern
| |-ParmVarDecl 0x198b770 <col:20, col:32> col:32 __filename 'const char *'
| `-NoThrowAttr 0x198b8e8 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x198bab0 </usr/include/stdio.h:148:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:148:12 rename 'int (const char *, const char *)' extern
| |-ParmVarDecl 0x198b958 <col:20, col:32> col:32 __old 'const char *'
| |-ParmVarDecl 0x198b9d8 <col:39, col:51> col:51 __new 'const char *'
| `-NoThrowAttr 0x198bb60 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x198be50 </usr/include/stdio.h:152:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:152:12 renameat 'int (int, const char *, int, const char *)' extern
| |-ParmVarDecl 0x198bbd0 <col:22, col:26> col:26 __oldfd 'int'
| |-ParmVarDecl 0x198bc50 <col:35, col:47> col:47 __old 'const char *'
| |-ParmVarDecl 0x198bcd0 <col:54, col:58> col:58 __newfd 'int'
| |-ParmVarDecl 0x198bd50 <line:153:8, col:20> col:20 __new 'const char *'
| `-NoThrowAttr 0x198bf10 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x198c058 </usr/include/stdio.h:173:1, col:27> col:14 tmpfile 'FILE *(void)' extern
|-FunctionDecl 0x198c1e0 <line:187:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:187:14 tmpnam 'char *(char *)' extern
| |-ParmVarDecl 0x198c110 <col:22, col:28> col:28 __s 'char *'
| `-NoThrowAttr 0x198c288 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x1990a00 </usr/include/stdio.h:192:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:192:14 tmpnam_r 'char *(char *)' extern
| |-ParmVarDecl 0x198c2f8 <col:24, col:30> col:30 __s 'char *'
| `-NoThrowAttr 0x1990aa8 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x1990c70 </usr/include/stdio.h:204:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:208:58> /usr/include/stdio.h:204:14 tempnam 'char *(const char *, const char *)' extern
| |-ParmVarDecl 0x1990b18 <col:23, col:35> col:35 __dir 'const char *'
| |-ParmVarDecl 0x1990b98 <col:42, col:54> col:54 __pfx 'const char *'
| |-NoThrowAttr 0x1990d20 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
| `-RestrictAttr 0x1990d78 <line:208:47> malloc
|-FunctionDecl 0x1990eb0 </usr/include/stdio.h:213:1, col:34> col:12 fclose 'int (FILE *)' extern
| `-ParmVarDecl 0x1990db0 <col:20, col:26> col:26 __stream 'FILE *'
|-FunctionDecl 0x1991000 <line:218:1, col:34> col:12 fflush 'int (FILE *)' extern
| `-ParmVarDecl 0x1990f68 <col:20, col:26> col:26 __stream 'FILE *'
|-FunctionDecl 0x1991150 <line:227:1, col:43> col:12 fflush_unlocked 'int (FILE *)' extern
| `-ParmVarDecl 0x19910b8 <col:29, col:35> col:35 __stream 'FILE *'
|-FunctionDecl 0x19913e8 <line:246:14> col:14 implicit fopen 'FILE *(const char *, const char *)' extern
| |-ParmVarDecl 0x1991488 <<invalid sloc>> <invalid sloc> 'const char *'
| `-ParmVarDecl 0x19914f0 <<invalid sloc>> <invalid sloc> 'const char *'
|-FunctionDecl 0x1991568 prev 0x19913e8 <col:1, line:247:37> line:246:14 fopen 'FILE *(const char *, const char *)' extern
| |-ParmVarDecl 0x1991210 <col:21, col:44> col:44 __filename 'const char *restrict'
| `-ParmVarDecl 0x1991290 <line:247:7, col:30> col:30 __modes 'const char *restrict'
|-FunctionDecl 0x1991848 <line:252:1, line:254:34> line:252:14 freopen 'FILE *(const char *restrict, const char *restrict, FILE *restrict)' extern
| |-ParmVarDecl 0x1991630 <col:23, col:46> col:46 __filename 'const char *restrict'
| |-ParmVarDecl 0x19916b0 <line:253:9, col:32> col:32 __modes 'const char *restrict'
| `-ParmVarDecl 0x1991728 <line:254:9, col:26> col:26 __stream 'FILE *restrict'
|-FunctionDecl 0x1993b28 <line:279:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:279:14 fdopen 'FILE *(int, const char *)' extern
| |-ParmVarDecl 0x1991918 <col:22, col:26> col:26 __fd 'int'
| |-ParmVarDecl 0x1993a10 <col:32, col:44> col:44 __modes 'const char *'
| `-NoThrowAttr 0x1993bd8 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x1993e68 </usr/include/stdio.h:292:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:292:14 fmemopen 'FILE *(void *, size_t, const char *)' extern
| |-ParmVarDecl 0x1993c48 <col:24, col:30> col:30 __s 'void *'
| |-ParmVarDecl 0x1993cc0 <col:35, col:42> col:42 __len 'size_t':'unsigned long'
| |-ParmVarDecl 0x1993d40 <col:49, col:61> col:61 __modes 'const char *'
| `-NoThrowAttr 0x1993f20 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19941a8 </usr/include/stdio.h:298:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:298:14 open_memstream 'FILE *(char **, size_t *)' extern
| |-ParmVarDecl 0x1993fc0 <col:30, col:37> col:37 __bufloc 'char **'
| |-ParmVarDecl 0x1994098 <col:47, col:55> col:55 __sizeloc 'size_t *'
| `-NoThrowAttr 0x1994258 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x1994458 </usr/include/stdio.h:304:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:304:13 setbuf 'void (FILE *restrict, char *restrict)' extern
| |-ParmVarDecl 0x19942c0 <col:21, col:38> col:38 __stream 'FILE *restrict'
| |-ParmVarDecl 0x1994340 <col:48, col:65> col:65 __buf 'char *restrict'
| `-NoThrowAttr 0x1994508 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x1994830 </usr/include/stdio.h:308:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:308:12 setvbuf 'int (FILE *restrict, char *restrict, int, size_t)' extern
| |-ParmVarDecl 0x1994570 <col:21, col:38> col:38 __stream 'FILE *restrict'
| |-ParmVarDecl 0x19945f0 <col:48, col:65> col:65 __buf 'char *restrict'
| |-ParmVarDecl 0x1994670 <line:309:7, col:11> col:11 __modes 'int'
| |-ParmVarDecl 0x19946e8 <col:20, col:27> col:27 __n 'size_t':'unsigned long'
| `-NoThrowAttr 0x19948f0 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x1994bb8 </usr/include/stdio.h:314:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:314:13 setbuffer 'void (FILE *restrict, char *restrict, size_t)' extern
| |-ParmVarDecl 0x1994958 <col:24, col:41> col:41 __stream 'FILE *restrict'
| |-ParmVarDecl 0x1994a20 <col:51, col:68> col:68 __buf 'char *restrict'
| |-ParmVarDecl 0x1994a98 <line:315:10, col:17> col:17 __size 'size_t':'unsigned long'
| `-NoThrowAttr 0x1994c70 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x1994dc8 </usr/include/stdio.h:318:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:318:13 setlinebuf 'void (FILE *)' extern
| |-ParmVarDecl 0x1994cd8 <col:25, col:31> col:31 __stream 'FILE *'
| `-NoThrowAttr 0x1994e70 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19950c0 </usr/include/stdio.h:326:12> col:12 implicit fprintf 'int (FILE *, const char *, ...)' extern
| |-ParmVarDecl 0x1995160 <<invalid sloc>> <invalid sloc> 'FILE *'
| |-ParmVarDecl 0x19951c8 <<invalid sloc>> <invalid sloc> 'const char *'
| `-FormatAttr 0x1995240 <col:12> Implicit printf 2 3
|-FunctionDecl 0x19952a8 prev 0x19950c0 <col:1, line:327:43> line:326:12 fprintf 'int (FILE *, const char *, ...)' extern
| |-ParmVarDecl 0x1994ed8 <col:21, col:38> col:38 __stream 'FILE *restrict'
| |-ParmVarDecl 0x1994f58 <line:327:7, col:30> col:30 __format 'const char *restrict'
| `-FormatAttr 0x1995388 <line:326:12> Inherited printf 2 3
|-FunctionDecl 0x19954e8 <line:332:12> col:12 implicit used printf 'int (const char *, ...)' extern
| |-ParmVarDecl 0x1995588 <<invalid sloc>> <invalid sloc> 'const char *'
| `-FormatAttr 0x19955f8 <col:12> Implicit printf 1 2
|-FunctionDecl 0x1995660 prev 0x19954e8 <col:1, col:56> col:12 used printf 'int (const char *, ...)' extern
| |-ParmVarDecl 0x19953d8 <col:20, col:43> col:43 __format 'const char *restrict'
| `-FormatAttr 0x1995738 <col:12> Inherited printf 1 2
|-FunctionDecl 0x1995928 <line:334:12> col:12 implicit sprintf 'int (char *, const char *, ...)' extern
| |-ParmVarDecl 0x1995a30 <<invalid sloc>> <invalid sloc> 'char *'
| |-ParmVarDecl 0x1995a98 <<invalid sloc>> <invalid sloc> 'const char *'
| `-FormatAttr 0x1995b10 <col:12> Implicit printf 2 3
|-FunctionDecl 0x1995b78 prev 0x1995928 <col:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:56:49> /usr/include/stdio.h:334:12 sprintf 'int (char *, const char *, ...)' extern
| |-ParmVarDecl 0x1995788 <col:21, col:38> col:38 __s 'char *restrict'
| |-ParmVarDecl 0x1995808 <line:335:7, col:30> col:30 __format 'const char *restrict'
| |-FormatAttr 0x1995c80 <line:334:12> Inherited printf 2 3
| `-NoThrowAttr 0x1995c28 </usr/include/x86_64-linux-gnu/sys/cdefs.h:56:37>
|-FunctionDecl 0x1995f90 </usr/include/stdio.h:341:12> col:12 implicit vfprintf 'int (FILE *, const char *, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x1996030 <<invalid sloc>> <invalid sloc> 'FILE *'
| |-ParmVarDecl 0x1996098 <<invalid sloc>> <invalid sloc> 'const char *'
| |-ParmVarDecl 0x1996100 <<invalid sloc>> <invalid sloc> 'struct __va_list_tag *'
| `-FormatAttr 0x1996180 <col:12> Implicit printf 2 0
|-FunctionDecl 0x19961e8 prev 0x1995f90 <col:1, line:342:28> line:341:12 vfprintf 'int (FILE *, const char *, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x1995cc8 <col:22, col:39> col:39 __s 'FILE *restrict'
| |-ParmVarDecl 0x1995d48 <col:44, col:67> col:67 __format 'const char *restrict'
| |-ParmVarDecl 0x1995e20 <line:342:8, col:23> col:23 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| `-FormatAttr 0x19962d0 <line:341:12> Inherited printf 2 0
|-FunctionDecl 0x19964b0 <line:347:12> col:12 implicit vprintf 'int (const char *, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x1996550 <<invalid sloc>> <invalid sloc> 'const char *'
| |-ParmVarDecl 0x19965b8 <<invalid sloc>> <invalid sloc> 'struct __va_list_tag *'
| `-FormatAttr 0x1996630 <col:12> Implicit printf 1 0
|-FunctionDecl 0x1996698 prev 0x19964b0 <col:1, col:74> col:12 vprintf 'int (const char *, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x1996320 <col:21, col:44> col:44 __format 'const char *restrict'
| |-ParmVarDecl 0x1996398 <col:54, col:69> col:69 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| `-FormatAttr 0x1996778 <col:12> Inherited printf 1 0
|-FunctionDecl 0x1996ae0 <line:349:12> col:12 implicit vsprintf 'int (char *, const char *, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x1996b80 <<invalid sloc>> <invalid sloc> 'char *'
| |-ParmVarDecl 0x1996be8 <<invalid sloc>> <invalid sloc> 'const char *'
| |-ParmVarDecl 0x1996c50 <<invalid sloc>> <invalid sloc> 'struct __va_list_tag *'
| `-FormatAttr 0x1996cd0 <col:12> Implicit printf 2 0
|-FunctionDecl 0x1996d38 prev 0x1996ae0 <col:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:56:49> /usr/include/stdio.h:349:12 vsprintf 'int (char *, const char *, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x19967c8 <col:22, col:39> col:39 __s 'char *restrict'
| |-ParmVarDecl 0x1996848 <col:44, col:67> col:67 __format 'const char *restrict'
| |-ParmVarDecl 0x19968c0 <line:350:8, col:23> col:23 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| |-FormatAttr 0x1996e48 <line:349:12> Inherited printf 2 0
| `-NoThrowAttr 0x1996df0 </usr/include/x86_64-linux-gnu/sys/cdefs.h:56:37>
|-FunctionDecl 0x1997128 </usr/include/stdio.h:354:12> col:12 implicit snprintf 'int (char *, unsigned long, const char *, ...)' extern
| |-ParmVarDecl 0x19971c8 <<invalid sloc>> <invalid sloc> 'char *'
| |-ParmVarDecl 0x1997230 <<invalid sloc>> <invalid sloc> 'unsigned long'
| |-ParmVarDecl 0x1997298 <<invalid sloc>> <invalid sloc> 'const char *'
| `-FormatAttr 0x1997318 <col:12> Implicit printf 3 4
|-FunctionDecl 0x1997380 prev 0x1997128 <col:1, line:356:62> line:354:12 snprintf 'int (char *, unsigned long, const char *, ...)' extern
| |-ParmVarDecl 0x1996e98 <col:22, col:39> col:39 __s 'char *restrict'
| |-ParmVarDecl 0x1996f10 <col:44, col:51> col:51 __maxlen 'size_t':'unsigned long'
| |-ParmVarDecl 0x1996f90 <line:355:8, col:31> col:31 __format 'const char *restrict'
| |-NoThrowAttr 0x1997438 </usr/include/x86_64-linux-gnu/sys/cdefs.h:56:37>
| `-FormatAttr 0x1997490 </usr/include/stdio.h:356:32, col:60> printf 3 4
|-FunctionDecl 0x19977f0 <line:358:12> col:12 implicit vsnprintf 'int (char *, unsigned long, const char *, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x1997890 <<invalid sloc>> <invalid sloc> 'char *'
| |-ParmVarDecl 0x19978f8 <<invalid sloc>> <invalid sloc> 'unsigned long'
| |-ParmVarDecl 0x1997960 <<invalid sloc>> <invalid sloc> 'const char *'
| |-ParmVarDecl 0x19979c8 <<invalid sloc>> <invalid sloc> 'struct __va_list_tag *'
| `-FormatAttr 0x1997a50 <col:12> Implicit printf 3 0
|-FunctionDecl 0x1997af0 prev 0x19977f0 <col:1, line:360:62> line:358:12 vsnprintf 'int (char *, unsigned long, const char *, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x19974e0 <col:23, col:40> col:40 __s 'char *restrict'
| |-ParmVarDecl 0x1997558 <col:45, col:52> col:52 __maxlen 'size_t':'unsigned long'
| |-ParmVarDecl 0x19975d8 <line:359:9, col:32> col:32 __format 'const char *restrict'
| |-ParmVarDecl 0x1997650 <col:42, col:57> col:57 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| |-NoThrowAttr 0x1997bb0 </usr/include/x86_64-linux-gnu/sys/cdefs.h:56:37>
| `-FormatAttr 0x1997c08 </usr/include/stdio.h:360:32, col:60> printf 3 0
|-FunctionDecl 0x1997ed0 <line:379:1, line:381:52> line:379:12 vdprintf 'int (int, const char *restrict, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x1997c58 <col:22, col:26> col:26 __fd 'int'
| |-ParmVarDecl 0x1997cd8 <col:32, col:55> col:55 __fmt 'const char *restrict'
| |-ParmVarDecl 0x1997d50 <line:380:8, col:23> col:23 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| `-FormatAttr 0x1997f88 <line:381:22, col:50> printf 2 0
|-FunctionDecl 0x19981f8 <line:382:1, line:383:52> line:382:12 dprintf 'int (int, const char *restrict, ...)' extern
| |-ParmVarDecl 0x1998008 <col:21, col:25> col:25 __fd 'int'
| |-ParmVarDecl 0x1998088 <col:31, col:54> col:54 __fmt 'const char *restrict'
| `-FormatAttr 0x19982a8 <line:383:22, col:50> printf 2 3
|-FunctionDecl 0x1998440 <line:391:12> col:12 implicit fscanf 'int (FILE *restrict, const char *restrict, ...)' extern
| |-ParmVarDecl 0x19984e0 <<invalid sloc>> <invalid sloc> 'FILE *restrict'
| |-ParmVarDecl 0x1998548 <<invalid sloc>> <invalid sloc> 'const char *restrict'
| `-FormatAttr 0x19985c0 <col:12> Implicit scanf 2 3
|-FunctionDecl 0x1998628 prev 0x1998440 <col:1, line:392:42> line:391:12 fscanf 'int (FILE *restrict, const char *restrict, ...)' extern
| |-ParmVarDecl 0x1998320 <col:20, col:37> col:37 __stream 'FILE *restrict'
| |-ParmVarDecl 0x19983a0 <line:392:6, col:29> col:29 __format 'const char *restrict'
| `-FormatAttr 0x1998708 <line:391:12> Inherited scanf 2 3
|-FunctionDecl 0x19987f0 <line:397:12> col:12 implicit scanf 'int (const char *restrict, ...)' extern
| |-ParmVarDecl 0x1998890 <<invalid sloc>> <invalid sloc> 'const char *restrict'
| `-FormatAttr 0x1998900 <col:12> Implicit scanf 1 2
|-FunctionDecl 0x1998968 prev 0x19987f0 <col:1, col:55> col:12 scanf 'int (const char *restrict, ...)' extern
| |-ParmVarDecl 0x1998758 <col:19, col:42> col:42 __format 'const char *restrict'
| `-FormatAttr 0x1998a40 <col:12> Inherited scanf 1 2
|-FunctionDecl 0x1999cc8 <line:399:12> col:12 implicit sscanf 'int (const char *restrict, const char *restrict, ...)' extern
| |-ParmVarDecl 0x1999d68 <<invalid sloc>> <invalid sloc> 'const char *restrict'
| |-ParmVarDecl 0x1999dd0 <<invalid sloc>> <invalid sloc> 'const char *restrict'
| `-FormatAttr 0x1999e48 <col:12> Implicit scanf 2 3
|-FunctionDecl 0x1999eb0 prev 0x1999cc8 <col:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:399:12 sscanf 'int (const char *restrict, const char *restrict, ...)' extern
| |-ParmVarDecl 0x1999b20 <col:20, col:43> col:43 __s 'const char *restrict'
| |-ParmVarDecl 0x1999ba0 <line:400:6, col:29> col:29 __format 'const char *restrict'
| |-FormatAttr 0x1999fb8 <line:399:12> Inherited scanf 2 3
| `-NoThrowAttr 0x1999f60 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x199a190 prev 0x1998628 </usr/include/stdio.h:407:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:174:79> /usr/include/stdio.h:407:24 fscanf 'int (FILE *restrict, const char *restrict, ...)' extern
| |-ParmVarDecl 0x199a000 <col:33, col:50> col:50 __stream 'FILE *restrict'
| |-ParmVarDecl 0x199a080 <line:408:5, col:28> col:28 __format 'const char *restrict'
| |-FormatAttr 0x199a2b8 <line:391:12> Inherited scanf 2 3
| `-AsmLabelAttr 0x199a230 <<scratch space>:14:1> "__isoc99_fscanf" IsLiteralLabel
|-FunctionDecl 0x199a408 prev 0x1998968 </usr/include/stdio.h:410:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:174:79> /usr/include/stdio.h:410:24 scanf 'int (const char *restrict, ...)' extern
| |-ParmVarDecl 0x199a308 <col:32, col:55> col:55 __format 'const char *restrict'
| |-FormatAttr 0x199a528 <line:397:12> Inherited scanf 1 2
| `-AsmLabelAttr 0x199a4a8 <<scratch space>:16:1> "__isoc99_scanf" IsLiteralLabel
|-FunctionDecl 0x199a6c8 prev 0x1999eb0 </usr/include/stdio.h:412:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:412:28 sscanf 'int (const char *restrict, const char *restrict, ...)' extern
| |-ParmVarDecl 0x199a578 <col:37, col:60> col:60 __s 'const char *restrict'
| |-ParmVarDecl 0x199a5f8 <line:413:9, col:32> col:32 __format 'const char *restrict'
| |-FormatAttr 0x199a818 <line:399:12> Inherited scanf 2 3
| |-AsmLabelAttr 0x199a768 <<scratch space>:18:1> "__isoc99_sscanf" IsLiteralLabel
| `-NoThrowAttr 0x199a7f0 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x199b820 </usr/include/stdio.h:432:12> col:12 implicit vfscanf 'int (FILE *restrict, const char *restrict, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x199b8c0 <<invalid sloc>> <invalid sloc> 'FILE *restrict'
| |-ParmVarDecl 0x199b928 <<invalid sloc>> <invalid sloc> 'const char *restrict'
| |-ParmVarDecl 0x199b990 <<invalid sloc>> <invalid sloc> 'struct __va_list_tag *'
| `-FormatAttr 0x199ba10 <col:12> Implicit scanf 2 0
|-FunctionDecl 0x199ba78 prev 0x199b820 <col:1, line:434:51> line:432:12 vfscanf 'int (FILE *restrict, const char *restrict, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x199a860 <col:21, col:38> col:38 __s 'FILE *restrict'
| |-ParmVarDecl 0x199a8e0 <col:43, col:66> col:66 __format 'const char *restrict'
| |-ParmVarDecl 0x199a958 <line:433:7, col:22> col:22 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| `-FormatAttr 0x199bb30 <line:434:22, col:49> scanf 2 0
|-FunctionDecl 0x199bd58 <line:440:12> col:12 implicit vscanf 'int (const char *restrict, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x199bdf8 <<invalid sloc>> <invalid sloc> 'const char *restrict'
| |-ParmVarDecl 0x199be60 <<invalid sloc>> <invalid sloc> 'struct __va_list_tag *'
| `-FormatAttr 0x199bed8 <col:12> Implicit scanf 1 0
|-FunctionDecl 0x199bf40 prev 0x199bd58 <col:1, line:441:51> line:440:12 vscanf 'int (const char *restrict, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x199bbb0 <col:20, col:43> col:43 __format 'const char *restrict'
| |-ParmVarDecl 0x199bc28 <col:53, col:68> col:68 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| `-FormatAttr 0x199bff0 <line:441:22, col:49> scanf 1 0
|-FunctionDecl 0x199c320 <line:444:12> col:12 implicit vsscanf 'int (const char *restrict, const char *restrict, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x199c3c0 <<invalid sloc>> <invalid sloc> 'const char *restrict'
| |-ParmVarDecl 0x199c428 <<invalid sloc>> <invalid sloc> 'const char *restrict'
| |-ParmVarDecl 0x199c490 <<invalid sloc>> <invalid sloc> 'struct __va_list_tag *'
| `-FormatAttr 0x199c510 <col:12> Implicit scanf 2 0
|-FunctionDecl 0x199c578 prev 0x199c320 <col:1, line:446:59> line:444:12 vsscanf 'int (const char *restrict, const char *restrict, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x199c070 <col:21, col:44> col:44 __s 'const char *restrict'
| |-ParmVarDecl 0x199c0f0 <line:445:7, col:30> col:30 __format 'const char *restrict'
| |-ParmVarDecl 0x199c168 <col:40, col:55> col:55 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| |-NoThrowAttr 0x199c630 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
| `-FormatAttr 0x199c688 </usr/include/stdio.h:446:30, col:57> scanf 2 0
|-FunctionDecl 0x199d228 prev 0x199ba78 <line:451:1, line:455:51> line:451:24 vfscanf 'int (FILE *restrict, const char *restrict, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x199c6d0 <line:452:11, col:28> col:28 __s 'FILE *restrict'
| |-ParmVarDecl 0x199c750 <line:453:4, col:27> col:27 __format 'const char *restrict'
| |-ParmVarDecl 0x199d0c0 <col:37, col:52> col:52 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| |-AsmLabelAttr 0x199d2c8 <<scratch space>:21:1> "__isoc99_vfscanf" IsLiteralLabel
| `-FormatAttr 0x199d358 </usr/include/stdio.h:455:22, col:49> scanf 2 0
|-FunctionDecl 0x199d540 prev 0x199bf40 <line:456:1, line:458:51> line:456:24 vscanf 'int (const char *restrict, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x199d3a8 <col:33, col:56> col:56 __format 'const char *restrict'
| |-ParmVarDecl 0x199d420 <line:457:5, col:20> col:20 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| |-AsmLabelAttr 0x199d5e0 <<scratch space>:23:1> "__isoc99_vscanf" IsLiteralLabel
| `-FormatAttr 0x199d668 </usr/include/stdio.h:458:22, col:49> scanf 1 0
|-FunctionDecl 0x199d8d8 prev 0x199c578 <line:459:1, line:463:51> line:459:28 vsscanf 'int (const char *restrict, const char *restrict, struct __va_list_tag *)' extern
| |-ParmVarDecl 0x199d6b8 <line:460:8, col:31> col:31 __s 'const char *restrict'
| |-ParmVarDecl 0x199d738 <line:461:8, col:31> col:31 __format 'const char *restrict'
| |-ParmVarDecl 0x199d7b0 <line:462:8, col:23> col:23 __arg 'struct __va_list_tag *':'struct __va_list_tag *'
| |-AsmLabelAttr 0x199d978 <<scratch space>:25:1> "__isoc99_vsscanf" IsLiteralLabel
| |-NoThrowAttr 0x199da08 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
| `-FormatAttr 0x199da30 </usr/include/stdio.h:463:22, col:49> scanf 2 0
|-FunctionDecl 0x199db10 <line:485:1, col:33> col:12 fgetc 'int (FILE *)' extern
| `-ParmVarDecl 0x199da78 <col:19, col:25> col:25 __stream 'FILE *'
|-FunctionDecl 0x199dc60 <line:486:1, col:32> col:12 getc 'int (FILE *)' extern
| `-ParmVarDecl 0x199dbc8 <col:18, col:24> col:24 __stream 'FILE *'
|-FunctionDecl 0x199ddd0 <line:492:1, col:25> col:12 getchar 'int (void)' extern
|-FunctionDecl 0x199df18 <line:499:1, col:41> col:12 getc_unlocked 'int (FILE *)' extern
| `-ParmVarDecl 0x199de80 <col:27, col:33> col:33 __stream 'FILE *'
|-FunctionDecl 0x199e4a0 <line:500:1, col:34> col:12 getchar_unlocked 'int (void)' extern
|-FunctionDecl 0x199e5e8 <line:510:1, col:42> col:12 fgetc_unlocked 'int (FILE *)' extern
| `-ParmVarDecl 0x199e550 <col:28, col:34> col:34 __stream 'FILE *'
|-FunctionDecl 0x199e840 <line:521:1, col:42> col:12 fputc 'int (int, FILE *)' extern
| |-ParmVarDecl 0x199e6a8 <col:19, col:23> col:23 __c 'int'
| `-ParmVarDecl 0x199e720 <col:28, col:34> col:34 __stream 'FILE *'
|-FunctionDecl 0x199ea20 <line:522:1, col:41> col:12 putc 'int (int, FILE *)' extern
| |-ParmVarDecl 0x199e908 <col:18, col:22> col:22 __c 'int'
| `-ParmVarDecl 0x199e980 <col:27, col:33> col:33 __stream 'FILE *'
|-FunctionDecl 0x199ebb0 <line:528:1, col:28> col:12 putchar 'int (int)' extern
| `-ParmVarDecl 0x199eae8 <col:21, col:25> col:25 __c 'int'
|-FunctionDecl 0x199ed88 <line:537:1, col:51> col:12 fputc_unlocked 'int (int, FILE *)' extern
| |-ParmVarDecl 0x199ec70 <col:28, col:32> col:32 __c 'int'
| `-ParmVarDecl 0x199ece8 <col:37, col:43> col:43 __stream 'FILE *'
|-FunctionDecl 0x199ef68 <line:545:1, col:50> col:12 putc_unlocked 'int (int, FILE *)' extern
| |-ParmVarDecl 0x199ee50 <col:27, col:31> col:31 __c 'int'
| `-ParmVarDecl 0x199eec8 <col:36, col:42> col:42 __stream 'FILE *'
|-FunctionDecl 0x199f0c8 <line:546:1, col:37> col:12 putchar_unlocked 'int (int)' extern
| `-ParmVarDecl 0x199f030 <col:30, col:34> col:34 __c 'int'
|-FunctionDecl 0x199f218 <line:553:1, col:32> col:12 getw 'int (FILE *)' extern
| `-ParmVarDecl 0x199f180 <col:18, col:24> col:24 __stream 'FILE *'
|-FunctionDecl 0x199f3f0 <line:556:1, col:41> col:12 putw 'int (int, FILE *)' extern
| |-ParmVarDecl 0x199f2d8 <col:18, col:22> col:22 __w 'int'
| `-ParmVarDecl 0x199f350 <col:27, col:33> col:33 __stream 'FILE *'
|-FunctionDecl 0x199f6f0 <line:564:1, col:77> col:14 fgets 'char *(char *restrict, int, FILE *restrict)' extern
| |-ParmVarDecl 0x199f4c8 <col:21, col:38> col:38 __s 'char *restrict'
| |-ParmVarDecl 0x199f548 <col:43, col:47> col:47 __n 'int'
| `-ParmVarDecl 0x199f5c0 <col:52, col:69> col:69 __stream 'FILE *restrict'
|-FunctionDecl 0x199fa78 <line:603:1, line:605:55> line:603:18 __getdelim '__ssize_t (char **restrict, size_t *restrict, int, FILE *restrict)' extern
| |-ParmVarDecl 0x199f7c0 <col:30, col:48> col:48 __lineptr 'char **restrict'
| |-ParmVarDecl 0x199f838 <line:604:30, col:49> col:49 __n 'size_t *restrict'
| |-ParmVarDecl 0x199f8b8 <col:54, col:58> col:58 __delimiter 'int'
| `-ParmVarDecl 0x199f930 <line:605:30, col:47> col:47 __stream 'FILE *restrict'
|-FunctionDecl 0x199fd68 <line:606:1, line:608:53> line:606:18 getdelim '__ssize_t (char **restrict, size_t *restrict, int, FILE *restrict)' extern
| |-ParmVarDecl 0x199fb50 <col:28, col:46> col:46 __lineptr 'char **restrict'
| |-ParmVarDecl 0x199fbc8 <line:607:28, col:47> col:47 __n 'size_t *restrict'
| |-ParmVarDecl 0x199fc48 <col:52, col:56> col:56 __delimiter 'int'
| `-ParmVarDecl 0x199fcc0 <line:608:28, col:45> col:45 __stream 'FILE *restrict'
|-FunctionDecl 0x19a0058 <line:616:1, line:618:52> line:616:18 getline '__ssize_t (char **restrict, size_t *restrict, FILE *restrict)' extern
| |-ParmVarDecl 0x199fe40 <col:27, col:45> col:45 __lineptr 'char **restrict'
| |-ParmVarDecl 0x199feb8 <line:617:27, col:46> col:46 __n 'size_t *restrict'
| `-ParmVarDecl 0x199ff30 <line:618:27, col:44> col:44 __stream 'FILE *restrict'
|-FunctionDecl 0x19a02c0 <line:626:1, col:72> col:12 fputs 'int (const char *restrict, FILE *restrict)' extern
| |-ParmVarDecl 0x19a0128 <col:19, col:42> col:42 __s 'const char *restrict'
| `-ParmVarDecl 0x19a01a0 <col:47, col:64> col:64 __stream 'FILE *restrict'
|-FunctionDecl 0x19a04c0 <line:632:1, col:33> col:12 puts 'int (const char *)' extern
| `-ParmVarDecl 0x19a0388 <col:18, col:30> col:30 __s 'const char *'
|-FunctionDecl 0x19a0698 <line:639:1, col:43> col:12 ungetc 'int (int, FILE *)' extern
| |-ParmVarDecl 0x19a0580 <col:20, col:24> col:24 __c 'int'
| `-ParmVarDecl 0x19a05f8 <col:29, col:35> col:35 __stream 'FILE *'
|-FunctionDecl 0x19a0a58 <line:646:15> col:15 implicit fread 'unsigned long (void *, unsigned long, unsigned long, FILE *)' extern
| |-ParmVarDecl 0x19a0af8 <<invalid sloc>> <invalid sloc> 'void *'
| |-ParmVarDecl 0x19a0b60 <<invalid sloc>> <invalid sloc> 'unsigned long'
| |-ParmVarDecl 0x19a0bc8 <<invalid sloc>> <invalid sloc> 'unsigned long'
| `-ParmVarDecl 0x19a0c30 <<invalid sloc>> <invalid sloc> 'FILE *'
|-FunctionDecl 0x19a0cb8 prev 0x19a0a58 <col:1, line:647:45> line:646:15 fread 'unsigned long (void *, unsigned long, unsigned long, FILE *)' extern
| |-ParmVarDecl 0x19a0760 <col:22, col:39> col:39 __ptr 'void *restrict'
| |-ParmVarDecl 0x19a07d8 <col:46, col:53> col:53 __size 'size_t':'unsigned long'
| |-ParmVarDecl 0x19a0850 <line:647:8, col:15> col:15 __n 'size_t':'unsigned long'
| `-ParmVarDecl 0x19a08c8 <col:20, col:37> col:37 __stream 'FILE *restrict'
|-FunctionDecl 0x19a10b8 <line:652:15> col:15 implicit fwrite 'unsigned long (const void *, unsigned long, unsigned long, FILE *)' extern
| |-ParmVarDecl 0x19a1158 <<invalid sloc>> <invalid sloc> 'const void *'
| |-ParmVarDecl 0x19a11c0 <<invalid sloc>> <invalid sloc> 'unsigned long'
| |-ParmVarDecl 0x19a1228 <<invalid sloc>> <invalid sloc> 'unsigned long'
| `-ParmVarDecl 0x19a1290 <<invalid sloc>> <invalid sloc> 'FILE *'
|-FunctionDecl 0x19a1318 prev 0x19a10b8 <col:1, line:653:41> line:652:15 fwrite 'unsigned long (const void *, unsigned long, unsigned long, FILE *)' extern
| |-ParmVarDecl 0x19a0dc0 <col:23, col:46> col:46 __ptr 'const void *restrict'
| |-ParmVarDecl 0x19a0e38 <col:53, col:60> col:60 __size 'size_t':'unsigned long'
| |-ParmVarDecl 0x19a0eb0 <line:653:9, col:16> col:16 __n 'size_t':'unsigned long'
| `-ParmVarDecl 0x19a0f28 <col:21, col:38> col:38 __s 'FILE *restrict'
|-FunctionDecl 0x19a2678 <line:673:1, line:674:47> line:673:15 fread_unlocked 'size_t (void *restrict, size_t, size_t, FILE *restrict)' extern
| |-ParmVarDecl 0x19a13f0 <col:31, col:48> col:48 __ptr 'void *restrict'
| |-ParmVarDecl 0x19a24e0 <col:55, col:62> col:62 __size 'size_t':'unsigned long'
| |-ParmVarDecl 0x19a2558 <line:674:10, col:17> col:17 __n 'size_t':'unsigned long'
| `-ParmVarDecl 0x19a25d0 <col:22, col:39> col:39 __stream 'FILE *restrict'
|-FunctionDecl 0x19a2960 <line:675:1, line:676:48> line:675:15 fwrite_unlocked 'size_t (const void *restrict, size_t, size_t, FILE *restrict)' extern
| |-ParmVarDecl 0x19a2750 <col:32, col:55> col:55 __ptr 'const void *restrict'
| |-ParmVarDecl 0x19a27c8 <col:62, col:69> col:69 __size 'size_t':'unsigned long'
| |-ParmVarDecl 0x19a2840 <line:676:11, col:18> col:18 __n 'size_t':'unsigned long'
| `-ParmVarDecl 0x19a28b8 <col:23, col:40> col:40 __stream 'FILE *restrict'
|-FunctionDecl 0x19a2c60 <line:684:1, col:63> col:12 fseek 'int (FILE *, long, int)' extern
| |-ParmVarDecl 0x19a2a30 <col:19, col:25> col:25 __stream 'FILE *'
| |-ParmVarDecl 0x19a2ab0 <col:35, col:44> col:44 __off 'long'
| `-ParmVarDecl 0x19a2b30 <col:51, col:55> col:55 __whence 'int'
|-FunctionDecl 0x19a2e20 <line:689:1, col:38> col:17 ftell 'long (FILE *)' extern
| `-ParmVarDecl 0x19a2d28 <col:24, col:30> col:30 __stream 'FILE *'
|-FunctionDecl 0x19a2f68 <line:694:1, col:35> col:13 rewind 'void (FILE *)' extern
| `-ParmVarDecl 0x19a2ed8 <col:21, col:27> col:27 __stream 'FILE *'
|-FunctionDecl 0x19a3200 <line:707:1, col:63> col:12 fseeko 'int (FILE *, __off_t, int)' extern
| |-ParmVarDecl 0x19a3020 <col:20, col:26> col:26 __stream 'FILE *'
| |-ParmVarDecl 0x19a3098 <col:36, col:44> col:44 __off '__off_t':'long'
| `-ParmVarDecl 0x19a3118 <col:51, col:55> col:55 __whence 'int'
|-FunctionDecl 0x19a3388 <line:712:1, col:38> col:16 ftello '__off_t (FILE *)' extern
| `-ParmVarDecl 0x19a32c8 <col:24, col:30> col:30 __stream 'FILE *'
|-FunctionDecl 0x19a3670 <line:731:1, col:72> col:12 fgetpos 'int (FILE *restrict, fpos_t *restrict)' extern
| |-ParmVarDecl 0x19a3440 <col:21, col:38> col:38 __stream 'FILE *restrict'
| `-ParmVarDecl 0x19a3558 <col:48, col:67> col:67 __pos 'fpos_t *restrict'
|-FunctionDecl 0x19a3920 <line:736:1, col:56> col:12 fsetpos 'int (FILE *, const fpos_t *)' extern
| |-ParmVarDecl 0x19a3730 <col:21, col:27> col:27 __stream 'FILE *'
| `-ParmVarDecl 0x19a3808 <col:37, col:51> col:51 __pos 'const fpos_t *'
|-FunctionDecl 0x19a3a70 <line:757:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:757:13 clearerr 'void (FILE *)' extern
| |-ParmVarDecl 0x19a39e0 <col:23, col:29> col:29 __stream 'FILE *'
| `-NoThrowAttr 0x19a3b18 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a3c18 </usr/include/stdio.h:759:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:759:12 feof 'int (FILE *)' extern
| |-ParmVarDecl 0x19a3b80 <col:18, col:24> col:24 __stream 'FILE *'
| `-NoThrowAttr 0x19a3cc0 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a3dc0 </usr/include/stdio.h:761:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:761:12 ferror 'int (FILE *)' extern
| |-ParmVarDecl 0x19a3d28 <col:20, col:26> col:26 __stream 'FILE *'
| `-NoThrowAttr 0x19a3e68 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a3f60 </usr/include/stdio.h:765:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:765:13 clearerr_unlocked 'void (FILE *)' extern
| |-ParmVarDecl 0x19a3ed0 <col:32, col:38> col:38 __stream 'FILE *'
| `-NoThrowAttr 0x19a4008 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a4108 </usr/include/stdio.h:766:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:766:12 feof_unlocked 'int (FILE *)' extern
| |-ParmVarDecl 0x19a4070 <col:27, col:33> col:33 __stream 'FILE *'
| `-NoThrowAttr 0x19a41b0 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a42b0 </usr/include/stdio.h:767:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:767:12 ferror_unlocked 'int (FILE *)' extern
| |-ParmVarDecl 0x19a4218 <col:29, col:35> col:35 __stream 'FILE *'
| `-NoThrowAttr 0x19a4358 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a4640 </usr/include/stdio.h:775:1, col:36> col:13 perror 'void (const char *)' extern
| `-ParmVarDecl 0x19a43c8 <col:21, col:33> col:33 __s 'const char *'
|-VarDecl 0x19a4700 </usr/include/x86_64-linux-gnu/bits/sys_errlist.h:26:1, col:12> col:12 sys_nerr 'int' extern
|-VarDecl 0x19a47f0 <line:27:1, col:38> col:26 sys_errlist 'const char *const []' extern
|-FunctionDecl 0x19a4900 </usr/include/stdio.h:786:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:786:12 fileno 'int (FILE *)' extern
| |-ParmVarDecl 0x19a4868 <col:20, col:26> col:26 __stream 'FILE *'
| `-NoThrowAttr 0x19a49a8 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a4aa8 </usr/include/stdio.h:791:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:791:12 fileno_unlocked 'int (FILE *)' extern
| |-ParmVarDecl 0x19a4a10 <col:29, col:35> col:35 __stream 'FILE *'
| `-NoThrowAttr 0x19a4b50 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a4cd8 </usr/include/stdio.h:800:1, col:63> col:14 popen 'FILE *(const char *, const char *)' extern
| |-ParmVarDecl 0x19a4bc0 <col:21, col:33> col:33 __command 'const char *'
| `-ParmVarDecl 0x19a4c40 <col:44, col:56> col:56 __modes 'const char *'
|-FunctionDecl 0x19a4e30 <line:806:1, col:34> col:12 pclose 'int (FILE *)' extern
| `-ParmVarDecl 0x19a4d98 <col:20, col:26> col:26 __stream 'FILE *'
|-FunctionDecl 0x19a4f88 <line:812:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:812:14 ctermid 'char *(char *)' extern
| |-ParmVarDecl 0x19a4ef0 <col:23, col:29> col:29 __s 'char *'
| `-NoThrowAttr 0x19a5030 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a5128 </usr/include/stdio.h:840:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:840:13 flockfile 'void (FILE *)' extern
| |-ParmVarDecl 0x19a5098 <col:24, col:30> col:30 __stream 'FILE *'
| `-NoThrowAttr 0x19a51d0 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a52d0 </usr/include/stdio.h:844:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:844:12 ftrylockfile 'int (FILE *)' extern
| |-ParmVarDecl 0x19a5238 <col:26, col:32> col:32 __stream 'FILE *'
| `-NoThrowAttr 0x19a5378 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a5470 </usr/include/stdio.h:847:1, /usr/include/x86_64-linux-gnu/sys/cdefs.h:55:54> /usr/include/stdio.h:847:13 funlockfile 'void (FILE *)' extern
| |-ParmVarDecl 0x19a53e0 <col:26, col:32> col:32 __stream 'FILE *'
| `-NoThrowAttr 0x19a5518 </usr/include/x86_64-linux-gnu/sys/cdefs.h:55:35>
|-FunctionDecl 0x19a5bb0 </usr/include/stdio.h:858:1, col:27> col:12 __uflow 'int (FILE *)' extern
| `-ParmVarDecl 0x19a5580 <col:21, col:26> col:27 'FILE *'
|-FunctionDecl 0x19a5e00 <line:859:1, col:35> col:12 __overflow 'int (FILE *, int)' extern
| |-ParmVarDecl 0x19a5c68 <col:24, col:29> col:30 'FILE *'
| `-ParmVarDecl 0x19a5ce8 <col:32> col:35 'int'
`-FunctionDecl 0x19a60d0 <DRB009-lastprivatemissing-orig-yes.c:52:1, line:75:1> line:52:5 main 'int (int, char **)'
  |-ParmVarDecl 0x19a5ec8 <col:10, col:14> col:14 argc 'int'
  |-ParmVarDecl 0x19a5fb0 <col:20, col:31> col:26 argv 'char **':'char **'
  `-CompoundStmt 0x19a8fd8 <line:53:1, line:75:1>
    |-DeclStmt 0x19a6298 <line:54:3, col:10>
    | |-VarDecl 0x19a6198 <col:3, col:7> col:7 used i 'int'
    | `-VarDecl 0x19a6218 <col:3, col:9> col:9 used x 'int'
    |-DeclStmt 0x19a6350 <line:55:3, col:18>
    | `-VarDecl 0x19a62c8 <col:3, col:13> col:7 used len 'int' cinit
    |   `-IntegerLiteral 0x19a6330 <col:13> 'int' 10000
    |-OMPParallelForDirective 0x19a8930 <line:57:1, col:38>
    | |-OMPPrivateClause 0x19a6488 <col:26, col:36>
    | | `-DeclRefExpr 0x19a6368 <col:35> 'int' lvalue Var 0x19a6198 'i' 'int'
    | `-CapturedStmt 0x19a7ad0 <line:58:3, line:61:1>
    |   |-CapturedDecl 0x19a65a8 <<invalid sloc>> <invalid sloc> nothrow
    |   | |-ForStmt 0x19a6a28 <line:58:3, line:61:1>
    |   | | |-BinaryOperator 0x19a67e8 <line:58:8, col:10> 'int' '='
    |   | | | |-DeclRefExpr 0x19a67a8 <col:8> 'int' lvalue Var 0x19a6198 'i' 'int'
    |   | | | `-IntegerLiteral 0x19a67c8 <col:10> 'int' 0
    |   | | |-<<<NULL>>>
    |   | | |-BinaryOperator 0x19a6878 <col:12, col:14> 'int' '<'
    |   | | | |-ImplicitCastExpr 0x19a6848 <col:12> 'int' <LValueToRValue>
    |   | | | | `-DeclRefExpr 0x19a6808 <col:12> 'int' lvalue Var 0x19a6198 'i' 'int'
    |   | | | `-ImplicitCastExpr 0x19a6860 <col:14> 'int' <LValueToRValue>
    |   | | |   `-DeclRefExpr 0x19a6828 <col:14> 'int' lvalue Var 0x19a62c8 'len' 'int'
    |   | | |-UnaryOperator 0x19a68b8 <col:18, col:19> 'int' postfix '++'
    |   | | | `-DeclRefExpr 0x19a6898 <col:18> 'int' lvalue Var 0x19a6198 'i' 'int'
    |   | | `-CompoundStmt 0x19a6a08 <col:22, line:61:1> openmp_structured_block
    |   | |   |-BinaryOperator 0x19a6928 <line:59:5, col:7> 'int' '='
    |   | |   | |-DeclRefExpr 0x19a68d0 <col:5> 'int' lvalue Var 0x19a6218 'x' 'int'
    |   | |   | `-ImplicitCastExpr 0x19a6910 <col:7> 'int' <LValueToRValue>
    |   | |   |   `-DeclRefExpr 0x19a68f0 <col:7> 'int' lvalue Var 0x19a6198 'i' 'int'
    |   | |   `-DeclStmt 0x19a69f0 <line:60:5, col:17>
    |   | |     `-VarDecl 0x19a6958 <col:5, col:14> col:10 c 'char' cinit
    |   | |       `-ImplicitCastExpr 0x19a69d8 <col:14> 'char' <IntegralCast>
    |   | |         `-CharacterLiteral 0x19a69c0 <col:14> 'int' 107
    |   | |-ImplicitParamDecl 0x19a6618 <line:57:1> col:1 implicit .global_tid. 'const int *const restrict'
    |   | |-ImplicitParamDecl 0x19a6680 <col:1> col:1 implicit .bound_tid. 'const int *const restrict'
    |   | |-ImplicitParamDecl 0x19a6718 <col:1> col:1 implicit __context 'struct (anonymous at DRB009-lastprivatemissing-orig-yes.c:57:1) *const restrict'
    |   | `-VarDecl 0x19a6958 <line:60:5, col:14> col:10 c 'char' cinit
    |   |   `-ImplicitCastExpr 0x19a69d8 <col:14> 'char' <IntegralCast>
    |   |     `-CharacterLiteral 0x19a69c0 <col:14> 'int' 107
    |   |-DeclRefExpr 0x19a6a60 <line:58:14> 'int' lvalue Var 0x19a62c8 'len' 'int'
    |   `-DeclRefExpr 0x19a6ae8 <line:59:5> 'int' lvalue Var 0x19a6218 'x' 'int'
    |-IfStmt 0x19a8bb0 <line:62:1, line:66:1> has_else
    | |-BinaryOperator 0x19a8a80 <line:62:5, col:10> 'int' '=='
    | | |-ImplicitCastExpr 0x19a8a68 <col:5> 'int' <LValueToRValue>
    | | | `-DeclRefExpr 0x19a8a28 <col:5> 'int' lvalue Var 0x19a6218 'x' 'int'
    | | `-IntegerLiteral 0x19a8a48 <col:10> 'int' 2
    | |-CompoundStmt 0x19a8b20 <col:13, line:64:1>
    | | `-BinaryOperator 0x19a8b00 <line:63:2, col:6> 'int' '='
    | |   |-DeclRefExpr 0x19a8aa0 <col:2> 'int' lvalue Var 0x19a6218 'x' 'int'
    | |   `-IntegerLiteral 0x19a8ae0 <col:6> 'int' 3
    | `-CompoundStmt 0x19a8b98 <line:64:8, line:66:1>
    |   `-BinaryOperator 0x19a8b78 <line:65:2, col:6> 'int' '='
    |     |-DeclRefExpr 0x19a8b38 <col:2> 'int' lvalue Var 0x19a6218 'x' 'int'
    |     `-IntegerLiteral 0x19a8b58 <col:6> 'int' 4
    |-DeclStmt 0x19a8c78 <line:68:1, col:10>
    | `-VarDecl 0x19a8bf0 <col:1, col:9> col:5 used w 'int' cinit
    |   `-IntegerLiteral 0x19a8c58 <col:9> 'int' 0
    |-WhileStmt 0x19a8e20 <line:69:1, line:72:1>
    | |-BinaryOperator 0x19a8ce8 <line:69:8, col:12> 'int' '<'
    | | |-ImplicitCastExpr 0x19a8cd0 <col:8> 'int' <LValueToRValue>
    | | | `-DeclRefExpr 0x19a8c90 <col:8> 'int' lvalue Var 0x19a8bf0 'w' 'int'
    | | `-IntegerLiteral 0x19a8cb0 <col:12> 'int' 5
    | `-CompoundStmt 0x19a8e00 <col:15, line:72:1>
    |   |-DeclStmt 0x19a8db0 <line:70:2, col:14>
    |   | `-VarDecl 0x19a8d18 <col:2, col:11> col:7 k 'char' cinit
    |   |   `-ImplicitCastExpr 0x19a8d98 <col:11> 'char' <IntegralCast>
    |   |     `-CharacterLiteral 0x19a8d80 <col:11> 'int' 115
    |   `-UnaryOperator 0x19a8de8 <line:71:2, col:3> 'int' postfix '++'
    |     `-DeclRefExpr 0x19a8dc8 <col:2> 'int' lvalue Var 0x19a8bf0 'w' 'int'
    |-CallExpr 0x19a8f30 <line:73:3, col:18> 'int'
    | |-ImplicitCastExpr 0x19a8f18 <col:3> 'int (*)(const char *, ...)' <FunctionToPointerDecay>
    | | `-DeclRefExpr 0x19a8e38 <col:3> 'int (const char *, ...)' Function 0x1995660 'printf' 'int (const char *, ...)'
    | |-ImplicitCastExpr 0x19a8f78 <col:10> 'const char *' <NoOp>
    | | `-ImplicitCastExpr 0x19a8f60 <col:10> 'char *' <ArrayToPointerDecay>
    | |   `-StringLiteral 0x19a8e98 <col:10> 'char [5]' lvalue "x=%d"
    | `-ImplicitCastExpr 0x19a8f90 <col:17> 'int' <LValueToRValue>
    |   `-DeclRefExpr 0x19a8eb8 <col:17> 'int' lvalue Var 0x19a6218 'x' 'int'
    `-ReturnStmt 0x19a8fc8 <line:74:3, col:10>
      `-IntegerLiteral 0x19a8fa8 <col:10> 'int' 0
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ast_json_temp.json
Type: application/json
Size: 598216 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20210217/841281d4/attachment-0001.json>


More information about the Openmp-dev mailing list