[Issue 7396] Indicate default alignment with 0.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Jan 30 12:01:17 PST 2012


http://d.puremagic.com/issues/show_bug.cgi?id=7396



--- Comment #14 from Daniel Green <venix1 at gmail.com> 2012-01-30 12:01:15 PST ---
The statement:
    `align:` becomes `align(8)`

in based entirely on how the parser handles the align attribute.

// excerpt from parse.c line 503.
case TOKalign:
{   unsigned n;

  s = NULL;
  nextToken();
  if (token.value == TOKlparen)
  {
    nextToken();
    if (token.value == TOKint32v && token.uns64value > 0)
      n = (unsigned)token.uns64value;
    else
    {   error("positive integer expected, not %s", token.toChars());
        n = 1;
    }
    nextToken();
    check(TOKrparen);
  }
  else
    n = global.structalign; // default

  a = parseBlock();
  s = new AlignDeclaration(n, a);
  break;
}

When `align:` is encountered n is set to global.structalign.  This makes the
statement equal to `align(8)`.

It's not that I don't understand that `align:` means default alignment and
should be treated differently than `align(8)`.  It's that only the parser knows
that and currently doesn't convey that information.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list