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

           Summary: Boost does not build on power7
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: meiss...@gcc.gnu.org
        ReportedBy: meiss...@gcc.gnu.org
              Host: powerpc64-linux
            Target: powerpc64-linux
             Build: powerpc64-linux


GCC's -mcpu=power7 (or --with-cpu=power7 used in configuration) enables the
Altivec vector interface.  This interface marks vector as a conditional macro,
which when expanded will either be just 'vector' in the normal case, or
__attribute__((altivec(vector__))) if the next token is a standard type (or
bool/pixel followed by a standard type).

The library boost has a template of the form:
    typedef typename Iterator::vector vector;

The processing of the conditional macros did not handle the case where the
vector keyword was repeated.  This caused the conditional macro handling to be
recusrively called, and the code is expanded as:
    typedef typename Iterator::vector;

The fix is to specifically handle vector vector to prevent the recursive call.

Reply via email to