bugGNU Development Chain for 68HC11/68HC12 - Bugs: bug #17442, wrong code optimization

 
 

You are not allowed to post comments on this tracker with your current authentification level.

bug #17442: wrong code optimization

Submitted by:  None
Submitted on:  Wed 16 Aug 2006 11:14:54 AM UTC  
 
Category: gccSeverity: 3 - Normal
Item Group: sw-bugStatus: None
Privacy: PublicAssigned to: None
Open/Closed: Open

Wed 16 Aug 2006 11:14:54 AM UTC, original submission:

Switching from Release 2.1.0 to Release 3.1 I found following problem. I had code like this:

typedef unsigned char uint8;

typedef struct StructDate {uint8 Day; uint8 Month; uint8 Year; uint8 Weekday;} Date;

volatile Date today;

void doSth(volatile Date* ptr)
{
uint8_to_lcd(ptr->Day);
}

void main()
{
today.Day = 1;
today.Month = 1;
today.Year = 2006;
today.Weekday = 1;
doSth(&today);
}

Looking inside the memory I saw, that today.Day is set correctly. But ptr->Day returns a wrong value (always 0x1b). ptr-Month etc. do return the right value, so the problem is only in the first field of the structure.
This error only occurs if optimization is turned on, if no -O is given to the compiler the code works. I only tried -m68hcs12 and -m68hc12 since I do not have a HC11.

Anonymous

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Do you think this task is very important?
If so, you can click here to add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

No Changes Have Been Made to This Item

Back to the top


Powered by Savane 3.1-cleanup