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

            Bug ID: 60267
           Summary: ICE in c_pp_lookup_pragma, at
                    c-family/c-pragma.c:1232; ICE in tsubst_copy, at
                    cp/pt.c:12887
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: slayoo at staszic dot waw.pl

Hi All,

The Blitz++ library (http://sf.net/projects/blitz) contains some "#pragma
ivdep" macros intended for the Intel C++ compiler. Having learnt that GCC now
supports a corresponding "GCC ivdep" pragma, I've tried changing all occurances
of pragma ivdep in Blitz++ with the GCC ones (encapsulating them in some
define-checks to detect the compiler). 

Trying then just to parse the include files with:

#define BZ_USE_ALIGNMENT_PRAGMAS  
#include <blitz/array-impl.h>
int main() {}

using the Debian's gcc-snapshot (20140212) I've got an ICE:


**************************************************************************************
In file included from /usr/include/blitz/globeval.cc:34:0,
                 from /usr/include/blitz/array/ops.cc:38,
                 from /usr/include/blitz/array.cc:13,
                 from /usr/include/blitz/array-impl.h:2559,
                 from bug.cpp:2:
/usr/include/blitz/tvevaluate.h: In instantiation of 'static void
blitz::_tv_evaluator<unroll, N_length>::evaluate_aligned(T_numtype*, const
T_expr&, T_update) [with T_numtype = bool; T_expr =
blitz::_bz_ArrayExpr<blitz::_bz_ArrayExprConstant<bool> >; T_update =
blitz::_bz_update<bool, bool>; bool unroll = false; int N_length = 1]':
/usr/include/blitz/tvevaluate.h:88:85:   required from 'static void
blitz::_tv_evaluator<unroll,
N_length>::select_evaluation(blitz::TinyVector<T_numtype2, N_length>&, const
T_expr&, T_update) [with T = bool; T_expr =
blitz::_bz_ArrayExpr<blitz::_bz_ArrayExprConstant<bool> >; T_update =
blitz::_bz_update<bool, bool>; bool unroll = false; int N_length = 1]'
/usr/include/blitz/tvevaluate.h:195:81:   required from 'void
blitz::TinyVector<T, N>::_tv_evaluate(const T_expr&, T_update) [with T_expr =
blitz::_bz_ArrayExpr<blitz::_bz_ArrayExprConstant<bool> >; T_update =
blitz::_bz_update<bool, bool>; P_numtype = bool; int N_length = 1]'
/usr/include/blitz/tinyvec2.cc:89:57:   required from 'blitz::TinyVector<T, N>&
blitz::TinyVector<T, N>::operator=(const blitz::ETBase<T_expr>&) [with T_expr =
blitz::_bz_ArrayExpr<blitz::_bz_ArrayExprConstant<bool> >; P_numtype = bool;
int N_length = 1]'
/usr/include/blitz/tinyvec2.cc:77:13:   required from 'blitz::TinyVector<T, N>&
blitz::TinyVector<T, N>::initialize(blitz::TinyVector<T, N>::T_numtype) [with
P_numtype = bool; int N_length = 1; blitz::TinyVector<T, N>::T_numtype = bool]'
/usr/include/blitz/listinit.h:90:13:   required from
'blitz::ListInitializationSwitch<T_array,
T_iterator>::~ListInitializationSwitch() [with T_array =
blitz::TinyVector<bool, 1>; T_iterator = bool*]'
/usr/include/blitz/array/storage.h:93:24:   required from
'blitz::GeneralArrayStorage<N_rank>::GeneralArrayStorage(blitz::paddingPolicy)
[with int N_rank = 1]'
/usr/include/blitz/array/storage.h:228:47:   required from here
/usr/include/blitz/tvevaluate.h:108:17: internal compiler error: in
tsubst_copy, at cp/pt.c:12887
     for (int i=0; i < N_length; ++i)
                 ^
Please submit a full bug report,
**************************************************************************************



Trying to better prepare the bug report and executing gcc with "-save-temps"
results in another ICE:



**************************************************************************************
In file included from /usr/include/blitz/globeval.cc:34:0,
                 from /usr/include/blitz/array/ops.cc:38,
                 from /usr/include/blitz/array.cc:13,
                 from /usr/include/blitz/array-impl.h:2559,
                 from bug.cpp:2:
/usr/include/blitz/tvevaluate.h:38:0: internal compiler error: in
c_pp_lookup_pragma, at c-family/c-pragma.c:1232

 ^
Please submit a full bug report,
**************************************************************************************


How to best help in tracking those down?
Sylwester

Reply via email to