GCC Middle and Back End API Reference
Main Page
Namespaces
Data Structures
Files
File List
Globals
plugin.h
Go to the documentation of this file.
1
/* Header file for internal GCC plugin mechanism.
2
Copyright (C) 2009-2013 Free Software Foundation, Inc.
3
4
This file is part of GCC.
5
6
GCC is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 3, or (at your option)
9
any later version.
10
11
GCC is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with GCC; see the file COPYING3. If not see
18
<http://www.gnu.org/licenses/>. */
19
20
#ifndef PLUGIN_H
21
#define PLUGIN_H
22
23
#include "
gcc-plugin.h
"
24
25
struct
attribute_spec
;
26
struct
scoped_attributes
;
27
28
extern
void
add_new_plugin
(
const
char
*);
29
extern
void
parse_plugin_arg_opt
(
const
char
*);
30
extern
int
invoke_plugin_callbacks_full
(
int
,
void
*);
31
extern
void
initialize_plugins
(
void
);
32
extern
bool
plugins_active_p
(
void
);
33
extern
void
dump_active_plugins
(FILE *);
34
extern
void
debug_active_plugins
(
void
);
35
extern
void
warn_if_plugins
(
void
);
36
extern
void
plugins_internal_error_function
(
diagnostic_context
*,
37
const
char
*, va_list *);
38
extern
void
print_plugins_versions
(FILE *
file
,
const
char
*
indent
);
39
extern
void
print_plugins_help
(FILE *
file
,
const
char
*
indent
);
40
extern
void
finalize_plugins
(
void
);
41
42
extern
bool
flag_plugin_added
;
43
44
/* Called from inside GCC. Invoke all plugin callbacks registered with
45
the specified event.
46
Return PLUGEVT_SUCCESS if at least one callback was called,
47
PLUGEVT_NO_CALLBACK if there was no callback.
48
49
EVENT - the event identifier
50
GCC_DATA - event-specific data provided by the compiler */
51
52
static
inline
int
53
invoke_plugin_callbacks
(
int
event ATTRIBUTE_UNUSED,
54
void
*gcc_data ATTRIBUTE_UNUSED)
55
{
56
#ifdef ENABLE_PLUGIN
57
/* True iff at least one plugin has been added. */
58
if
(
flag_plugin_added
)
59
return
invoke_plugin_callbacks_full
(event, gcc_data);
60
#endif
61
62
return
PLUGEVT_NO_CALLBACK;
63
}
64
65
/* In attribs.c. */
66
67
extern
void
register_attribute
(
const
struct
attribute_spec
*attr);
68
extern
struct
scoped_attributes
*
register_scoped_attributes
(
const
struct
attribute_spec
*,
69
const
char
*);
70
71
#endif
/* PLUGIN_H */
gcc
plugin.h
Generated by
1.8.1.1