Skip to content
Snippets Groups Projects
Commit bda51959 authored by Iain Buclaw's avatar Iain Buclaw
Browse files

d: Add TARGET_D_TEMPLATES_ALWAYS_COMDAT

Following up on the fix for PR99914, when testing on MinGW, it was found
not to support weak in the same way as on ELF or Mach-O targets.

So the linkage has been reverted back to COMDAT for that target, however
in order to properly support overriding functions and variables, all
declarations with external linkage must be put on COMDAT.  For this a
new target hook has been added to control the behavior.

gcc/ChangeLog:

	PR d/99914
	* config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (D language and ABI): Add @hook for
	TARGET_D_TEMPLATES_ALWAYS_COMDAT.

gcc/d/ChangeLog:

	PR d/99914
	* d-target.def (d_templates_always_comdat): New hook.
	* d-tree.h (mark_needed): Remove prototype.
	* decl.cc: Include d-target.h.
	(mark_needed): Rename to...
	(d_mark_needed): ...this.  Make static.
	(set_linkage_for_decl): Put variables in comdat if
	d_templates_always_comdat.
parent d81bc495
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment