This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Bug libstdc++/38107] gcc source contains a struct with no data members (actually 1 byte in size) and compiler does not initialize it, resulting in IBM Rational Purify reporting an Uninitialized Memory Read.




Sent from my iPhone

On Nov 14, 2008, at 9:05 AM, "efinger at us dot ibm dot com" <gcc-bugzilla@gcc.gnu.org > wrote:



------- Comment #4 from efinger at us dot ibm dot com 2008-11-14 17:05 -------
(In reply to comment #2)
There are going to be other holes in structs in general due to alignment
requirements and I don't think the compiler or libstdc++ should change to this
because it will slow down the generated code and not really makes a difference
in the outcome of the code.

Purify already handles pad bytes added for alignment correctly. This is a very
specific case, where the pad byte is added to prevent the struct from having
size zero, not for alignment. The added code to clear 1 byte, at object
constuction time, would not make any significant performance difference.

But it can cause code bloat which can cause performance issues because of icache sizes and such.





--



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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]