--- Comment #6 from steven at gcc dot gnu dot org 2010-01-02 01:05 ---
Comment #3 and comment #5 still true with "GCC: (GNU) 4.5.0 20090808
(experimental) [trunk revision 150579]" -> reconfirmed.
--
steven at gcc dot gnu dot org changed:
What|Removed
--- Comment #5 from steven at gcc dot gnu dot org 2009-06-30 13:27 ---
Compiling with "./cc1 -Os t.c -fno-ivopts" I get the following code:
.global testme
.type testme, %function
testme:
@ Function supports interworking.
@ args = 0, pretend = 0, frame =
--- Comment #4 from steven at gcc dot gnu dot org 2009-06-30 13:21 ---
The auto-inc-dec pass fails because the store and the reg increment are not in
the same basic block. The dump of the pass before auto-inc-dec (reginfo) looks
like this:
;; Function testme (testme)
74 NOTE_INSN_B
--- Comment #3 from steven at gcc dot gnu dot org 2009-06-30 11:35 ---
For this test case:
unsigned int code_in_ram[100];
void testme(void)
{
unsigned int *p_rom, *p_ram, *p_end, len;
extern unsigned int _ram_erase_sector_start;
extern unsigned int _ram_erase_sector_end;
p_ra
--- Comment #2 from Eric dot Doenges at betty-tv dot com 2006-04-04 09:13
---
(In reply to comment #1)
> This code is undefined:
> len = ((unsigned int)&_ram_erase_sector_end
> - (unsigned int)&_ram_erase_sector_start) / sizeof(unsigned int);
>
> That is obviously undefined
--- Comment #1 from pinskia at gcc dot gnu dot org 2006-04-04 08:16 ---
This code is undefined:
len = ((unsigned int)&_ram_erase_sector_end
- (unsigned int)&_ram_erase_sector_start) / sizeof(unsigned int);
That is obviously undefined as taking the difference between two poin