Patrik Stridvall ps@leissner.se writes:
You have the case: void __declspec(dllexport) __attribute__((__stdcall__)) Foo(void) __attribute__((noreturn)) { }
Sure you can have an exception if the name seems to be __attribute__ but then where might be other exceptions.
Yes, but a few preprocessor defines can get rid of that.
The only problem is if you want to find the number of args for stdcall decoration, but we should be able to do without it.
That is not a problem. If you find the opening ( before the function name, it would be the number of , at nesting level 1 plus one with the special case of void between the parantesis which means 0.
Except for 64-bit data types...
Perhaps. You will easily reach 99% correctness. However beyond that it is hard without a real C parser.
Well it's clear you can't get 100%, the thing is to make sure it fails in a reasonable way, not just silently breaks. I think it is feasible; whether it is worth the effort is an entirely different question...