Thanks for a great new release Pelle!! Bra jobbat!!
I've tried to compile a project that compiled fine on 4.50.113 with the 5.0 beta 2.
I'm getting a "fatal error: Internal error: get_rule()." on a definition line using FREE(x).
#define FREE(x) my_free((void **)&(x))
The argument, x, to the macro, FREE(x), is a pointer sent as a parameter to the function. Example which doesn't compile on 5.0.
int my_func(void *ptr) {
/* does something with ptr */
FREE(ptr);
return 0;
}
This will result in the get_rule-error on the line containing "FREE(ptr)".
The strange thing is that this compiles perfectly well under the 4.5 and works very good. It's used in multiple places throughout my program and used so often and on so big structures that it'd notice if the FREE(x) didn't really free the memory.
Another strange thing with this is that the x64-version of the EXACT same code WILL compile BUT the resulting executable makes Windows show a MessageBox giving an error-code (0xC000007B = STATUS_INVALID_IMAGE_FORMAT). Nothing at all about the "get_rule"-thing above...
Just a crash!
Also the "Find in files"-Find button doesn't get enabled when entering text in the "Find what"-edit.
EDIT:
Forgot to say that it was the "setup64.exe"-version running on Vista x64. And that the macro-definition is located in a separate header (protected with "#ifndef header_h"), and included from mulitple source files).
...and I haven't been able to reconstruct it when only using one header-file, but will look into that.