1/* Mudflap: narrow-pointer bounds-checking by tree rewriting.
2   Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
3   Contributed by Frank Ch. Eigler <fche@redhat.com>
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 2, or (at your option) any later
10version.
11
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING.  If not, write to the Free
19Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
2002110-1301, USA.  */
21
22
23#include "config.h"
24#include "system.h"
25#include "coretypes.h"
26#include "tm.h"
27#include "tree.h"
28#include "tree-inline.h"
29#include "c-tree.h"
30#include "c-common.h"
31#include "tree-gimple.h"
32#include "diagnostic.h"
33#include "hashtab.h"
34#include "output.h"
35#include "varray.h"
36#include "langhooks.h"
37#include "tree-mudflap.h"
38#include "tree-pass.h"
39#include "ggc.h"
40#include "toplev.h"
41
42
43
44/* This file contains placeholder functions, to be used only for
45   language processors that cannot handle tree-mudflap.c directly.
46   (e.g. Fortran).  */
47
48static void
49nogo (void)
50{
51  internal_error ("mudflap: this language is not supported");
52}
53
54void
55mudflap_enqueue_decl (tree obj ATTRIBUTE_UNUSED)
56{
57  nogo ();
58}
59
60void
61mudflap_enqueue_constant (tree obj ATTRIBUTE_UNUSED)
62{
63  nogo ();
64}
65
66void
67mudflap_finish_file (void)
68{
69  nogo ();
70}
71
72int
73mf_marked_p (tree t ATTRIBUTE_UNUSED)
74{
75  nogo ();
76  return 0;
77}
78
79tree
80mf_mark (tree t ATTRIBUTE_UNUSED)
81{
82  nogo ();
83  return NULL;
84}
85
86/* The pass structures must exist, but need not do anything.  */
87
88struct tree_opt_pass pass_mudflap_1 =
89{
90  "mudflap1",				/* name */
91  NULL,					/* gate */
92  NULL,					/* execute */
93  NULL,					/* sub */
94  NULL,					/* next */
95  0,					/* static_pass_number */
96  0,					/* tv_id */
97  0,					/* properties_required */
98  0,					/* properties_provided */
99  0,					/* properties_destroyed */
100  0,					/* todo_flags_start */
101  0,                                    /* todo_flags_finish */
102  0				        /* letter */
103};
104
105struct tree_opt_pass pass_mudflap_2 =
106{
107  "mudflap2",				/* name */
108  NULL,					/* gate */
109  NULL,					/* execute */
110  NULL,					/* sub */
111  NULL,					/* next */
112  0,					/* static_pass_number */
113  0,					/* tv_id */
114  0,					/* properties_required */
115  0,					/* properties_provided */
116  0,					/* properties_destroyed */
117  0,					/* todo_flags_start */
118  0,                                    /* todo_flags_finish */
119  0				        /* letter */
120};
121
122/* Instead of:
123#include "gt-tree-mudflap.h"
124We prepare a little dummy struct here.
125*/
126
127const struct ggc_root_tab gt_ggc_r_gt_tree_mudflap_h[] = {
128  LAST_GGC_ROOT_TAB
129};
130