This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: VEC re-write [patch 01/25]


On Sun, Nov 18, 2012 at 11:15:22AM -0800, Andrew Pinski wrote:
> On Sun, Nov 18, 2012 at 9:12 AM, Diego Novillo <dnovillo@google.com> wrote:
> > On Sun, Nov 18, 2012 at 12:05 PM, Hans-Peter Nilsson <hp@bitrange.com> wrote:
> >> On Sat, 17 Nov 2012, Diego Novillo wrote:
> >>> I have now committed all 25 parts of this patch as rev 193595.  Please
> >>> CC me on any problems that you think may be related to this rewrite.
> >>
> >> That seems to have trigged some bug in gcc-4.4-era.  See
> >> PR55381.  There are a lot of suspicious warnings from vec.h.
> >> It smells a bit like a host gcc bug, but I'll have to find a
> >> newer version where it builds to confirm.  (If so, "hopefully"
> >> it's as "simple" as upping the minimum host gcc version or
> >> blacklisting gcc-4.4.x.)
> >
> > Yeah, I got those warnings in my sparc and hppa builds, but they are
> > harmless.  Strictly speaking offsetof cannot be applied to non-PODs.
> > The only thing that makes that class non-POD is the protected
> > attribute, but that does not alter the physical layout.  So the
> > compiler is emitting a harmless warning (newer versions have
> > tightened the check to warn when you are using offsetof on a non-base
> > class).
> 
> But then we are no longer writing in C++.   Is there a reason why this
> warning does not break the build?  We should not be using offsetof
> with non-PODs.
> 
> Thanks,
> Andrew Pinski

The changes to tree-data-ref.c have broken the bootstrap on x86_64-apple-darwin11/12
using the Apple clang 4.1 compiler...

clang++ -c   -g -DIN_GCC   -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I../../gcc-4.8-20121119/gcc -I../../gcc-4.8-20121119/gcc/. -I../../gcc-4.8-20121119/gcc/../include -I../../gcc-4.8-20121119/gcc/../libcpp/include -I/sw/include -I/sw/include  -I../../gcc-4.8-20121119/gcc/../libdecnumber -I../../gcc-4.8-20121119/gcc/../libdecnumber/dpd -I../libdecnumber -I../../gcc-4.8-20121119/gcc/../libbacktrace -DCLOOG_INT_GMP -I/sw/include -I/sw/include -I/sw/include ../../gcc-4.8-20121119/gcc/tree-data-ref.c -o tree-data-ref.o
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
../../gcc-4.8-20121119/gcc/tree-data-ref.c:1599:31: error: second argument to 'va_arg' is of non-POD type 'affine_fn' (aka 'vec<tree>') [-Wnon-pod-varargs]
    ret->fns[i] = va_arg (ap, affine_fn);
                  ~~~~~~~~~~~~^~~~~~~~~~
/usr/bin/../lib/clang/4.1/include/stdarg.h:35:50: note: expanded from macro 'va_arg'
#define va_arg(ap, type)    __builtin_va_arg(ap, type)
                                                 ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:1665:34: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
          *overlaps_a = conflict_fn (1, affine_fn_cst (integer_zero_node));
                                        ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:1666:34: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
          *overlaps_b = conflict_fn (1, affine_fn_cst (integer_zero_node));
                                        ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:1812:37: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
      *overlaps_a = conflict_fn (1, affine_fn_cst (integer_zero_node));
                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:1813:37: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
      *overlaps_b = conflict_fn (1, affine_fn_cst (integer_zero_node));
                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:1858:39: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
                      *overlaps_a = conflict_fn (1, affine_fn_cst (integer_zero_node));
                                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:1862:39: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
                      *overlaps_b = conflict_fn (1, affine_fn_cst (tmp));
                                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:1938:39: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
                      *overlaps_a = conflict_fn (1, affine_fn_cst (integer_zero_node));
                                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:1941:39: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
                      *overlaps_b = conflict_fn (1, affine_fn_cst (tmp));
                                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:2203:37: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
      *overlaps_a = conflict_fn (2, ova1, ova2);
                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:2203:43: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
      *overlaps_a = conflict_fn (2, ova1, ova2);
                                          ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:2204:37: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
      *overlaps_b = conflict_fn (1, ovb);
                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:2208:37: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
      *overlaps_a = conflict_fn (1, affine_fn_cst (integer_zero_node));
                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:2209:37: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
      *overlaps_b = conflict_fn (1, affine_fn_cst (integer_zero_node));
                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:2404:37: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
      *overlaps_a = conflict_fn (1, affine_fn_cst (integer_zero_node));
                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:2405:37: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
      *overlaps_b = conflict_fn (1, affine_fn_cst (integer_zero_node));
                                    ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:2462:34: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
          *overlaps_a = conflict_fn (1, ova);
                                        ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:2463:34: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
          *overlaps_b = conflict_fn (1, ovb);
                                        ^
../../gcc-4.8-20121119/gcc/tree-data-ref.c:2604:11: error: cannot pass object of non-POD type 'affine_fn' (aka 'vec<tree>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
                               affine_fn_univar (build_int_cst (NULL_TREE, x1),
                               ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

> 
> >
> > My cris-elf builds worked fine, but config-list.mk only builds stage
> > 1, it does not build libgfortran.  Can you give me instructions on how
> > to build your target on my x86 workstation?
> >
> >
> > Thanks.  Diego.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]