+ added missing begin_anonymous_record() for widestring constants (undetected
    before because it only matters for the llvm target, and fpc+llvm+windows is
    not yet supported/tested)

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28749 3ad0048d-3df7-0310-abae-a5850022a9f2
  * create the recorddef at the start when building an anonymous recorddef,
    so that we can already refer to its def while we are sill parsing
    individual elements

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28750 3ad0048d-3df7-0310-abae-a5850022a9f2
  * pass alignment to tnodeutils.insertbsssym()

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28751 3ad0048d-3df7-0310-abae-a5850022a9f2
  * record the alignment in taillvmdecl, as it can be different from the
    default

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28752 3ad0048d-3df7-0310-abae-a5850022a9f2
  * split up specifying the type of the section of a typed constant and whether
    it should be put in a new section

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28753 3ad0048d-3df7-0310-abae-a5850022a9f2
  * return the next field from tabstractrecordsymtable.findfieldbyoffset() if
    there is no field at that exact offset, so we can also use it to find the
    next field in case there is alignment padding

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28754 3ad0048d-3df7-0310-abae-a5850022a9f2
  * emit alignment directive in the typed constant builder when starting a new
    constant without putting it in a separate section

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28755 3ad0048d-3df7-0310-abae-a5850022a9f2
  * fixed whitespace

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28756 3ad0048d-3df7-0310-abae-a5850022a9f2
  * factored out adding a single field to a record based on a def

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28757 3ad0048d-3df7-0310-abae-a5850022a9f2
  * don't emit padding bytes if there was an error parsing a typed constant
    record

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28758 3ad0048d-3df7-0310-abae-a5850022a9f2
  * fixed copy/paste error in r28322

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28759 3ad0048d-3df7-0310-abae-a5850022a9f2
  * store the vmt field rather than only its offset in tobjectdef, so we can
    easily find it again later (since it's hidden and doesn't have a fixed
    name, it's hard otherwise). Needed for the typed constant builder.

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28760 3ad0048d-3df7-0310-abae-a5850022a9f2
  * put the symtable(s) of the current unit back on the symtablestack before
    generating the resource strings, so that the defs generated by the typed
    constant builder get added to the correct unit

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28761 3ad0048d-3df7-0310-abae-a5850022a9f2
  * mark the typesyms generated in trecorddef.create_global_internal() as used
    so that they don't cause hints about unused types

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28762 3ad0048d-3df7-0310-abae-a5850022a9f2
  * moved the recording of aggregate type information during typed constant
    parsing from nllvmtcon to aasmcnst
   o added automatic insertion of padding bytes when fields need to be aligned,
     so that once ncgvmt (and hopefully ncgrtti) are converted to the typed
     constant builder class, we can get rid of all the explicit alignment
     directives (only supported for non-bitpacked records for now)

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28763 3ad0048d-3df7-0310-abae-a5850022a9f2
  * renamed ttai_lowleveltypedconstbuilder to ttai_typedconstbuilder

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28764 3ad0048d-3df7-0310-abae-a5850022a9f2
  * fixed adding padding bytes before anonymous records: the alignment of such
    records is only known once we have completely parsed all of their data
    (the alignment of a record depends on the alignment requirements of its
     field with the largest alignment) -> only insert the padding bytes after
    completely parsing them

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28765 3ad0048d-3df7-0310-abae-a5850022a9f2
  * pack ansi/wide/unicodestring "records" at 1 byte so that we don't "pad"
    the string to a multiple of sizeof(pint) (the string record itself is still
    aligned to a multiple of that)

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28766 3ad0048d-3df7-0310-abae-a5850022a9f2
  * converted emitting the class name to the typed constant builder class

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28767 3ad0048d-3df7-0310-abae-a5850022a9f2
  * converted emitting method message string tables to the typed constant
    builder

git-svn-id: http://svn.freepascal.org/svn/fpc/branches/hlcgllvm@28768 3ad0048d-3df7-0310-abae-a5850022a9f2