2 /*--------------------------------------------------------------------*/
3 /*--- Ptrcheck: a pointer-use checker. ---*/
4 /*--- Exports for stuff shared between sg_ and h_ subtools. ---*/
5 /*--- pc_common.h ---*/
6 /*--------------------------------------------------------------------*/
9 This file is part of Ptrcheck, a Valgrind tool for checking pointer
12 Copyright (C) 2008-2013 OpenWorks Ltd
15 This program is free software; you can redistribute it and/or
16 modify it under the terms of the GNU General Public License as
17 published by the Free Software Foundation; either version 2 of the
18 License, or (at your option) any later version.
20 This program is distributed in the hope that it will be useful, but
21 WITHOUT ANY WARRANTY; without even the implied warranty of
22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 General Public License for more details.
25 You should have received a copy of the GNU General Public License
26 along with this program; if not, write to the Free Software
27 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
30 The GNU General Public License is contained in the file COPYING.
37 typedef struct _Seg Seg
; /* abstract every except in h_main.c */
39 void sg_record_error_SorG ( ThreadId tid
,
40 Addr addr
, SSizeT sszB
,
41 HChar
* expect
, HChar
* actual
, HChar
* delta
);
43 void h_record_heap_error( Addr a
, SizeT size
, Seg
* vseg
, Bool is_write
);
45 void h_record_arith_error( Seg
* seg1
, Seg
* seg2
, HChar
* opname
);
47 void h_record_sysparam_error( ThreadId tid
, CorePart part
, const HChar
* s
,
48 Addr lo
, Addr hi
, Seg
* seglo
, Seg
* seghi
);
50 Bool
pc_eq_Error ( VgRes res
, const Error
* e1
, const Error
* e2
);
51 void pc_before_pp_Error ( const Error
* err
);
52 void pc_pp_Error ( const Error
* err
);
53 UInt
pc_update_Error_extra ( const Error
* err
);
54 Bool
pc_is_recognised_suppression ( const HChar
* name
, Supp
*su
);
55 Bool
pc_read_extra_suppression_info ( Int fd
, HChar
** bufpp
,
56 SizeT
* nBufp
, Int
* lineno
, Supp
* su
);
57 Bool
pc_error_matches_suppression (const Error
* err
, const Supp
* su
);
58 const HChar
* pc_get_error_name ( const Error
* err
);
59 SizeT
pc_get_extra_suppression_info ( const Error
* err
,
60 /*OUT*/HChar
* buf
, Int nBuf
);
61 SizeT
pc_print_extra_suppression_use ( const Supp
* su
,
62 /*OUT*/HChar
* buf
, Int nBuf
);
63 void pc_update_extra_suppression_use (const Error
* err
, const Supp
* su
);
65 extern Bool h_clo_partial_loads_ok
;
66 /* extern Bool h_clo_lossage_check; */
67 extern Bool sg_clo_enable_sg_checks
;
69 Bool
pc_process_cmd_line_options(const HChar
* arg
);
70 void pc_print_usage(void);
71 void pc_print_debug_usage(void);
76 /*--------------------------------------------------------------------*/
77 /*--- end pc_common.h ---*/
78 /*--------------------------------------------------------------------*/