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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
      Known to work|                            |4.5.3
            Summary|[4.6 Regression] Several    |[4.6/4.7 Regression]
                   |packages fail to link when  |Several packages fail to
                   |building with GCC4.6        |link when building with
                   |(amarok 1.4, FreeCAD)       |GCC4.6 (amarok 1.4,
                   |                            |FreeCAD)

--- Comment #13 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-06-13 
11:24:30 UTC ---
You can obtain preprocessed source by appending -save-temps to the GCC
command-line that builds a file.

Compared to 4.5, 4.6 creates a reference to Bar::foo instead of ::foo for

void foo (int);
namespace Bar {
  void bar (int);
};
void Bar::bar(int i)
{
  extern void foo (int);
  foo (i);
}

Not sure if that is what is expected (thus, wrong in 4.5 and good in 4.6)
or not.  It doesn't seem possible to qualify the local extern decl so that
::foo is picked up.  Supposedly one should use 'using ::foo' instad of a
local extern declaration.

Reply via email to