On 29 September 2010 10:29, Andrew Haley <a...@redhat.com> wrote: > On 09/29/2010 08:07 AM, #SINHA SHARAD# wrote: >> Hi, >> >> I had a big piece of code that ran smoothly on gcc 3.2.2. For >> some reason, I had to start using that code on a machine with GCC >> 4.2.1. Now, it would throw segmentation faults (invalid free pointer >> etc) and abort the program. I presume this happens because the glibc >> with gcc 4.2.1 is smarter than the one with gcc 3.2.2. Hence, what >> was missed during execution with 3.2.2 was caught in 4.2.1 > > Maybe; it's hard to say without more investigation. > >> While it is great to catch as many errors as possible, will it >> not be better that execution support for code running on earlier >> versions was provided? > > That's not generally possible, because we don't know all the crazy > things programmers do. > >> May be what was missed in earlier versions should be flagged as >> "error with the current gcc version" or something like that and it >> does not abort the program thus continuing its execution leaving the >> developer with the option to fix the error later. > > We don't deliberately generate code that segfaults, I assure you. > >> Since, the code size in my case is very big and the original >> developer is not there to support, it is extremely difficult to >> resolve this issue. > > I suggest you start with Valgrind's memory checker. >
This should be in the FAQ. http://gcc.gnu.org/wiki/FAQ And it should mention: http://gcc.gnu.org/bugs/#upgrading Cheers, Manuel.