+ TranslationUnit + Declaration Type-string: function(pointer(char))->int has_return_stmt: 0 compile_loc: _printf static: 0 is_used: 1 extern: 1 name: printf Type: + FunctionType Parameters:: + ParamList has_ellipsis: 1 + Declaration Type-string: pointer(char) extern: 0 static: 0 name: str is_used: 0 Type: + PointerType Child:: + BaseType type_str: char Child:: + BaseType type_str: int + Declaration Type-string: function(int)->pointer(char) has_return_stmt: 0 compile_loc: _malloc static: 0 is_used: 1 extern: 1 name: malloc Type: + FunctionType Parameters:: + ParamList has_ellipsis: 0 + Declaration Type-string: int extern: 0 static: 0 name: size is_used: 0 Type: + BaseType type_str: int Child:: + PointerType Child:: + BaseType type_str: char + Declaration Type-string: function(pointer(char))->int has_return_stmt: 0 compile_loc: _free static: 0 is_used: 1 extern: 1 name: free Type: + FunctionType Parameters:: + ParamList has_ellipsis: 0 + Declaration Type-string: pointer(char) extern: 0 static: 0 name: ptr is_used: 0 Type: + PointerType Child:: + BaseType type_str: char Child:: + BaseType type_str: int + Declaration Type-string: int has_return_stmt: 0 compile_loc: _stuff_count static: 0 is_used: 1 extern: 1 name: stuff_count Type: + BaseType type_str: int + Declaration Type-string: function()->int has_return_stmt: 0 compile_loc: _increment_stuff_count static: 0 is_used: 1 extern: 1 name: increment_stuff_count Type: + FunctionType Parameters:: + ParamList has_ellipsis: 0 Child:: + BaseType type_str: int + Declaration Type-string: int has_return_stmt: 0 compile_loc: _fib_count static: 0 is_used: 1 extern: 0 name: fib_count Type: + BaseType type_str: int + FunctionDefn Type-string: function(int)->int name: fib compile_loc: _fib static: 1 is_used: 1 extern: 0 Type: + FunctionType Parameters:: + ParamList has_ellipsis: 0 + Declaration Type-string: int name: i compile_loc: 8(%ebp) static: 0 is_used: 1 extern: 0 param_num: 0 Type: + BaseType type_str: int Child:: + BaseType type_str: int Body: + CompoundStatement has_return_stmt: 1 Statement list: + StatementList has_return_stmt: 1 + Binop Type-string: int has_return_stmt: 0 op: += Left operand: + Id Type-string: int name: fib_count output_addr: 1 has_addr: 1 lineno: 32 Right operand: + Const Type-string: int value: 1 Type: + BaseType type_str: int + IfStatement has_return_stmt: 1 Expression: + Binop Type-string: int op: == Left operand: + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 33 Right operand: + Const Type-string: int value: 1 Type: + BaseType type_str: int Then statement: + CompoundStatement has_return_stmt: 1 Statement list: + StatementList has_return_stmt: 1 + ReturnStatement has_return_stmt: 1 Expression: + Const Type-string: int value: 1 Type: + BaseType type_str: int Else statement: + CompoundStatement has_return_stmt: 1 Statement list: + StatementList has_return_stmt: 1 + IfStatement has_return_stmt: 1 Expression: + Binop Type-string: int op: == Left operand: + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 36 Right operand: + Const Type-string: int value: 0 Type: + BaseType type_str: int Then statement: + CompoundStatement has_return_stmt: 1 Statement list: + StatementList has_return_stmt: 1 + ReturnStatement has_return_stmt: 1 Expression: + Const Type-string: int value: 0 Type: + BaseType type_str: int Else statement: + CompoundStatement has_return_stmt: 1 Statement list: + StatementList has_return_stmt: 1 + ReturnStatement has_return_stmt: 1 Expression: + Binop Type-string: int op: + Left operand: + FunctionExpression Type-string: int Function: + Id Type-string: function(int)->int name: fib output_addr: 0 has_addr: 1 lineno: 39 Arguments: + ArgumentList + Binop Type-string: int op: - Left operand: + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 39 Right operand: + Const Type-string: int value: 1 Type: + BaseType type_str: int Right operand: + FunctionExpression Type-string: int Function: + Id Type-string: function(int)->int name: fib output_addr: 0 has_addr: 1 lineno: 39 Arguments: + ArgumentList + Binop Type-string: int op: - Left operand: + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 39 Right operand: + Const Type-string: int value: 2 Type: + BaseType type_str: int + FunctionDefn Type-string: function(int)->int name: show_fib compile_loc: _show_fib static: 1 is_used: 1 extern: 0 Type: + FunctionType Parameters:: + ParamList has_ellipsis: 0 + Declaration Type-string: int name: i compile_loc: 8(%ebp) static: 0 is_used: 1 extern: 0 param_num: 0 Type: + BaseType type_str: int Child:: + BaseType type_str: int Body: + CompoundStatement has_return_stmt: 1 Statement list: + StatementList has_return_stmt: 1 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 48 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: "fib(%d) is %d.\n" + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 48 + FunctionExpression Type-string: int Function: + Id Type-string: function(int)->int name: fib output_addr: 0 has_addr: 1 lineno: 48 Arguments: + ArgumentList + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 48 + ReturnStatement has_return_stmt: 1 Expression: + Const Type-string: int value: 0 Type: + BaseType type_str: int + FunctionDefn Type-string: function(pointer(char))->int name: set_a compile_loc: _set_a static: 1 is_used: 1 extern: 0 Type: + FunctionType Parameters:: + ParamList has_ellipsis: 0 + Declaration Type-string: pointer(char) name: c compile_loc: 8(%ebp) static: 0 is_used: 1 extern: 0 param_num: 0 Type: + PointerType Child:: + BaseType type_str: char Child:: + BaseType type_str: int Body: + CompoundStatement has_return_stmt: 1 Statement list: + StatementList has_return_stmt: 1 + Binop Type-string: char has_return_stmt: 0 op: = Left operand: + Pointer Type-string: char output_addr: 1 has_addr: 1 Expression: + Id Type-string: pointer(char) name: c output_addr: 0 has_addr: 1 lineno: 55 Right operand: + Const Type-string: char value: 97 Type: + BaseType type_str: char + ReturnStatement has_return_stmt: 1 Expression: + Const Type-string: int value: 0 Type: + BaseType type_str: int + FunctionDefn Type-string: function()->pointer(char) name: get_literal compile_loc: _get_literal static: 1 is_used: 1 extern: 0 Type: + FunctionType Parameters:: + ParamList has_ellipsis: 0 Child:: + PointerType Child:: + BaseType type_str: char Body: + CompoundStatement has_return_stmt: 1 Statement list: + StatementList has_return_stmt: 1 + ReturnStatement has_return_stmt: 1 Expression: + StringLiteral Type-string: pointer(char) Value: "blah\n" + FunctionDefn Type-string: function(int,pointer(pointer(char)))->int name: main compile_loc: _main static: 0 extern: 0 Type: + FunctionType Parameters:: + ParamList has_ellipsis: 0 + Declaration Type-string: int name: argc compile_loc: 8(%ebp) static: 0 is_used: 1 extern: 0 param_num: 0 Type: + BaseType type_str: int + Declaration Type-string: pointer(pointer(char)) name: argv compile_loc: 12(%ebp) static: 0 is_used: 1 extern: 0 param_num: 1 Type: + PointerType Child:: + PointerType Child:: + BaseType type_str: char Child:: + BaseType type_str: int Body: + CompoundStatement has_return_stmt: 1 Declaration list: + DeclarationList + Declaration Type-string: char name: c compile_loc: -5(%ebp) static: 0 is_used: 1 extern: 0 Type: + BaseType type_str: char + Declaration Type-string: int name: i compile_loc: -4(%ebp) static: 0 is_used: 1 extern: 0 Type: + BaseType type_str: int Statement list: + StatementList has_return_stmt: 1 + Binop Type-string: char has_return_stmt: 0 op: = Left operand: + Id Type-string: char name: c output_addr: 1 has_addr: 1 lineno: 70 Right operand: + Const Type-string: char value: 104 Type: + BaseType type_str: char + Binop Type-string: int has_return_stmt: 0 op: = Left operand: + Id Type-string: int name: fib_count output_addr: 1 has_addr: 1 lineno: 73 Right operand: + Binop Type-string: int op: = Left operand: + Id Type-string: int name: stuff_count output_addr: 1 has_addr: 1 lineno: 73 Right operand: + Const Type-string: int value: 0 Type: + BaseType type_str: int + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 77 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: "My executable name is %s.\n" + Pointer Type-string: pointer(char) output_addr: 0 has_addr: 1 Expression: + Id Type-string: pointer(pointer(char)) name: argv output_addr: 0 has_addr: 1 lineno: 77 + ForLoop has_return_stmt: 0 Begin statement: + Binop Type-string: int op: = Left operand: + Id Type-string: int name: i output_addr: 1 has_addr: 1 lineno: 78 Right operand: + Const Type-string: int value: 0 Type: + BaseType type_str: int Test expression: + Binop Type-string: int op: < Left operand: + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 78 Right operand: + Id Type-string: int name: argc output_addr: 0 has_addr: 1 lineno: 78 End statement: + Binop Type-string: int op: += Left operand: + Id Type-string: int name: i output_addr: 1 has_addr: 1 lineno: 78 Right operand: + Const Type-string: int value: 1 Type: + BaseType type_str: int Statement: + CompoundStatement has_return_stmt: 0 Statement list: + StatementList has_return_stmt: 0 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 79 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: " argv[%d] is: %s argv[%d][0] is: %c\n" + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 80 + ArrayExpression Type-string: pointer(char) has_addr: 1 output_addr: 0 Expression: + Id Type-string: pointer(pointer(char)) name: argv output_addr: 0 has_addr: 1 lineno: 80 Index: + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 80 + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 80 + ArrayExpression Type-string: char has_addr: 1 output_addr: 0 Expression: + ArrayExpression Type-string: pointer(char) output_addr: 0 has_addr: 1 Expression: + Id Type-string: pointer(pointer(char)) name: argv output_addr: 0 has_addr: 1 lineno: 80 Index: + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 80 Index: + Const Type-string: int value: 0 Type: + BaseType type_str: int + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function()->int name: increment_stuff_count output_addr: 0 has_addr: 1 lineno: 81 Arguments: + ArgumentList + Binop Type-string: int has_return_stmt: 0 op: = Left operand: + Id Type-string: int name: i output_addr: 1 has_addr: 1 lineno: 85 Right operand: + Const Type-string: int value: 0 Type: + BaseType type_str: int + WhileLoop has_return_stmt: 0 Expression: + Const Type-string: int value: 1 Type: + BaseType type_str: int Statement: + CompoundStatement has_return_stmt: 0 Statement list: + StatementList has_return_stmt: 0 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(int)->int name: show_fib output_addr: 0 has_addr: 1 lineno: 87 Arguments: + ArgumentList + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 87 + Binop Type-string: int has_return_stmt: 0 op: += Left operand: + Id Type-string: int name: i output_addr: 1 has_addr: 1 lineno: 88 Right operand: + Const Type-string: int value: 1 Type: + BaseType type_str: int + IfStatement has_return_stmt: 0 Expression: + Binop Type-string: int op: > Left operand: + Id Type-string: int name: i output_addr: 0 has_addr: 1 lineno: 89 Right operand: + Const Type-string: int value: 5 Type: + BaseType type_str: int Then statement: Else statement: + Binop Type-string: int has_return_stmt: 0 op: = Left operand: + Id Type-string: int name: stuff_count output_addr: 1 has_addr: 1 lineno: 94 Right operand: + Binop Type-string: int op: * Left operand: + Id Type-string: int name: stuff_count output_addr: 0 has_addr: 1 lineno: 94 Right operand: + Const Type-string: int value: 2 Type: + BaseType type_str: int + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 96 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: "fib_count is %d.\n" + Id Type-string: int name: fib_count output_addr: 0 has_addr: 1 lineno: 96 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 97 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: "stuff_count is %d.\n" + Id Type-string: int name: stuff_count output_addr: 0 has_addr: 1 lineno: 97 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 99 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: "before set_a(&c), c == '%c'\n" + Id Type-string: char name: c output_addr: 0 has_addr: 1 lineno: 99 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: set_a output_addr: 0 has_addr: 1 lineno: 102 Arguments: + ArgumentList + AddrOf Type-string: pointer(char) Expression: + Id Type-string: char name: c output_addr: 1 has_addr: 1 lineno: 102 + CompoundStatement has_return_stmt: 0 Declaration list: + DeclarationList + Declaration Type-string: int name: a compile_loc: -12(%ebp) static: 0 is_used: 1 extern: 0 Type: + BaseType type_str: int + Declaration Type-string: char name: b compile_loc: -17(%ebp) static: 0 is_used: 1 extern: 0 Type: + BaseType type_str: char + Declaration Type-string: int name: c compile_loc: -16(%ebp) static: 0 is_used: 1 extern: 0 Type: + BaseType type_str: int Statement list: + StatementList has_return_stmt: 0 + Binop Type-string: int has_return_stmt: 0 op: = Left operand: + Id Type-string: int name: a output_addr: 1 has_addr: 1 lineno: 114 Right operand: + Const Type-string: int value: -1 Type: + BaseType type_str: int + Binop Type-string: char has_return_stmt: 0 op: = Left operand: + Id Type-string: char name: b output_addr: 1 has_addr: 1 lineno: 119 Right operand: + Id Type-string: int name: a output_addr: 0 has_addr: 1 lineno: 119 + Binop Type-string: int has_return_stmt: 0 op: = Left operand: + Id Type-string: int name: c output_addr: 1 has_addr: 1 lineno: 121 Right operand: + Id Type-string: char name: b output_addr: 0 has_addr: 1 lineno: 121 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 123 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: " a = %d\n" + Id Type-string: int name: a output_addr: 0 has_addr: 1 lineno: 123 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 124 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: " b = %d\n" + Id Type-string: char name: b output_addr: 0 has_addr: 1 lineno: 124 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 125 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: " c = %d\n" + Id Type-string: int name: c output_addr: 0 has_addr: 1 lineno: 125 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 133 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: "after set_a(&c), c == '%c'\n" + Id Type-string: char name: c output_addr: 0 has_addr: 1 lineno: 133 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 135 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: "get_literal() = %s\n" + FunctionExpression Type-string: pointer(char) Function: + Id Type-string: function()->pointer(char) name: get_literal output_addr: 0 has_addr: 1 lineno: 135 Arguments: + ArgumentList + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 138 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: "get_literal()[3] = %c\n" + ArrayExpression Type-string: char has_addr: 1 output_addr: 0 Expression: + FunctionExpression Type-string: pointer(char) Function: + Id Type-string: function()->pointer(char) name: get_literal output_addr: 0 has_addr: 1 lineno: 138 Arguments: + ArgumentList Index: + Const Type-string: int value: 3 Type: + BaseType type_str: int + CompoundStatement has_return_stmt: 0 Declaration list: + DeclarationList + Declaration Type-string: pointer(char) name: c compile_loc: -12(%ebp) static: 0 is_used: 1 extern: 0 Type: + PointerType Child:: + BaseType type_str: char Statement list: + StatementList has_return_stmt: 0 + Binop Type-string: pointer(char) has_return_stmt: 0 op: = Left operand: + Id Type-string: pointer(char) name: c output_addr: 1 has_addr: 1 lineno: 145 Right operand: + FunctionExpression Type-string: pointer(char) Function: + Id Type-string: function(int)->pointer(char) name: malloc output_addr: 0 has_addr: 1 lineno: 145 Arguments: + ArgumentList + Const Type-string: int value: 30 Type: + BaseType type_str: int + Binop Type-string: char has_return_stmt: 0 op: = Left operand: + ArrayExpression Type-string: char output_addr: 1 has_addr: 1 Expression: + Id Type-string: pointer(char) name: c output_addr: 0 has_addr: 1 lineno: 146 Index: + Const Type-string: int value: 0 Type: + BaseType type_str: int Right operand: + Const Type-string: char value: 104 Type: + BaseType type_str: char + Binop Type-string: char has_return_stmt: 0 op: = Left operand: + ArrayExpression Type-string: char output_addr: 1 has_addr: 1 Expression: + Id Type-string: pointer(char) name: c output_addr: 0 has_addr: 1 lineno: 147 Index: + Const Type-string: int value: 1 Type: + BaseType type_str: int Right operand: + Const Type-string: char value: 105 Type: + BaseType type_str: char + Binop Type-string: char has_return_stmt: 0 op: = Left operand: + ArrayExpression Type-string: char output_addr: 1 has_addr: 1 Expression: + Id Type-string: pointer(char) name: c output_addr: 0 has_addr: 1 lineno: 148 Index: + Const Type-string: int value: 2 Type: + BaseType type_str: int Right operand: + Const Type-string: char value: 0 Type: + BaseType type_str: char + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: printf output_addr: 0 has_addr: 1 lineno: 149 Arguments: + ArgumentList + StringLiteral Type-string: pointer(char) Value: "array-built string is: %s\n" + Id Type-string: pointer(char) name: c output_addr: 0 has_addr: 1 lineno: 149 + FunctionExpression Type-string: int has_return_stmt: 0 Function: + Id Type-string: function(pointer(char))->int name: free output_addr: 0 has_addr: 1 lineno: 150 Arguments: + ArgumentList + Id Type-string: pointer(char) name: c output_addr: 0 has_addr: 1 lineno: 150 + ReturnStatement has_return_stmt: 1 Expression: + Const Type-string: int value: 0 Type: + BaseType type_str: int