re PR plugins/44459 (plugin interface depends on name mangling)

PR plugins/44459:
	* gcc-plugin.h: Encapsulate all declarations in extern "C".

From-SVN: r160448
This commit is contained in:
Joern Rennecke 2010-06-08 23:21:48 +00:00 committed by Joern Rennecke
parent 6903fcbd9b
commit f1c3bf869c
2 changed files with 15 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
PR plugins/44459:
* gcc-plugin.h: Encapsulate all declarations in extern "C".
2010-06-08 Jan Hubicka <jh@suse.cz>
* basic-block.h (single_succ_edge, single_pred_edge, ei_container,

View File

@ -38,6 +38,12 @@ enum plugin_event
PLUGIN_EVENT_FIRST_DYNAMIC
};
/* All globals declared here have C linkage to reduce link compatibility
issues with implementation language choice and mangling. */
#ifdef __cplusplus
extern "C" {
#endif
extern const char **plugin_event_name;
struct plugin_argument
@ -96,16 +102,10 @@ extern bool plugin_default_version_check (struct plugin_gcc_version *,
typedef int (*plugin_init_func) (struct plugin_name_args *plugin_info,
struct plugin_gcc_version *version);
#ifdef __cplusplus
extern "C" {
#endif
/* Declaration for "plugin_init" function so that it doesn't need to be
duplicated in every plugin. */
extern int plugin_init (struct plugin_name_args *plugin_info,
struct plugin_gcc_version *version);
#ifdef __cplusplus
}
#endif
/* Function type for a plugin callback routine.
@ -147,4 +147,8 @@ extern int unregister_callback (const char *plugin_name, int event);
-iplugindir program argument to cc1. */
extern const char* default_plugin_dir_name (void);
#ifdef __cplusplus
}
#endif
#endif /* GCC_PLUGIN_H */