Hi Manuel, Wednesday 09 January 2008 00:28:54 tarihinde Manuel López-Ibáñez şunları yazmıştı: > I implemented the change as the fix to a bug that was reported by > fellow (and more senior) GCC developers. Let me try to explain > (although, I hoped that it will be fairly clear from > gcc.gnu.org/gcc-4.3/changes.html).
Yeah I know this change is documented at least. > We have a series of diagnostics that are important or required by the > standard (or both). Those are called pedwarns. It is an unfortunate > name for two reasons: 1) Not all pedwarns are enabled by -pedantic, > some are enabled by default; and 2) pedwarns can be either warnings or > errors, and what they are depends on command-line options and the > default of each front-end. In fact, pedwarnss are warnings by default > in the C front-end. But they are errors by default in the C++ > front-end unless you use -fpermissive so they are downgraded to > warnings. > > Before GCC 4.3, the C++ preprocessor was ignoring the default of the > C++ front-end. In fact, there was an inconsistence between the > settings of the C++ preprocessor and the settings of the C++ > front-end. It worked for a few things (-pedantic-errors worked fine), > but not for others (the default settings and the effect of > -fpermissive). The inconsistency was evident in the code and if you > played with combinations of -pedantic-errors and -fpermissive. Oh that clears up my confusion. So the right fix would be downgrading this redefinition problem to be pedwarn instead. But I see no point in creating a bug report if its just gonna be closed as invalid, so I hope we can discuss if its feasible to downgrade this error to be a pedwarn. What I see right now this distributions plug -fpermissive in and just go away. But I don't like workarounding gcc this way. I hope we can all agree that downrading this error to be a pedwarn is the correct way to go. Regards, ismail -- Never learn by your mistakes, if you do you may never dare to try again.