https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66110
--- Comment #14 from Kevin OConnor ---
(In reply to jos...@codesourcery.com from comment #13)
> I concur that it would be valid to define those typedefs to be extended
> integer types withing the special aliasing properties. The first
> sugges
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66110
--- Comment #12 from Kevin OConnor ---
(In reply to Andreas Schwab from comment #11)
> Since typedef does not create a new type the effect of uint8_t is exactly
> the same as the type it is defined from. Thus if uint8_t is defined from
> unsigne
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66110
--- Comment #10 from Kevin OConnor ---
I've looked through the C specs (both C99 and C11) and I don't see anything
that requires uint8_t (nor int8_t) to be considered "character types". I do
see three relevant sections in the spec which I'm incl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66110
--- Comment #8 from Kevin OConnor ---
Thanks! I can confirm the latest trunk performs the desired optimization.
However, this test case still isn't fully optimized:
void f2(struct s1 *ps1, uint8_t *pi8)
{
ps1->f1 = 3;
*pi8 = 8;
ps1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66110
Kevin OConnor changed:
What|Removed |Added
Resolution|INVALID |FIXED
--- Comment #2 from Kevin OConnor
-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: kevin at koconnor dot net
Target Milestone: ---
It appears that gcc does not do a good job of optimizing memory accesses to
'uint8_t' variables. In particular, it appears as if "strict aliasing" is
--- Comment #6 from kevin at koconnor dot net 2010-04-04 03:50 ---
I've confirmed this fix (r157942) works (both for the test case and for the
underlying program - SeaBIOS). SeaBIOS ( http://seabios.org/ ) does run into
pr39959, but using --enable-checking=release gets around
bine and -g
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kevin at koconnor dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43557
--- Comment #4 from kevin at koconnor dot net 2010-03-28 14:43 ---
This problem has returned. The test case above no longer causes the problem -
but simply changing the test case to also assign a value to the variable shows
the problem. This is with gcc from svn (r157452).
New test