+2010-06-09 Joern Rennecke <amylaar@spamcop.net>
+
+ PR testsuite/42843
+ * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
+ * doc/plugins.texi (Plugin license check): Update information
+ on type of plugin_is_GPL_compatible.
+ * Makefile.in (PLUGINCC): Define as $(COMPILER).
+ (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
+
2010-06-09 Bernd Schmidt <bernds@codesourcery.com>
* config/arm/arm.c (thumb2_reorg): New function.
2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
- PR plugins/44459:
+ PR plugins/44459
* gcc-plugin.h: Encapsulate all declarations in extern "C".
2010-06-08 Jan Hubicka <jh@suse.cz>
LTO_USE_LIBELF = @LTO_USE_LIBELF@
# Compiler needed for plugin support
-PLUGINCC = @CC@
+PLUGINCC = $(COMPILER)
# Flags needed for plugin support
-PLUGINCFLAGS = @CFLAGS@
+PLUGINCFLAGS = $(COMPILER_FLAGS)
# Libs and linker options needed for plugin support
PLUGINLIBS = @pluginlibs@
compilation terminated
@end smallexample
-The type of the symbol is irrelevant. The compiler merely asserts that
-it exists in the global scope. Something like this is enough:
+The declared type of the symbol should be int, to match a forward declaration
+in @file{gcc-plugin.h} that suppresses C++ mangling. It does not need to be in
+any allocated section, though. The compiler merely asserts that
+the symbol exists in the global scope. Something like this is enough:
@smallexample
int plugin_is_GPL_compatible;
}
#endif
+/* In case the C++ compiler does name mangling for globals, declare
+ plugin_is_GPL_compatible extern "C" so that a later definition
+ in a plugin file will have this linkage. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern int plugin_is_GPL_compatible;
+#ifdef __cplusplus
+}
+#endif
+
#endif /* GCC_PLUGIN_H */
+2010-06-09 Joern Rennecke <amylaar@spamcop.net>
+
+ PR testsuite/42843
+ * gcc.dg/plugin/selfassign.c (pass_warn_self_assign): Use enumerator
+ TV_NONE to initialize tv_id field.
+ * g++.dg/plugin/selfassign.c (pass_warn_self_assign): Likewise.
+ * gcc.dg/plugin/one_time_plugin.c (one_pass): Likewise.
+ * g++.dg/plugin/dumb_plugin.c (pass_dumb_plugin_example): Likewise.
+ Include toplev.h .
+ * gcc.dg/plugin/finish_unit_plugin.c: Include cgraph.h.
+ * g++.dg/plugin/attribute_plugin.c: Include toplev.h and plugin.h .
+ * g++.dg/plugin/pragma_plugin.c: Include toplev.h .
+
2010-06-08 Sandra Loosemore <sandra@codesourcery.com>
PR tree-optimization/39874
#include "tree.h"
#include "tree-pass.h"
#include "intl.h"
+#include "toplev.h"
+#include "plugin.h"
int plugin_is_GPL_compatible;
#include "tree.h"
#include "tree-pass.h"
#include "intl.h"
+#include "toplev.h"
int plugin_is_GPL_compatible;
NULL, /* sub */
NULL, /* next */
0, /* static_pass_number */
- 0, /* tv_id */
+ TV_NONE, /* tv_id */
PROP_cfg, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */
#include "cpplib.h"
#include "tree-pass.h"
#include "intl.h"
+#include "toplev.h"
int plugin_is_GPL_compatible;
NULL, /* sub */
NULL, /* next */
0, /* static_pass_number */
- 0, /* tv_id */
+ TV_NONE, /* tv_id */
PROP_ssa, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */
#include "tree.h"
#include "tree-pass.h"
#include "intl.h"
+#include "cgraph.h"
int plugin_is_GPL_compatible;
NULL, /* sub */
NULL, /* next */
0, /* static_pass_number */
- 0, /* tv_id */
+ TV_NONE, /* tv_id */
PROP_gimple_any, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */
NULL, /* sub */
NULL, /* next */
0, /* static_pass_number */
- 0, /* tv_id */
+ TV_NONE, /* tv_id */
PROP_ssa, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */