[Bug middle-end/20222] [AVR] Double load of volatile operand

2005-07-28 Thread schlie at comcast dot net

--- Additional Comments From schlie at comcast dot net  2005-07-28 21:25 
---
(In reply to comment #0)

- just for the record, it appears that the bug is that when a function is
  inlined using a built-in, a volatile parameter should be accessed only
  once and placed into a temporary, which is then substitued for references
  to that paramter within the body of the function, not the volatile reference
  itself. please see: http://gcc.gnu.org/ml/gcc/2005-07/msg00704.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20222


[Bug middle-end/20222] [AVR] Double load of volatile operand

2005-03-04 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

  Component|c   |middle-end


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20222


[Bug middle-end/20222] [AVR] Double load of volatile operand

2005-03-04 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-03-04 
20:19 ---
This is a bug in the middle-end:
;; if (ABS_EXPR xi1 != 1) (void) 0; else goto L3;
(insn 29 27 30 (set (reg:HI 44)
(mem/i:HI (symbol_ref:HI (xi1) [flags 0x40] var_decl 0x415784a4 
xi1) [2 xi1+0 S2 A8])) -1 
(nil)
(nil))

(insn 30 29 31 (set (reg:HI 45)
(mem/i:HI (symbol_ref:HI (xi1) [flags 0x40] var_decl 0x415784a4 
xi1) [2 xi1+0 S2 A8])) -1 
(nil)
(nil))

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2005-03-04 20:19:51
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20222