Negate only values while constraining variables (bug#45376)

* lisp/emacs-lisp/comp-cstr.el (comp-cstr-value-negation): New
	function.
	* lisp/emacs-lisp/comp.el (comp-fwprop-insn): Use
	`comp-cstr-value-negation'.
	* test/src/comp-test-funcs.el (comp-test-45376-1-f): Rename.
	(comp-test-45376-2-f): New funcion.
	* test/src/comp-tests.el (bug-45376-1): Rename test.
	(bug-45376-2): Add test.
This commit is contained in:
Andrea Corallo 2020-12-23 15:51:55 +01:00
parent 0a89ed7a96
commit ffcd490cb4
4 changed files with 40 additions and 4 deletions

View file

@ -2534,7 +2534,7 @@ Fold the call in case."
(not
;; Prevent double negation!
(unless (comp-cstr-neg (car operands))
(comp-cstr-negation lval (car operands))))))
(comp-cstr-value-negation lval (car operands))))))
(`(setimm ,lval ,v)
(setf (comp-mvar-value lval) v))
(`(phi ,lval . ,rest)