1 /* Mudflap: narrow-pointer bounds-checking by tree rewriting.
2 Copyright (C) 2001-2013 Free Software Foundation, Inc.
3 Contributed by Frank Ch. Eigler <fche@redhat.com>
5 This file is part of GCC.
7 GCC is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 3, or (at your option) any later
12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
24 #include "coretypes.h"
27 #include "tree-inline.h"
30 #include "langhooks.h"
31 #include "tree-mudflap.h"
32 #include "tree-pass.h"
34 #include "diagnostic-core.h"
38 /* This file contains placeholder functions, to be used only for
39 language processors that cannot handle tree-mudflap.c directly.
45 sorry ("mudflap: this language is not supported");
49 mudflap_enqueue_decl (tree obj ATTRIBUTE_UNUSED
)
55 mudflap_enqueue_constant (tree obj ATTRIBUTE_UNUSED
)
61 mudflap_finish_file (void)
67 mf_marked_p (tree t ATTRIBUTE_UNUSED
)
74 mf_mark (tree t ATTRIBUTE_UNUSED
)
80 /* The pass structures must exist, but need not do anything. */
85 return flag_mudflap
!= 0;
90 const pass_data pass_data_mudflap_1
=
92 GIMPLE_PASS
, /* type */
93 "mudflap1", /* name */
94 OPTGROUP_NONE
, /* optinfo_flags */
96 false, /* has_execute */
98 0, /* properties_required */
99 0, /* properties_provided */
100 0, /* properties_destroyed */
101 0, /* todo_flags_start */
102 0, /* todo_flags_finish */
105 class pass_mudflap_1
: public gimple_opt_pass
108 pass_mudflap_1 (gcc::context
*ctxt
)
109 : gimple_opt_pass (pass_data_mudflap_1
, ctxt
)
112 /* opt_pass methods: */
113 bool gate () { return gate_mudflap (); }
115 }; // class pass_mudflap_1
120 make_pass_mudflap_1 (gcc::context
*ctxt
)
122 return new pass_mudflap_1 (ctxt
);
127 const pass_data pass_data_mudflap_2
=
129 GIMPLE_PASS
, /* type */
130 "mudflap2", /* name */
131 OPTGROUP_NONE
, /* optinfo_flags */
133 false, /* has_execute */
135 0, /* properties_required */
136 0, /* properties_provided */
137 0, /* properties_destroyed */
138 0, /* todo_flags_start */
139 0, /* todo_flags_finish */
142 class pass_mudflap_2
: public gimple_opt_pass
145 pass_mudflap_2 (gcc::context
*ctxt
)
146 : gimple_opt_pass (pass_data_mudflap_2
, ctxt
)
149 /* opt_pass methods: */
150 bool gate () { return gate_mudflap (); }
152 }; // class pass_mudflap_2
157 make_pass_mudflap_2 (gcc::context
*ctxt
)
159 return new pass_mudflap_2 (ctxt
);
163 #include "gt-tree-mudflap.h"
164 We prepare a little dummy struct here.
167 EXPORTED_CONST
struct ggc_root_tab gt_ggc_r_gt_tree_mudflap_h
[] = {