Hi,
> This is redundant, given the following two.
Yeah, that should have been obvious, not sure how I didn't see it.
> Though notice that in C it is illegal to add a number to a void*, so
> this line will raise some warnings. Convert pointers to char* or to
> uintptr_t to avoid the warnings.
Sorry about that. This is what I have now:
ok(cur <= ret && (char*)ret < ((char*)ret + 0x100), "Address %p not in function starting at %p.\n", ret, cur);
Is it okay to cast it like this?
> My interpretation of that page is that calling
> __builtin_return_address(0) is always fine, it is for higher frames that
> it is not necessarily reliable. Still, it is a GCC-specific thing, so
> alternatives should be provided for other compilers.
I see, so would it be best to just use the assembly code?
Regarding the unit test, is it okay to declare the��function directly in the test itself? Doing this, the compiler doesn't issue a warning, but it seems suboptimal to me. A header seems like the correct way to go. But I don't know if it's acceptable to write a header file for just 1 function.
If you or the Wine team thinks a header file is required, should I submit 2 patches instead of one? First for the function implementation and the second for the test, including the header file.