To POD or not to POD

Johannes Pfau nospam at example.com
Wed Feb 13 06:50:14 PST 2013


Am Wed, 13 Feb 2013 15:14:36 +0100
schrieb "David Nadlinger" <see at klickverbot.at>:

> On Tuesday, 12 February 2013 at 17:45:11 UTC, Johannes Pfau wrote:
> > OT: I think a simple constructor shouldn't prevent a type from 
> > being a
> > POD, but that should be defined by dmd /frontend.
> 
> I wouldn't spend too much time on implementing the old behavior - 
> I think I managed to convince Walter that constructors preventing 
> PODness is a bad idea in the last bigger discussion on the topic. 
> He also mentioned what sounded like plans in this regard in a 
> recent pull request.
> 
> Instead, I'd just comment out that specific check in isPOD.
> 
> David

Good to know. This fixes the datetime specific instance of the problem.

But we should probably tell the gcc backend that non-POD types should
not be passed in registers anyway, right?

Even when ignoring constructors in the isPOD check, marking non-POD
types as TREE_ADDRESSABLE causes many errors in the test suite. Maybe
we also have to set TREE_ADDRESSABLE on function TYPE, CONSTRUCTOR,
VAR_DECL, PARM_DECL and RESULT_DECL nodes if a non-POD type is
involved, but I'd expect the backend to do that automatically?


More information about the D.gnu mailing list