[PATCH] D66827: Add support for MS qualifiers __ptr32, __ptr64, __sptr, __uptr.
Fabian Maurer via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 17 09:37:10 PDT 2019
DarkShadow44 added a comment.
@akhuang Thanks for looking into this!
I've found something else, I've written a small dumper to demonstrate. Pardon the long comment please.
Program:
typedef int* __ptr32 PINT32;
typedef int* PINT64;
struct s1
{
PINT32 i32;
PINT64 i64;
};
AST:
Kind: 'TranslationUnit(300)', Type: '', Name: '/home/fabian/Programming/Wine/wine-git/tools/test.c'
Kind: 'TypedefDecl(20)', Type: '__ptr32_sptr int *', Name: 'PINT32'
Kind: 'TypedefDecl(20)', Type: 'PINT64', Name: 'PINT64'
Kind: 'StructDecl(2)', Type: 'struct s1', Name: 's1'
Kind: 'FieldDecl(6)', Type: '__ptr32_sptr int *', Name: 'i32'
Kind: 'TypeRef(43)', Type: '__ptr32_sptr int *', Name: 'PINT32'
Kind: 'FieldDecl(6)', Type: 'PINT64', Name: 'i64'
Kind: 'TypeRef(43)', Type: 'PINT64', Name: 'PINT64'
Note the difference between
Type: '__ptr32_sptr int *', Name: 'PINT32'
Type: 'PINT64', Name: 'PINT64'
3 Issues I have here:
- __ptr32_sptr doesn't exist and seems wrong
- The __ptr32 part should be right of the asterisk
- Why does PINT64 have PINT64 as type, but PINT32 not PINT32?
I'm not sure if this is/should still be part of this patchset or even is an issue, just pointing out inconsistencies I noticed - hope I'm not a bother.
Dumper attached, for convenience.
F10298035: dumper.cpp <https://reviews.llvm.org/F10298035>
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66827/new/
https://reviews.llvm.org/D66827
More information about the cfe-commits
mailing list