On Mon, 13 Apr 2009 16:44:25 +0400, Tomas Lindquist Olsen 
<[email protected]> wrote:

On Mon, Apr 13, 2009 at 2:05 PM, Frits van Bommel
<[email protected]> wrote:
Kagamin wrote:

Stewart Gordon Wrote:

At the moment, the problem seems to be that the compiler is silently
ignoring many cases of (a), (b) and (c) alike. Some people argue that the spec doesn't forbid such use of inapplicable attributes explicitly, and so
the compiler's treatment of these cannot be called a bug.

I argue that this isn't right. Nothing I've managed to find in the spec
states or implies that such obviously wrong code is allowed.  So, by
applying common sense, one would conclude that it isn't allowed.

Such mood was always in the spec: "AlignAttribute is ignored when applied
to declarations that are not structs or struct members".

I never saw that before. So it doesn't work for class members? And it won't change the alignment of unions if applied to union members (by changing the
maximum alignment of the members)?


align is defined in terms of the companion C compiler.

align(16) int foo; does not guarantee that foo.offsetof is aligned to 16 bytes. Since C doesn't have D classes, the align attribute makes little sense here.

You are kind of contradict yourself.

Let's assme that align is defined in terms of the companion C compiler.
Then, since C doesn't have D classes, the align attribute makes little sense 
when applied to /D classes/.

I don't know how to judge about C built-in types from that.

Reply via email to