[cfe-dev] clang -fms-extensions mode, tasks to do.

Michael Spencer bigcheesegs at gmail.com
Tue Aug 24 06:03:55 PDT 2010


On Tue, Aug 24, 2010 at 6:53 AM, Francois Pichet <pichet2000 at gmail.com> wrote:
> For people interesting in improving the -fms-extensions mode of clang,
> here is a non complete list of tasks to do.
> Those are some of the extensions that must be added to clang in order
> to parse the Windows SDK header files bundled with VS 2008.
> I plan to address every one of those in roughly that order but if you
> want to help that's more than welcome because
> the amount of time I can put on clang is (unfortunately) limited.
>
> BTW those are just parsing issues (--fsyntax-only).
>
> MSVC issues:
>
> 1. clang must parse this:
>   extern "C++" template<class T> f(T a);
>
> 2. clang must parse this:
>     0x6cb9a43e+(1), <== hexadecimal literal lexing  issue
>
>
> 3. type_info predeclared, IUnknown predeclared
>  add "class type_info;struct IUnknown;" in MacroBuilder?
>
> 4. __pragma support
>
> 5. __uuidof opertor
>
> 6. flexible array member in union
>
> example:
> typedef struct _PROPERTYINSTEX
> {
>    WORD Length;
>     union
>    {
>        BYTE Byte[];
>        WORD Word[];
>        DWORD Dword[];
>        LARGE_INTEGER LargeInt[];
>        SYSTEMTIME SysTime[];
>        TYPED_STRING TypedString;
>    };
> } PROPERTYINSTEX;
>
>
> 7. clang must parse this: (superfluous A::)
>     class A {
>         int A::f() { return 0; }
>      };
>
>
> 8. clang must parse this:
>     enum TATA {
>          a = (TATA) 3
>      };
>
> 9. MSVC Compiler Intrinsics
>    ex: __noop

Thanks for making this list. I've put it up on the wiki (along with
other things):

http://wiki.llvm.org/Development_Status_Windows_Target

As the page says, feel free to add, remove, modify, make better
(including the name of the article, but that needs to be done sooner
rather than later if it is to be done).

- Michael Spencer




More information about the cfe-dev mailing list