Print this page
11506 smatch resync

*** 15,24 **** --- 15,25 ---- sys.exit(1) def usage(): print "%s" %(sys.argv[0]) print "<function> - how a function is called" + print "info <type> - how a function is called, filtered by type" print "return_states <function> - what a function returns" print "call_tree <function> - show the call tree" print "where <struct_type> <member> - where a struct member is set" print "type_size <struct_type> <member> - how a struct member is allocated" print "data_info <struct_type> <member> - information about a given data type"
*** 53,63 **** 101: "PARAM_CLEARED", 103: "PARAM_LIMIT", 104: "PARAM_FILTER", 1001: "PARAM_VALUE", 1002: "BUF_SIZE", - 1003: "USER_DATA", 1004: "CAPPED_DATA", 1005: "RETURN_VALUE", 1006: "DEREFERENCE", 1007: "RANGE_CAP", 1008: "LOCK_HELD", --- 54,63 ----
*** 77,87 **** 1025: "PARAM_SET", 1026: "PARAM_USED", 1027: "BYTE_UNITS", 1028: "COMPARE_LIMIT", 1029: "PARAM_COMPARE", ! 8017: "USER_DATA2", 8018: "NO_OVERFLOW", 8019: "NO_OVERFLOW_SIMPLE", 8020: "LOCKED", 8021: "UNLOCKED", 8023: "ATOMIC_INC", --- 77,102 ---- 1025: "PARAM_SET", 1026: "PARAM_USED", 1027: "BYTE_UNITS", 1028: "COMPARE_LIMIT", 1029: "PARAM_COMPARE", ! 1030: "EXPECTS_TYPE", ! 1031: "CONSTRAINT", ! 1032: "PASSES_TYPE", ! 1033: "CONSTRAINT_REQUIRED", ! 1034: "BIT_INFO", ! 1035: "NOSPEC", ! 1036: "NOSPEC_WB", ! 1037: "STMT_CNT", ! 1038: "TERMINATED", ! 1039: "SLEEP", ! 1040: "NO_SLEEP_CNT", ! 1041: "SMALLISH", ! 1042: "FRESH_MTAG", ! ! 8017: "USER_DATA", ! 9017: "USER_DATA_SET", 8018: "NO_OVERFLOW", 8019: "NO_OVERFLOW_SIMPLE", 8020: "LOCKED", 8021: "UNLOCKED", 8023: "ATOMIC_INC",
*** 195,204 **** --- 210,221 ---- return 2**31 - 1 elif txt == "s16max": return 2**15 - 1 elif txt == "u64max": return 2**64 - 1 + elif txt == "ptr_max": + return 2**64 - 1 elif txt == "u32max": return 2**32 - 1 elif txt == "u16max": return 2**16 - 1 else:
*** 587,609 **** usage() if len(sys.argv) == 2: func = sys.argv[1] print_caller_info("", func) elif sys.argv[1] == "call_info": if len(sys.argv) != 4: usage() filename = sys.argv[2] func = sys.argv[3] caller_info_values(filename, func) print_caller_info(filename, func) - elif sys.argv[1] == "user_data": - func = sys.argv[2] - print_caller_info(filename, func, "USER_DATA") - elif sys.argv[1] == "param_value": - func = sys.argv[2] - print_caller_info(filename, func, "PARAM_VALUE") elif sys.argv[1] == "function_ptr" or sys.argv[1] == "fn_ptr": func = sys.argv[2] print_fn_ptrs(func) elif sys.argv[1] == "return_states": func = sys.argv[2] --- 604,626 ---- usage() if len(sys.argv) == 2: func = sys.argv[1] print_caller_info("", func) + elif sys.argv[1] == "info": + my_type = "" + if len(sys.argv) == 4: + my_type = sys.argv[3] + func = sys.argv[2] + print_caller_info("", func, my_type) elif sys.argv[1] == "call_info": if len(sys.argv) != 4: usage() filename = sys.argv[2] func = sys.argv[3] caller_info_values(filename, func) print_caller_info(filename, func) elif sys.argv[1] == "function_ptr" or sys.argv[1] == "fn_ptr": func = sys.argv[2] print_fn_ptrs(func) elif sys.argv[1] == "return_states": func = sys.argv[2]