Fix crash or error in certain cases when using common subexpression elimination.
In certain rare cases, constant subexpression elimination could set the left subtree of a pc_bno operation in the intermediate code to nil. This could lead to null pointer dereferences, sometimes resulting in a crash or error during native code generation. The below program sometimes demonstrates the problem (dependent on zero page contents): #pragma optimize 16 struct F {int *p;}; void foo(struct F* f) { struct {int c;} s = {0}; ++f->p; s.c |= *--f->p; }
This commit is contained in:
parent
8b339a9ab7
commit
a09581b84e
Loading…
Reference in New Issue