[Bug middle-end/43631] var-tracking inserts notes with non-NULL BLOCK_FOR_INSN in between basic blocks

2012-12-10 Thread izamyatin at gmail dot com


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



--- Comment #17 from Igor Zamyatin izamyatin at gmail dot com 2012-12-10 
08:02:54 UTC ---

(In reply to comment #15)

 But, double checking dwarf2out.c reveals that we could indeed emit the notes

 after BARRIER instead if there is any.  So I'm leaning towards this patch.



Atom bootstrap is ok with this patch


[Bug fortran/55636] [4.8 Regression] Fortran name mangling collides with user namespace

2012-12-10 Thread burnus at gcc dot gnu.org


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



--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2012-12-10 
08:12:39 UTC ---

See thread starting at http://gcc.gnu.org/ml/fortran/2012-10/msg6.html


[Bug fortran/55636] [4.8 Regression] Fortran name mangling collides with user namespace

2012-12-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



   Priority|P3  |P1

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-12-10

 Ever Confirmed|0   |1



--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
08:38:08 UTC ---

P1 as it is a build failure.


[Bug libfortran/55601] libgfortran build fails with --disable-libquadmath

2012-12-10 Thread burnus at gcc dot gnu.org


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



--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2012-12-10 
08:41:36 UTC ---

Hmm, seemingly, the check ignores --disable-libquadmath-support by only testing

for C's __float support, cf. libgfortran/acinclude.m4's LIBGFOR_CHECK_FLOAT128.



gfortran itself is checked via libgfortran/acinclude.m4's

LIBGFOR_WORKING_GFORTRAN.



One probably should augment the C test by a Fortran REAL(16) test.

Additionally, one could directly honour --disable-libquadmath-support, which I

think is also passed to libgfortran's configure.





Regarding the --disable-libquadmath combined with --enable-libquadmath-support:

Some warning would be useful, but the question is how to trigger it.


[Bug tree-optimization/55629] Missed value numbering to a constant

2012-12-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
08:50:12 UTC ---

I know that there is a duplicate of this bug, at least for a simpler

testcase ... but I can't find it right now.



The issue is that SCCVN does not do PHI-translation, that is,



  bb 2:

  if (c_3(D) != 0)

goto bb 3;

  else

goto bb 4;



  bb 3:

  a_4 = 3;

  b_5 = 2;

  goto bb 5;



  bb 4:

  a_6 = 2;

  b_7 = 3;



  bb 5:

  # a_1 = PHI 3(3), 2(4)

  # b_2 = PHI 2(3), 3(4)

  _8 = a_1 + b_2;



SCCVN would need to lookup a_1 and b_2 on both incoming edges when it tries

to simplify a_1 + b_2, match up the results and if equal register the

simplification.



I'm not sure that handling this case (which would certainly be possible)

is worth the cost it has on all expressions that do _not_ simplify that way.

(of course we can see whether the value-numbers for a_1/b_2 do have

has_constants set).



Time for a value-number missed-optimization meta bug, there are quite some

special cases that we do not handle.


[Bug fortran/55636] [4.8 Regression] Fortran name mangling collides with user namespace

2012-12-10 Thread janus at gcc dot gnu.org


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



--- Comment #3 from janus at gcc dot gnu.org 2012-12-10 08:51:19 UTC ---

A patch was posted here:



http://gcc.gnu.org/ml/fortran/2012-10/msg00028.html


[Bug fortran/55633] [4.8 Regression] FAIL: gfortran.dg/g77/f90-intrinsic-bit.f -Os execution test

2012-12-10 Thread burnus at gcc dot gnu.org


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



Tobias Burnus burnus at gcc dot gnu.org changed:



   What|Removed |Added



 CC||burnus at gcc dot gnu.org



--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2012-12-10 
08:57:04 UTC ---

Can you pin-point which version causes the regression?



BIT_SIZE(m) is (correctly) 64 while ma is (wrongly) 0. And NOT returns the

bitwise Boolean inverse of I.



Can you run the following code? It matches the failing code but contains some

debugging printout.



Can you also try kind=4? That seems to work while kind=8 seems to fail.



  integer(kind=8) m, ma

  ma = 0

  m = 0

  print '(m =,i21,z17, ma=,i2,z13)', m, m, ma, ma

  m = not(m)

  print '(m =,i21,z17, ma=,i2,z13)', m, m, ma, ma

  do while ( (m.ne.0) .and. (ma.lt.127) )

 ma = ma + 1

 m = ishft(m,-1)

 print '(m =,i21,z17,, ma=,i2,z13)', m, m, ma, ma

  end do

  print *, BIT_SIZE(m), ma

  if (BIT_SIZE(m) /= ma) error stop

  end


[Bug c++/55635] Deallocation function (operator delete) not called when destructor throws exception

2012-12-10 Thread joedoefawnbuck at googlemail dot com


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



--- Comment #2 from Kerrek SB joedoefawnbuck at googlemail dot com 2012-12-10 
09:08:46 UTC ---

Interesting, thank you!



The bug remains, however, both with -std=c++11 and noexcept(false), and with

-std=c++98 and throw(int).



Also, with noexcept(false) GCC will *not* call terminate()...


[Bug c++/55635] Deallocation function (operator delete) not called when destructor throws exception

2012-12-10 Thread joedoefawnbuck at googlemail dot com


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



--- Comment #3 from Kerrek SB joedoefawnbuck at googlemail dot com 2012-12-10 
09:10:25 UTC ---

(Sorry, I meant *without* noexcept(false).)


[Bug target/55146] jumptables with byte entries produce wrong code with -Os/-O2 for SH-1

2012-12-10 Thread olegendo at gcc dot gnu.org


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



Oleg Endo olegendo at gcc dot gnu.org changed:



   What|Removed |Added



 CC||olegendo at gcc dot gnu.org



--- Comment #1 from Oleg Endo olegendo at gcc dot gnu.org 2012-12-10 09:15:15 
UTC ---

(In reply to comment #0)

 Created attachment 28580 [details]

 testcase C file

 

 Switch statement with enough cases inside is translated to jumptable. If the

 offsets are small enough, byte entries are used. If there is odd number of

 cases this implies padding byte (since all SH instructions are 2 byte wide). 
 In

 the corner case this padding byte can cause the offset to switch from positive

 to negative since move.b instruction used to fetch jumptable entry sign 
 extends

 the byte. This bug is very old and dates back at least to 4.0.3 days. See

 attachment.

 When compiled with sh-elf-gcc -Os -c test-jens.c -o sh-test.o it produces 
 wrong

 jumping code. http://pastebin.com/ZgJK3bgS has slightly commented disassembly

 to point out what I mean.

 

 The workaround is to decrease MIN_OFFSET by one for byte case in

 gcc/config/sh/sh.h . This is not a proper fix though.



Thanks for reporting this.  Could you please attach the file that you had on

pastebin?  The link seems dead.


[Bug fortran/55636] [4.8 Regression] Fortran name mangling collides with user namespace

2012-12-10 Thread jakub at gcc dot gnu.org


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



--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
09:39:31 UTC ---

It could use something similar to what tree-emutls.c uses:

+#if !defined (NO_DOT_IN_LABEL)

+# define GFC_STRING_LENGTH_SEPARATOR   .

+#elif !defined (NO_DOLLAR_IN_LABEL)

+# define GFC_STRING_LENGTH_SEPARATOR   $

+#else

+# define GFC_STRING_LENGTH_SEPARATOR   _

+#endif



-  if (sym-module)

+  if (sym-attr.save || sym-ns-proc_name-attr.flavor == FL_MODULE)

+{

+  if (sym-module)

+name = gfc_get_string (_F GFC_STRING_LENGTH_SEPARATOR

%s_MOD_%s, sym-module, sym-name);

+  else

+name = gfc_get_string (_F GFC_STRING_LENGTH_SEPARATOR %s,

sym-name);

+}

+  else if (sym-module)


[Bug target/55634] ARM: gcc vector extensions: storing vector to unaligned memory location does not use VST1.8 NEON instruction

2012-12-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
09:40:59 UTC ---

Issue with the movmisalign instructions.  They seem to take only a limited

set of modes, in particular not the mode that is requested.


[Bug fortran/55633] [4.8 Regression] FAIL: gfortran.dg/g77/f90-intrinsic-bit.f -Os execution test

2012-12-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



   Keywords||wrong-code

   Target Milestone|--- |4.8.0



--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
09:42:58 UTC ---

If only -Os fails then it's (liekly) not a frontend issue.  Leaving P3 for the

moment.


[Bug middle-end/55630] [4.8 Regression] FAIL: g++.dg/pr48660.C -std=c++98 (internal compiler error)

2012-12-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



   Keywords||ice-on-valid-code

   Priority|P3  |P1

   Target Milestone|--- |4.8.0


[Bug c++/55624] internal compiler error

2012-12-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|WAITING |RESOLVED

 Resolution||INVALID



--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
09:44:34 UTC ---

(In reply to comment #2)

 gcc: internal compiler error: Killed (program cc1plus)

 

 Also means the program was killed by the kernel because out of memory.



And -DBOOST_SPIRIT_THREADSAFE hints at the usual incredibly memory-hungry

spirit...



Get more memory.


[Bug fortran/55618] [4.6/4.7/4.8 Regression] Failures with ISO_Varying_String test suite

2012-12-10 Thread burnus at gcc dot gnu.org


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



Tobias Burnus burnus at gcc dot gnu.org changed:



   What|Removed |Added



 CC||burnus at gcc dot gnu.org



--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2012-12-10 
09:45:45 UTC ---

Reduced test case:



module m

  implicit none

  type t

character :: str(11)

  end type t



  interface char

module procedure char_auto

  end interface char



contains

  pure function char_auto (string) result (char_string)

type(t), intent(in) :: string

character(LEN=size(string%str)) :: char_string

integer :: i_char

forall(i_char = 1:size(string%str))

   char_string(i_char:i_char) = string%str(i_char)

end forall

  end function char_auto



  elemental subroutine split_CH (string, set)

type(t), intent(inout) :: string

character(LEN=*), intent(in):: set

integer :: i

do i = 1, min(len(set),size(string%str))

  string%str(i) = set(i:i)

end do

  end subroutine split_CH

end module m



use m

type(t) :: mdt, mdt2(2),setdt

mdt%str = ['H', 'e', 'l', 'l', 'o', ' ', 'W','o', 'r', 'l', 'd']

mdt2 = [ mdt, mdt ]

setdt%str = ['F', 'o', 'r', 't', 'r', 'a', 'n','R', 'u', 'l', 'z']



call split_CH(mdt2, char(setdt))

print '(11a)', mdt2(1)%str

print '(11a)', mdt2(2)%str

if (any (mdt2(1)%str /= setdt%str)) call abort ()

if (any (mdt2(2)%str /= setdt%str)) call abort ()

end


[Bug middle-end/55623] [ARM] GCC should not prefer long dependency chains, they inhibit performance on superscalar processors

2012-12-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #8 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
09:47:42 UTC ---

You can also adjust --param tree-reassoc-width or have the target implement

the sched.reassociation_width target hook (for the default).


[Bug tree-optimization/55107] [4.7/4.8 Regression] GCC in an infinite loop in PRE

2012-12-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org

   |gnu.org |



--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
09:50:51 UTC ---

Mine.  We don't stop insertion:



Starting insert iteration 3362

Found partial redundancy for expression {nop_expr,d_33} (0024)

Skipping insertion of phi for partial redundancy: Looks like an induction

variable

Inserted pretmp_3451 = (unsigned short) d_25;

 in predecessor 19

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Starting insert iteration 3363

Found partial redundancy for expression {nop_expr,d_33} (0024)

Skipping insertion of phi for partial redundancy: Looks like an induction

variable

Inserted pretmp_3452 = (unsigned short) d_25;

 in predecessor 19

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Found fully redundant value

Starting insert iteration 3364

Found partial redundancy for expression {nop_expr,d_33} (0024)

...


[Bug c++/55619] [4.8 Regression] Chromium build fails with: error: memory input is not directly addressable

2012-12-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



   Target Milestone|--- |4.8.0


[Bug bootstrap/53912] [4.7/4.8 Regression] bootstrap fails using default c++ mode in stage 2 and 3 for native x86_64-w64-mingw32

2012-12-10 Thread ktietz at gcc dot gnu.org


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



--- Comment #32 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 09:53:13 
UTC ---

Author: ktietz

Date: Mon Dec 10 09:53:08 2012

New Revision: 194348



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=194348

Log:

PR target/53912

* print-tree.c (print_node): Cast from pointer via uintptr_t.





Modified:

trunk/gcc/ChangeLog

trunk/gcc/print-tree.c


[Bug bootstrap/53912] [4.7/4.8 Regression] bootstrap fails using default c++ mode in stage 2 and 3 for native x86_64-w64-mingw32

2012-12-10 Thread ktietz at gcc dot gnu.org


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



--- Comment #33 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 09:54:20 
UTC ---

Author: ktietz

Date: Mon Dec 10 09:54:16 2012

New Revision: 194349



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=194349

Log:

PR target/53912

* print-tree.c (print_node): Cast from pointer via uintptr_t.





Modified:

branches/gcc-4_7-branch/gcc/ChangeLog

branches/gcc-4_7-branch/gcc/print-tree.c


[Bug bootstrap/53912] [4.7/4.8 Regression] bootstrap fails using default c++ mode in stage 2 and 3 for native x86_64-w64-mingw32

2012-12-10 Thread ktietz at gcc dot gnu.org


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



--- Comment #34 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 09:57:06 
UTC ---

Author: ktietz

Date: Mon Dec 10 09:57:02 2012

New Revision: 194350



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=194350

Log:

PR target/53912

* stmt.c (compute_cases_per_edge): Cast from pointer via intptr_t.

(expand_case): Likewise.





Modified:

trunk/gcc/ChangeLog

trunk/gcc/stmt.c


[Bug bootstrap/53912] [4.7/4.8 Regression] bootstrap fails using default c++ mode in stage 2 and 3 for native x86_64-w64-mingw32

2012-12-10 Thread ktietz at gcc dot gnu.org


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



Kai Tietz ktietz at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||FIXED



--- Comment #35 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 10:01:24 
UTC ---

Fixed on trunk and 4.7 branch


[Bug bootstrap/45050] build with --enable-build-with-cxx fails on mingw32

2012-12-10 Thread ktietz at gcc dot gnu.org


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



Kai Tietz ktietz at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 CC||ktietz at gcc dot gnu.org

 Resolution||WORKSFORME



--- Comment #1 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 10:23:56 
UTC ---

Can't reproduce this.  This looks for me like a broken build-setup.  strsignal

is part of libiberty, and getpagesize, too.


[Bug c++/55635] Deallocation function (operator delete) not called when destructor throws exception

2012-12-10 Thread redi at gcc dot gnu.org


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



--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2012-12-10 
10:37:29 UTC ---

G++ 4.7 doesn't call terminate because it doesn't implement

http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1123, but trunk

does.


[Bug c++/55619] [4.8 Regression] Chromium build fails with: error: memory input is not directly addressable

2012-12-10 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org,

   ||jason at gcc dot gnu.org



--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
10:51:21 UTC ---

From what I can see, the C++ FE always did what it does now, i.e. even in only

m inputs fold the const value into its initializer.  GCC up to 3.2 was

supporting pushing constants into constant pool without a warning, 3.3/3.4

emitted a deprecation warning on that

warning: use of memory input without lvalue in asm operand 0 is deprecated

and finally from 4.0 onwards this is a hard error.

In this light, the user inline asm could be considered invalid.



Perhaps the C++ FE could be changed, in finish_asm_stmt:



  constraint = TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (t)));

  operand = decay_conversion (TREE_VALUE (t), tf_warning_or_error);



  /* If the type of the operand hasn't been determined (e.g.,

 because it involves an overloaded function), then issue

 an error message.  There's no context available to

 resolve the overloading.  */

  if (TREE_TYPE (operand) == unknown_type_node)

{

  error (type of asm operand %qE could not be determined,

 TREE_VALUE (t));

  operand = error_mark_node;

}



  if (parse_input_constraint (constraint, i, ninputs, noutputs, 0,

  oconstraints, allows_mem, allows_reg))

{

  /* If the operand is going to end up in memory,

 mark it addressable.  */

  if (!allows_reg  allows_mem)

{

  /* Strip the nops as we allow this case.  FIXME, this really

 should be rejected or made deprecated.  */

  STRIP_NOPS (operand);

  if (!cxx_mark_addressable (operand))

operand = error_mark_node;

}

}

  else

operand = error_mark_node;



perhaps parse_input_constraint could be done before decay_conversion (and just

remember its return value in a bool), if it returned true and !allows_reg 

allows_mem, we would need to use some other *_conversion instead of

decay_conversion that wouldn't fold it into a constant and thus make something

originally potentially addressable into something non-addressable.

No idea what function would that be though.  Worst case parse it as if it was

surrounded by implicit  and then dereference the result?  That could generate

different and less clear diagnostics though.


[Bug rtl-optimization/55092] [4.8 Regression] LRA aggravates var-tracking scalability problems

2012-12-10 Thread jakub at gcc dot gnu.org


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



--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
10:53:50 UTC ---

I believe on that testcase it was because without LRA the function didn't use a

frame pointer, while with LRA for some reason it does.


[Bug debug/54402] [4.8 Regression] var-tracking does not scale

2012-12-10 Thread jakub at gcc dot gnu.org


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



--- Comment #18 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
10:56:51 UTC ---

(In reply to comment #16)

 Not on Solaris/SPARC, unfortunately: there are still compilations in the

 libgo testsuite that take more than a day, which with PR go/54507

 effectivly breaks unattended Solaris/SPARC bootstraps since they take

 insanely long.



Which exact testcase?  Can you pin-point it to a single *.go source file

compilation rather than several as the libgo testsuite usually compiles?

Can you see what all files would need to be attached to make it reproduceable

using cross-compiler from say x86_64-linux?  I bet some *.gox files would be

needed...


[Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c

2012-12-10 Thread jakub at gcc dot gnu.org


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



--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
10:57:53 UTC ---

Alex, any opinions here?


[Bug c++/49372] Temporaries evaluated for arguments of a default constructors of array elements not destructed properly (?)

2012-12-10 Thread ktietz at gcc dot gnu.org


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



Kai Tietz ktietz at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 CC||ktietz at gcc dot gnu.org

 Resolution||INVALID



--- Comment #2 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 11:06:49 
UTC ---

This testcase seems to produce for trunk, 4.7, and 4.6 the output CCDD, which

is proper as constructor of B is called by the array-constructor.

Btw you will need option -std=c++11 on trunk to get this test compile without

issues.


[Bug bootstrap/53208] build failure on mingw native internal compiler error: Segmentation fau lt

2012-12-10 Thread ktietz at gcc dot gnu.org


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



Kai Tietz ktietz at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 CC||ktietz at gcc dot gnu.org

 Resolution||WONTFIX



--- Comment #1 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 11:16:47 
UTC ---

Sorry gcc version 4.4.x isn't anymore maintained.   For more modern gcc

versions this issue isn't reproducable.


[Bug libgcj/50895] Build failure in jni.cc

2012-12-10 Thread ktietz at gcc dot gnu.org


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



--- Comment #4 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 11:21:04 
UTC ---

A question about this build-failure.  Were you using posix-threading model for

4.6 ?


[Bug target/55014] ICE: Segmentation fault while compiling complex_io.cc on x86_64-w64-mingw32

2012-12-10 Thread ktietz at gcc dot gnu.org


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



Kai Tietz ktietz at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||WORKSFORME



--- Comment #9 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 11:28:43 
UTC ---

Re-tested this testcase.  Seems to be fixed with current trunk.  With older

revision it failed as described.

I close this as worksforme.


[Bug target/38269] Segmentation fault in main_block_label when using -fno-unit-at-a-time and precompiled headers containing inline functions

2012-12-10 Thread ktietz at gcc dot gnu.org


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



Kai Tietz ktietz at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||WONTFIX

  Known to fail||



--- Comment #7 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 11:31:19 
UTC ---

The 4.3 gcc version is no longer maintained.  As this issue was fixed already

with 4.4 I close this bug as wontfix


[Bug fortran/55638] New: Wrongly accepts INTENT + VALUE - and wrongly requires it for PURE

2012-12-10 Thread burnus at gcc dot gnu.org


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



 Bug #: 55638

   Summary: Wrongly accepts INTENT + VALUE - and wrongly requires

it for PURE

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Keywords: accepts-invalid, rejects-valid

  Severity: normal

  Priority: P3

 Component: fortran

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: bur...@gcc.gnu.org





C558  An entity with the VALUE attribute shall not have the ALLOCATABLE,

INTENT (INOUT), INTENT(OUT), POINTER, or VOLATILE attributes. (F2008)



C1276 The specification-part of a pure function subprogram shall specify that

all its nonpointer dummy data objects have the INTENT (IN) or the VALUE

attribute.





However, gfortran allows to combine INTENT with VALUE.



Additionally, for PURE (and PURE ELEMENTAL) procedures, it even requires the

INTENT besides the VALUE. Namely:



  elemental subroutine foo(x,y)

  1

Error: Argument 'y' of elemental procedure 'foo' at (1) must have its INTENT

specified









  elemental subroutine foo(x,y)

integer, intent(inout) :: x

!integer, VALUE, INTENT(in)  :: y

integer, VALUE  :: y

x = y

  end subroutine foo


[Bug fortran/55618] [4.6/4.7/4.8 Regression] Failures with ISO_Varying_String test suite

2012-12-10 Thread burnus at gcc dot gnu.org


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



Tobias Burnus burnus at gcc dot gnu.org changed:



   What|Removed |Added



   Priority|P3  |P4

   Target Milestone|--- |4.6.4



--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2012-12-10 
11:43:34 UTC ---

In trans-expr.c's gfc_conv_procedure_call, one calls:



  3997else if (se-ss  se-ss-info-useflags)

  3998  {

...

  4007if (ss-dimen  0  e-expr_type == EXPR_VARIABLE

  4008 ss-info-data.array.ref == NULL)

...

  4016else

  4017  gfc_conv_expr_reference (parmse, e);



 * * *



Even shorter example. Note the VALUE attribute (cf. PR55638 for the wrong

INTENT(IN)):





integer :: A(3)

call foo(a, f())

print *, a

contains

  elemental subroutine foo(x,y)

integer, intent(inout) :: x

integer, VALUE, intent(in)  :: y

x = y

  end subroutine foo

  function f()

integer :: f

f = 42

  end function f

end


[Bug preprocessor/55602] Does not generate Error message for redefined macros

2012-12-10 Thread guojiufu at gmail dot com


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



--- Comment #2 from Jeff Guo guojiufu at gmail dot com 2012-12-10 11:57:57 
UTC ---

-pedantic-errors is helpful if the redefined macros not guarded by #pragma GCC

system_header

--a.h --

#pragma GCC system_header

#define A 1

#define A 2

-a.c

#include a.h



int main(){

  return A;

}






[Bug preprocessor/55602] Does not generate Error message for redefined macros

2012-12-10 Thread guojiufu at gmail dot com


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



--- Comment #3 from Jeff Guo guojiufu at gmail dot com 2012-12-10 11:59:07 
UTC ---

Above case is still no error message reported even with -pedantic-errors


[Bug preprocessor/55602] Does not generate Error message for redefined macros

2012-12-10 Thread guojiufu at gmail dot com


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



Jeff Guo guojiufu at gmail dot com changed:



   What|Removed |Added



 Status|RESOLVED|VERIFIED

 Resolution|INVALID |WONTFIX



--- Comment #4 from Jeff Guo guojiufu at gmail dot com 2012-12-10 12:02:29 
UTC ---

may GCC report error message for redefined macro if -pedantic-errors specified

for system headers?


[Bug tree-optimization/53342] [4.8 Regression] rnflow.f90 is ~5% slower after revision 187340

2012-12-10 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org



--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
12:10:41 UTC ---

Is this slower compared to pre-r186530 gfortran, or just from the r186530

through 187339?  I think before that change on this testcase we've vectorized

just 25 loops, not 28 loops as now, and supposedly the loops for which the

r187340 change is a problem are only those that weren't vectorized before at

all.  If the latter, then this wouldn't be a regression.



Is there an easy way to detect if peeling could turn a simple_iv vectorized

load into non-!simple_iv?



Michael, do you plan to work on this?


[Bug tree-optimization/55107] [4.7/4.8 Regression] GCC in an infinite loop in PRE

2012-12-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Depends on||55629



--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
12:13:54 UTC ---

The issue is shown by:



Index: tree-ssa-pre.c

===

--- tree-ssa-pre.c  (revision 194345)

+++ tree-ssa-pre.c  (working copy)

@@ -867,6 +867,8 @@ bitmap_set_replace_value (bitmap_set_t s

  return;

}

 }

+

+  gcc_unreachable ();

 }



that is, we have a value in NEW_SETS,



(gdb) call debug_bitmap_set (set)

debug[0] := { prephitmp_61 (0036), prephitmp_74 (0056), prephitmp_29 (0057),

prephitmp_62 (0046), prephitmp_6 (0047), prephitmp_73 (0029) }

(gdb) p lookfor

$1 = 29



that is not in value_expressions:



0029[0] := { d.7_35 (0029), {nop_expr,d_25} (0029),

{mem_ref0B,addr_expra}@.MEM_36 (0029), prephitmp_83 (0029) }



That happens because we re-set prephitmp_73's value from its original 37

to 29 in do_regular_insertion but do not adjust value_expressions.

In fact,



  /* If all edges produce the same value and that value is

 an invariant, then the PHI has the same value on all

 edges.  Note this.  */

  else if (!cant_insert  all_same  eprime

(edoubleprime-kind == CONSTANT

   || edoubleprime-kind == NAME)

!value_id_constant_p (val))

{

  unsigned int j;

  bitmap_iterator bi;

  bitmap exprset = value_expressions[val];



  unsigned int new_val = get_expr_value_id (edoubleprime);

  EXECUTE_IF_SET_IN_BITMAP (exprset, 0, j, bi)

{

  pre_expr expr = expression_for_id (j);



  if (expr-kind == NAME)

{

  vn_ssa_aux_t info = VN_INFO (PRE_EXPR_NAME (expr));

  /* Just reset the value id and valnum so it is

 the same as the constant we have discovered.  */

  if (edoubleprime-kind == CONSTANT)

{

  info-valnum = PRE_EXPR_CONSTANT (edoubleprime);

  pre_stats.constified++;

}

  else

info-valnum = VN_INFO (PRE_EXPR_NAME

(edoubleprime))-valnum;

  info-value_id = new_val;

}

}



looks like a hack that while adjusting all existing name(!)

expressions for a value it does not adjust bitmap sets.  What it seems to

try to do is unify two value-ids after-the-fact.



We cannot get this right this way.  We simply have to perform PHI

insertion to merge the values.



The above is a hack around the inability of the value-numbering to handle

this case (see PR55629).  But it's not a sustainable solution as this

bug shows ...



I have a patch.


[Bug tree-optimization/53342] [4.8 Regression] rnflow.f90 is ~5% slower after revision 187340

2012-12-10 Thread rguenther at suse dot de


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



--- Comment #5 from rguenther at suse dot de rguenther at suse dot de 
2012-12-10 12:26:21 UTC ---

On Mon, 10 Dec 2012, jakub at gcc dot gnu.org wrote:



 

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

 

 Jakub Jelinek jakub at gcc dot gnu.org changed:

 

What|Removed |Added

 

  CC||jakub at gcc dot gnu.org

 

 --- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
 12:10:41 UTC ---

 Is this slower compared to pre-r186530 gfortran, or just from the r186530

 through 187339?  I think before that change on this testcase we've vectorized

 just 25 loops, not 28 loops as now, and supposedly the loops for which the

 r187340 change is a problem are only those that weren't vectorized before at

 all.  If the latter, then this wouldn't be a regression.

 

 Is there an easy way to detect if peeling could turn a simple_iv vectorized

 load into non-!simple_iv?



See my this could be done differently now comment - you should be

able to re-use the original SCEV result, thus the non-simple_iv case

should never pop up late.



Richard.


[Bug c++/53475] [4.8 Regression] Section type conflict errors in libstdc++ testsuite

2012-12-10 Thread gretay at gcc dot gnu.org


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



gretay at gcc dot gnu.org changed:



   What|Removed |Added



 CC||gretay at gcc dot gnu.org



--- Comment #16 from gretay at gcc dot gnu.org 2012-12-10 12:29:02 UTC ---

On arm-none-eabi:

FAIL-PASS: 25_algorithms/stable_sort/49559.cc (test for excess errors).

This test passes now (since 2012-12-07), likely fixed by the patches for

PR55395.



FAIL-PASS: 20_util/tuple/creation_functions/tie2.cc (test for excess errors)

This test has already been fixed before and passing since 2012-11-05.



Do these tests also pass on powerpc64-unknown-linux-gnu?



Thanks,

Greta


[Bug libgcj/50895] Build failure in jni.cc

2012-12-10 Thread vanboxem.ruben at gmail dot com


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



--- Comment #5 from Ruben Van Boxem vanboxem.ruben at gmail dot com 
2012-12-10 12:32:36 UTC ---

(In reply to comment #4)

 A question about this build-failure.  Were you using posix-threading model for

 4.6 ?



It's been a while, but I believe the 4.6 was normal win32 threading.


[Bug fortran/55341] address-sanitizer and Fortran

2012-12-10 Thread Joost.VandeVondele at mat dot ethz.ch


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



--- Comment #7 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2012-12-10 12:37:00 UTC ---

I'm wondering, is asan not supposed to print out a backtrace with file names

and line numbers... right now (trunk of today) I get a trace with just

addresses, I somehow have the feeling this was different in an earlier version

:



gfortran -g -fsanitize=address asan_test.f90 ; ./a.out

=

==19529== ERROR: AddressSanitizer: stack-buffer-underflow on address

0x7fff503d6a98 at pc 0x400922 bp 0x7fff503d6a60 sp 0x7fff503d6a58

WRITE of size 4 at 0x7fff503d6a98 thread T0

#0 0x400921 (/data/vjoost/gnu/bugs/a.out+0x400921)

#1 0x400942 (/data/vjoost/gnu/bugs/a.out+0x400942)

#2 0x400978 (/data/vjoost/gnu/bugs/a.out+0x400978)

#3 0x351661ecdc (/lib64/libc-2.12.so+0x1ecdc)

Address 0x7fff503d6a98 is located at offset 24 in frame test_asan_01 of T0's

stack:

  This frame has 1 object(s):

[32, 72) 'a'


[Bug sanitizer/55561] TSAN crashes for Fortran

2012-12-10 Thread Joost.VandeVondele at mat dot ethz.ch


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



--- Comment #7 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2012-12-10 12:43:42 UTC ---

Now, compilation seems to go fine, but I'm not figuring out how to do it

properly so it works at run time. I have:



 gfortran -g  -fsanitize=thread -fPIE PR55561.f90 

 ./a.out

FATAL: ThreadSanitizer can not mmap the shadow memory (something is mapped at

0x40  0x7cf0)

FATAL: Make sure to compile with -fPIE and to link with -pie.



next try yields



 gfortran -g  -fsanitize=thread -fPIC -Wl,-pie PR55561.f90 

/data/vjoost/gnu/binutils-2.22/install/bin/ld: error: /usr/lib/../lib64/crt1.o:

requires unsupported dynamic reloc 11; recompile with -fPIC

/data/vjoost/gnu/binutils-2.22/install/bin/ld: error:

/data/vjoost/gnu/gcc_trunk/install/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/crtbegin.o:

requires dynamic R_X86_64_32 reloc against '__TMC_END__' which may overflow at

runtime; recompile with -fPIC



Is there something wrong in the way I configured gcc or do I need a different

command line ?



../gcc/configure --prefix=/data/vjoost/gnu/gcc_trunk/install

--enable-languages=c,c++,fortran --disable-multilib --enable-plugins

--enable-lto --disable-bootstrap


[Bug fortran/55341] address-sanitizer and Fortran

2012-12-10 Thread kcc at gcc dot gnu.org


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



Kostya Serebryany kcc at gcc dot gnu.org changed:



   What|Removed |Added



 CC||kcc at gcc dot gnu.org



--- Comment #8 from Kostya Serebryany kcc at gcc dot gnu.org 2012-12-10 
12:45:37 UTC ---

Joost: 

http://code.google.com/p/address-sanitizer/wiki/AddressSanitizer#Call_stack


[Bug sanitizer/55561] TSAN crashes for Fortran

2012-12-10 Thread pinskia at gcc dot gnu.org


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



--- Comment #8 from Andrew Pinski pinskia at gcc dot gnu.org 2012-12-10 
12:46:56 UTC ---

(In reply to comment #7)

 Now, compilation seems to go fine, but I'm not figuring out how to do it

 properly so it works at run time. I have:

 

  gfortran -g  -fsanitize=thread -fPIE PR55561.f90 

  ./a.out

 FATAL: ThreadSanitizer can not mmap the shadow memory (something is mapped at

 0x40  0x7cf0)

 FATAL: Make sure to compile with -fPIE and to link with -pie.

 

 next try yields

 

  gfortran -g  -fsanitize=thread -fPIC -Wl,-pie PR55561.f90 

Try:

gfortran -g  -fsanitize=thread -fPIC -pie PR55561.f90 



The driver changes the startup files when -pie is passed.


[Bug sanitizer/55561] TSAN crashes for Fortran

2012-12-10 Thread Joost.VandeVondele at mat dot ethz.ch


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



--- Comment #9 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2012-12-10 12:53:22 UTC ---

(In reply to comment #8)

 gfortran -g  -fsanitize=thread -fPIC -pie PR55561.f90 



Thanks! yields the proper warning as expected.. 



 gfortran -g  -fopenmp -fsanitize=thread -fPIC -pie PR55561.f90 ; ./a.out

==

WARNING: ThreadSanitizer: data race (pid=26592)

  Read of size 4 at 0x7fff74e67d6c by main thread:

#0 MAIN__._omp_fn.0 PR55561.f90:0 (exe+0x0fff)

#1 MAIN__ PR55561.f90:0 (exe+0x0e79)

#2 main ??:0 (exe+0x0f75)



  Previous write of size 4 at 0x7fff74e67d6c by thread 1:

#0 MAIN__._omp_fn.0 PR55561.f90:0 (exe+0x1020)

#1 gomp_thread_start

/data/vjoost/gnu/gcc_trunk/obj/x86_64-unknown-linux-gnu/libgomp/../../../gcc/libgomp/team.c:116

(libgomp.so.1+0x8449)



  Thread 1 (tid=26593, running) created at:

#0 pthread_create ??:0 (libtsan.so.0+0x0001be6c)

#1 gomp_team_start

/data/vjoost/gnu/gcc_trunk/obj/x86_64-unknown-linux-gnu/libgomp/../../../gcc/libgomp/team.c:440

(libgomp.so.1+0x89f5)

#2 main ??:0 (exe+0x0f75)



==


[Bug sanitizer/55561] TSAN crashes for Fortran

2012-12-10 Thread dvyukov at google dot com


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



--- Comment #10 from Dmitry Vyukov dvyukov at google dot com 2012-12-10 
12:57:01 UTC ---

(In reply to comment #9)

 (In reply to comment #8)

  gfortran -g  -fsanitize=thread -fPIC -pie PR55561.f90 

 

 Thanks! yields the proper warning as expected.. 

 

  gfortran -g  -fopenmp -fsanitize=thread -fPIC -pie PR55561.f90 ; ./a.out

 ==

 WARNING: ThreadSanitizer: data race (pid=26592)

   Read of size 4 at 0x7fff74e67d6c by main thread:

 #0 MAIN__._omp_fn.0 PR55561.f90:0 (exe+0x0fff)

 #1 MAIN__ PR55561.f90:0 (exe+0x0e79)

 #2 main ??:0 (exe+0x0f75)

 

   Previous write of size 4 at 0x7fff74e67d6c by thread 1:

 #0 MAIN__._omp_fn.0 PR55561.f90:0 (exe+0x1020)

 #1 gomp_thread_start

 /data/vjoost/gnu/gcc_trunk/obj/x86_64-unknown-linux-gnu/libgomp/../../../gcc/libgomp/team.c:116

 (libgomp.so.1+0x8449)

 

   Thread 1 (tid=26593, running) created at:

 #0 pthread_create ??:0 (libtsan.so.0+0x0001be6c)

 #1 gomp_team_start

 /data/vjoost/gnu/gcc_trunk/obj/x86_64-unknown-linux-gnu/libgomp/../../../gcc/libgomp/team.c:440

 (libgomp.so.1+0x89f5)

 #2 main ??:0 (exe+0x0f75)

 

 ==



Is is a correct report? Or false positive?


[Bug sanitizer/55561] TSAN crashes for Fortran

2012-12-10 Thread Joost.VandeVondele at mat dot ethz.ch


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



--- Comment #11 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2012-12-10 12:59:09 UTC ---

(In reply to comment #10)

 Is is a correct report? Or false positive?



This is a correct report for the testcase in comment #0 (as J is shared between

threads).


[Bug c++/49372] Temporaries evaluated for arguments of a default constructors of array elements not destructed properly (?)

2012-12-10 Thread redi at gcc dot gnu.org


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



--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2012-12-10 
13:14:56 UTC ---

Kai, I don't think anyone disputes that B's constructor is called, the question

is why 12.2/4 doesn't apply.


[Bug fortran/55341] address-sanitizer and Fortran

2012-12-10 Thread Joost.VandeVondele at mat dot ethz.ch


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



--- Comment #9 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2012-12-10 13:19:24 UTC ---

(In reply to comment #8)

 Joost: 

 http://code.google.com/p/address-sanitizer/wiki/AddressSanitizer#Call_stack



No luck, even with -fno-omit-frame-pointer and the python script :



 rm -f ./a.out ; gfortran -g -O0 -fsanitize=address -fno-omit-frame-pointer 
 asan_test.f90 ; ./a.out | python ./asan_symbolize.py



=

==43068== ERROR: AddressSanitizer: stack-buffer-underflow on address

0x7fff7a574fb8 at pc 0x400922 bp 0x7fff7a574f80 sp 0x7fff7a574f78

WRITE of size 4 at 0x7fff7a574fb8 thread T0

#0 0x400921 (/data/vjoost/gnu/bugs/a.out+0x400921)

#1 0x400942 (/data/vjoost/gnu/bugs/a.out+0x400942)

#2 0x400978 (/data/vjoost/gnu/bugs/a.out+0x400978)

#3 0x351661ecdc (/lib64/libc-2.12.so+0x1ecdc)

Address 0x7fff7a574fb8 is located at offset 24 in frame test_asan_01 of T0's

stack:

  This frame has 1 object(s):

[32, 72) 'a'

HINT: this may be a false positive if your program uses some custom stack

unwind mechanism or swapcontext

  (longjmp and C++ exceptions *are* supported)

Shadow byte and word:

  0x1fffef4ae9f7: f1


[Bug fortran/55341] address-sanitizer and Fortran

2012-12-10 Thread kcc at gcc dot gnu.org


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



--- Comment #10 from Kostya Serebryany kcc at gcc dot gnu.org 2012-12-10 
13:20:51 UTC ---

 ./a.out | python ./asan_symbolize.py

It should be 

  ./a.out 21  | python ./asan_symbolize.py


[Bug tree-optimization/55079] [4.8 regression] false positive -Warray-bounds (also seen at -O3 bootstrap)

2012-12-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org

   |gnu.org |



--- Comment #11 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
13:23:17 UTC ---

Created attachment 28911

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28911

prototype patch



The pattern we have is



  bb 6:

  _36 = i_33 + 1;

  _37 = a[i_33];

  a[_36] = _37;

  i_39 = i_33 + 4294967295;

  if (i_33 != 0)

goto bb 7;

  else

goto bb 11;



  bb 7:

  _42 = i_39 + 1;

  _43 = a[i_39];

  a[_42] = _43;



and eventually adding an assert in bb7 that i_39 != 1 would help.  But

the only thing we try to add extra asserts for is stuff in the definition

chain of comparison operands ... this OTOH is for stuff that uses

comparison operands and live on the edge.



Prototype patch attached, fixes comment#8 at least.


[Bug c++/55639] New: Partial nested template specialization leads to segmentation fault of g++

2012-12-10 Thread mk at nopw dot de


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



 Bug #: 55639

   Summary: Partial nested template specialization leads to

segmentation fault of g++

Classification: Unclassified

   Product: gcc

   Version: 4.7.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: m...@nopw.de





Created attachment 28912

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28912

test case that cause g++ to exit with segmenation fault



When I compile the attached C++ file g++ finishes with a segmentation fault.



The problem might lie in the partial nested template specialization. If I

either remove the surrounding class (and defined the struct in the global

namespace) or if I remove the template specialization the error goes away.



Compiler version: g++-4.7 (Ubuntu/Linaro 4.7.2-11precise2) 4.7.2

Call: g++-4.7 -Wall -std=c++11 -o test template_specialization.cc


[Bug fortran/55341] address-sanitizer and Fortran

2012-12-10 Thread Joost.VandeVondele at mat dot ethz.ch


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



--- Comment #11 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2012-12-10 13:26:31 UTC ---

(In reply to comment #10)

  ./a.out | python ./asan_symbolize.py

 It should be 

   ./a.out 21  | python ./asan_symbolize.py



not good yet, line numbers are 0. Also happens for a C testcase.



Also addr2line seems not happy:



addr2line -e ./a.out 0x400921

??:0



 gfortran -g -O0 -fsanitize=address -fno-omit-frame-pointer asan_test.f90 ; 
 ./a.out 21 | python ./asan_symbolize.py

=

==45957== ERROR: AddressSanitizer: stack-buffer-underflow on address

0x7fff9752bdd8 at pc 0x400922 bp 0x7fff9752bda0 sp 0x7fff9752bd98

WRITE of size 4 at 0x7fff9752bdd8 thread T0

#0 0x400921 in test_asan_01_ ??:0

#1 0x400942 in MAIN__ asan_test.f90:0

#2 0x400978 in main ??:0

#3 0x351661ecdc in ?? ??:0

Address 0x7fff9752bdd8 is located at offset 24 in frame test_asan_01 of T0's

stack:


[Bug fortran/55341] address-sanitizer and Fortran

2012-12-10 Thread kcc at gcc dot gnu.org


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



--- Comment #12 from Kostya Serebryany kcc at gcc dot gnu.org 2012-12-10 
13:28:12 UTC ---

Does pure addr2line work?


[Bug fortran/55633] [4.8 Regression] FAIL: gfortran.dg/g77/f90-intrinsic-bit.f -Os execution test

2012-12-10 Thread dave.anglin at bell dot net


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



--- Comment #3 from dave.anglin at bell dot net 2012-12-10 13:31:31 UTC ---

On 10-Dec-12, at 3:57 AM, burnus at gcc dot gnu.org wrote:



 Can you pin-point which version causes the regression?



At this point, I onnly know the test didn't fail in early September.





 BIT_SIZE(m) is (correctly) 64 while ma is (wrongly) 0. And NOT  

 returns the

 bitwise Boolean inverse of I.



 Can you run the following code? It matches the failing code but  

 contains some

 debugging printout.



 Can you also try kind=4? That seems to work while kind=8 seems  

 to fail.



  integer(kind=8) m, ma

  ma = 0

  m = 0

  print '(m =,i21,z17, ma=,i2,z13)', m, m, ma, ma

  m = not(m)

  print '(m =,i21,z17, ma=,i2,z13)', m, m, ma, ma

  do while ( (m.ne.0) .and. (ma.lt.127) )

 ma = ma + 1

 m = ishft(m,-1)

 print '(m =,i21,z17,, ma=,i2,z13)', m, m, ma, ma

  end do

  print *, BIT_SIZE(m), ma

  if (BIT_SIZE(m) /= ma) error stop

  end





Here are the results from hppa-unknown-linux-gnu which also fails.



kind=8:

m =00 ma= 00

m =   -1  ma= 00

m =  9223372036854775807 7FFF, ma= 11

m =  4611686018427387903 3FFF, ma= 22

m =  2305843009213693951 1FFF, ma= 33

m =  1152921504606846975  FFF, ma= 44

m =   576460752303423487  7FF, ma= 55

m =   288230376151711743  3FF, ma= 66

m =   144115188075855871  1FF, ma= 77

m =72057594037927935   FF, ma= 88

m =36028797018963967   7F, ma= 99

m =18014398509481983   3F, ma=10A

m = 9007199254740991   1F, ma=11B

m = 4503599627370495F, ma=12C

m = 22517998136852477, ma=13D

m = 11258999068426233, ma=14E

m =  5629499534213111, ma=15F

m =  281474976710655 , ma=16   10

m =  140737488355327 7FFF, ma=17   11

m =   70368744177663 3FFF, ma=18   12

m =   35184372088831 1FFF, ma=19   13

m =   17592186044415  FFF, ma=20   14

m =8796093022207  7FF, ma=21   15

m =4398046511103  3FF, ma=22   16

m =219902321  1FF, ma=23   17

m =1099511627775   FF, ma=24   18

m = 549755813887   7F, ma=25   19

m = 274877906943   3F, ma=26   1A

m = 137438953471   1F, ma=27   1B

m =  68719476735F, ma=28   1C

m =  343597383677, ma=29   1D

m =  171798691833, ma=30   1E

m =   85899345911, ma=31   1F

m =   4294967295 , ma=32   20

m =   2147483647 7FFF, ma=33   21

m =   1073741823 3FFF, ma=34   22

m =536870911 1FFF, ma=35   23

m =268435455  FFF, ma=36   24

m =134217727  7FF, ma=37   25

m = 67108863  3FF, ma=38   26

m = 33554431  1FF, ma=39   27

m = 16777215   FF, ma=40   28

m =  8388607   7F, ma=41   29

m =  4194303   3F, ma=42   2A

m =  2097151   1F, ma=43   2B

m =  1048575F, ma=44   2C

m =   5242877, ma=45   2D

m =   2621433, ma=46   2E

m =   1310711, ma=47   2F

m =65535 , ma=48   30

m =32767 7FFF, ma=49   31

m =16383 3FFF, ma=50   32

m = 8191 1FFF, ma=51   33

m = 4095  FFF, ma=52   34

m = 2047  7FF, ma=53   35

m = 1023  3FF, ma=54   36

m =  511  1FF, ma=55   37

m =  255   FF, ma=56   38

m =  127   7F, ma=57   39

m =   63   3F, ma=58   3A

m =   31   1F, ma=59   3B

m =  

[Bug fortran/55341] address-sanitizer and Fortran

2012-12-10 Thread Joost.VandeVondele at mat dot ethz.ch


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



--- Comment #13 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2012-12-10 13:33:12 UTC ---

(In reply to comment #12)

 Does pure addr2line work?



No, the following (-gdwarf-3) does work:



gfortran -gdwarf-3 -O0 -fsanitize=address -fno-omit-frame-pointer asan_test.f90

; ./a.out 21 | python ./asan_symbolize.py



I guess the binutils is not quite up-to-date, I'm using a relatively recent

2.22

 addr2line --version

GNU addr2line (GNU Binutils) 2.22


[Bug c++/55639] Partial nested template specialization leads to segmentation fault of g++

2012-12-10 Thread paolo.carlini at oracle dot com


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



--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-12-10 
13:40:18 UTC ---

The issue is the 'template' keyword in:



SomeClassnumber::template FunE, 0



without it, the code is accepted (ICC also accepts it). I'm pretty sure this is

a Dup of another issue we already have in Bugzilla.


[Bug fortran/55341] address-sanitizer and Fortran

2012-12-10 Thread jakub at gcc dot gnu.org


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



--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
13:41:16 UTC ---

(In reply to comment #11)

   ./a.out | python ./asan_symbolize.py

  I =

 ==45957== ERROR: AddressSanitizer: stack-buffer-underflow on address

 0x7fff9752bdd8 at pc 0x400922 bp 0x7fff9752bda0 sp 0x7fff9752bd98

 WRITE of size 4 at 0x7fff9752bdd8 thread T0

 #0 0x400921 in test_asan_01_ ??:0

 #1 0x400942 in MAIN__ asan_test.f90:0

 #2 0x400978 in main ??:0

 #3 0x351661ecdc in ?? ??:0

 Address 0x7fff9752bdd8 is located at offset 24 in frame test_asan_01 of T0's

 stack:



That means your addr2line is too old.

You need at least addr2line with

http://sourceware.org/ml/binutils-cvs/2012-04/msg00119.html

changes to cope with GCC 4.8 emitted DWARF 4.


[Bug c++/49372] Temporaries evaluated for arguments of a default constructors of array elements not destructed properly (?)

2012-12-10 Thread ktietz at gcc dot gnu.org


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



Kai Tietz ktietz at gcc dot gnu.org changed:



   What|Removed |Added



 Status|RESOLVED|NEW

   Last reconfirmed||2012-12-10

 Resolution|INVALID |

 Ever Confirmed|0   |1



--- Comment #4 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 13:42:30 
UTC ---

(In reply to comment #3)

 Kai, I don't think anyone disputes that B's constructor is called, the 
 question

 is why 12.2/4 doesn't apply.



Well, we have here 5.2.2 which says A function call is a postfix expression

followed by parentheses containing a possibly empty, comma-separated list of

expressions which constitute the arguments to the function.



But we don't have here an explicit function-call.  And an implicit call is not

an expression, hence, not a part of any full expression, and so we don't have a

sequence-point.  Not sure if specification intended it differently, but by its

current wording I would assume that current implementation is right.



But indeed 12.4 seems to be violated here.  There are two contexts in which

temporaries are destroyed at a different point than the end of the

fullexpression.

The first context is when a default constructor is called to initialize an

element of an array. If the constructor has one or more default arguments, the

destruction of every temporary created in a default argument expression is

sequenced before the construction of the next array element, if any.



So there is an antagonism in spec.  I will reopen it.  sorry, didn't read about

12.4


[Bug tree-optimization/55079] [4.8 regression] false positive -Warray-bounds (also seen at -O3 bootstrap)

2012-12-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #12 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
13:50:15 UTC ---

For the testcase in comment#1 we have



Found new range for len_10: [1, 7]





Visiting statement:

len_17 = MIN_EXPR len_10, len_11(D);



Found new range for len_17: [0, +INF]



which should have been [0, 7] I think.  That fixes the testcase from comment#1.


[Bug fortran/55341] address-sanitizer and Fortran

2012-12-10 Thread Joost.VandeVondele at mat dot ethz.ch


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



--- Comment #15 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2012-12-10 13:56:02 UTC ---

(In reply to comment #14)

 That means your addr2line is too old.



OK, with binutils 2.23.1 things work as expected. In particular:



 gfortran -g -O0 -fsanitize=address asan_test.f90 ; ./a.out 21 | python 
 ./asan_symbolize.py

=

==35214== ERROR: AddressSanitizer: stack-buffer-underflow on address

0x7fff37dfe8b8 at pc 0x400922 bp 0x7fff37dfe880 sp 0x7fff37dfe878

WRITE of size 4 at 0x7fff37dfe8b8 thread T0

#0 0x400921 in test_asan_01_ /data/vjoost/gnu/bugs/asan_test.f90:4

#1 0x400942 in MAIN__ /data/vjoost/gnu/bugs/asan_test.f90:7

#2 0x400978 in main /data/vjoost/gnu/bugs/asan_test.f90:8

#3 0x351661ecdc in ?? ??:0


[Bug tree-optimization/55107] [4.7/4.8 Regression] GCC in an infinite loop in PRE

2012-12-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
14:00:39 UTC ---

Author: rguenth

Date: Mon Dec 10 14:00:25 2012

New Revision: 194358



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=194358

Log:

2012-12-10  Richard Biener  rguent...@suse.de



PR tree-optimization/55107

* tree-ssa-pre.c (struct pre_stats): Remove constified field.

(bitmap_set_replace_value): Add gcc_unreachable.

(do_regular_insertion): Re-write all_same handling.  Insert

an assignment instead of a PHI in this case.

(eliminate_bb): Record availability also for SSA names defined

by a constant.

(do_pre): Do not record constified events.

(execute_fre): Likewise.



* gcc.dg/torture/pr55107.c: New testcase.

* gcc.dg/tree-ssa/ssa-pre-5.c: Adjust.



Added:

trunk/gcc/testsuite/gcc.dg/torture/pr55107.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/testsuite/ChangeLog

trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-5.c

trunk/gcc/tree-ssa-pre.c


[Bug tree-optimization/55107] [4.7 Regression] GCC in an infinite loop in PRE

2012-12-10 Thread rguenth at gcc dot gnu.org


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



Richard Biener rguenth at gcc dot gnu.org changed:



   What|Removed |Added



  Known to work||4.8.0

Summary|[4.7/4.8 Regression] GCC in |[4.7 Regression] GCC in an

   |an infinite loop in PRE |infinite loop in PRE

  Known to fail|4.8.0   |



--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
14:01:33 UTC ---

Fixed on trunk sofar.


[Bug tree-optimization/55079] [4.8 regression] false positive -Warray-bounds (also seen at -O3 bootstrap)

2012-12-10 Thread rguenth at gcc dot gnu.org

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

--- Comment #13 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
14:14:07 UTC ---
(In reply to comment #9)
 This is reduced testcase from gcov.c
 int a[8];
 int
 t (void)
 {
   int ix = 0;
   int k;
   int b = 0;
   int curr = 0;
   for (k = 0; k  2; k++)
 {
   b = ix * 32;
   curr = a[ix++];
   if (!(ix = 8))

See below.

 abort ();
 
   while (curr)
 {
   b = ix * 32;
   curr = a[ix++];
   if (!(ix = 8))

This is a test after the fact.  For ix == 8 we will still enter the
next loop iteration (GCC can't know anything about 'curr') and thus
access a[8] which is out-of-bounds.

Fixing the tests to test  8 instead fixes the warnings.

This testcase is invalid.

 abort ();
 }
 }
   return curr + b;
 }
 
 jan@linux-e0ml:~/trunk/build/gcc ./xgcc -B ./ -O2 -fprofile-use t.c
 -Warray-bounds -S -S -fdump-tree-cunroll-details  -fdump-tree-all-details  
 t.c: In function ‘t’:
 t.c:14:2: warning: incompatible implicit declaration of built-in function
 ‘abort’ [enabled by default]
   abort ();
   ^
 t.c:25:1: note: file /home/jan/trunk/build/gcc/t.gcda not found, execution
 counts estimated
  }
  ^
 t.c:19:15: warning: array subscript is above array bounds [-Warray-bounds]
curr = a[ix++];
^
 t.c:19:15: warning: array subscript is above array bounds [-Warray-bounds]
 
 Obivously here unroller does not know that bv_ix is at least 1


[Bug c++/55639] Partial nested template specialization leads to segmentation fault of g++

2012-12-10 Thread veksler at il dot ibm.com


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



Michael Veksler veksler at il dot ibm.com changed:



   What|Removed |Added



 CC||veksler at il dot ibm.com



--- Comment #2 from Michael Veksler veksler at il dot ibm.com 2012-12-10 
14:18:07 UTC ---

I have a possibly similar test case (can someone confirm if my case is a DUP?).





--- t.cpp --

template typename T

struct A {

   template int a

   struct B;

};



template typename T

struct AT::template B0 {

   int foo();

};



 end --



$ /opt/gcc4.7.2/bin/g++ t.cpp

t.cpp:8:23: internal compiler error: Segmentation fault

Please submit a full bug report,

with preprocessed source if appropriate.

See http://gcc.gnu.org/bugs.html for instructions.



$/opt/gcc4.7.2/bin/g++ -v

Using built-in specs.

COLLECT_GCC=/opt/gcc4.7.2/bin/g++

COLLECT_LTO_WRAPPER=/opt/gcc4.7.2/libexec/gcc/x86_64-unknown-linux-gnu/4.7.2/lto-wrapper

Target: x86_64-unknown-linux-gnu

Configured with: ../gcc-4.7.2/configure --prefix=/opt/gcc4.7.2

Thread model: posix

gcc version 4.7.2 (GCC)


[Bug c++/55639] Partial nested template specialization leads to segmentation fault of g++

2012-12-10 Thread paolo.carlini at oracle dot com


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



--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-12-10 
14:23:16 UTC ---

It is, it is.


[Bug other/54814] [4.8 Regression] ICE: unable to find a register to spill in class 'R0_REG'

2012-12-10 Thread gjl at gcc dot gnu.org


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



--- Comment #10 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-12-10 
14:33:29 UTC ---

(In reply to comment #9)

 Created attachment 28900 [details]

 Candidate patch

 

 Try this.



It works. There are no more spill in class 'R0_REG' ICEs wozj your patch

(atop trunk 194354)


[Bug lto/55466] [4.8 Regression] Revision 191466 destroyed DWARF debug info

2012-12-10 Thread hjl at gcc dot gnu.org


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



--- Comment #11 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2012-12-10 
14:44:00 UTC ---

Author: hjl

Date: Mon Dec 10 14:43:54 2012

New Revision: 194359



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=194359

Log:

Record the global variables if WPA isn't enabled



PR lto/55466

* lto-symtab.c (lto_symtab_merge_decls_1): Don't record the

prevailing variable.

* lto.c (lto_register_var_decl_in_symtab): Don't record static

variables.

(lto_main): Record the global variables if WPA isn't enabled.



Modified:

trunk/gcc/ChangeLog

trunk/gcc/lto-symtab.c

trunk/gcc/lto/lto.c


[Bug c++/55619] [4.8 Regression] Chromium build fails with: error: memory input is not directly addressable

2012-12-10 Thread jakub at gcc dot gnu.org


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



--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
14:48:00 UTC ---

Created attachment 28913

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28913

gcc48-pr55619.patch



Here is (untested) patch I had in mind.  But perhaps we'd need to also change

the C FE, because with this patch we no longer error on e.g.

void

f ()

{

  int x[4];

  __asm volatile ( : : m (x));

}



in C++, but still error out on it in C.  On the C side perhaps we should drop

the convert_p argument to c_parser_asm_operands, not do any conversion nor

c_fully_fold in there and instead do it in build_asm_stmt.


[Bug bootstrap/55640] New: --with-build-config=bootstrap-lto doesn't work with go

2012-12-10 Thread hjl.tools at gmail dot com


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



 Bug #: 55640

   Summary: --with-build-config=bootstrap-lto doesn't work with go

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: bootstrap

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: hjl.to...@gmail.com





On Linux/x86-64, when GCC was configured with



--enable-bootstrap --with-build-config=bootstrap-lto

--enable-languages=c,c++,fortran,java,lto,objc,obj-c++,go



I got



lto1: internal compiler error: in add_AT_specification, at

dwarf2out.c:3985

0x629ad9 add_AT_specification

/export/gnu/import/git/gcc/gcc/dwarf2out.c:3985

0x64dabb gen_variable_die

/export/gnu/import/git/gcc/gcc/dwarf2out.c:18327

0x65336b gen_decl_die

/export/gnu/import/git/gcc/gcc/dwarf2out.c:20033

0x653fcd dwarf2out_decl(tree_node*)

/export/gnu/import/git/gcc/gcc/dwarf2out.c:20348

0x6535f9 dwarf2out_global_decl

/export/gnu/import/git/gcc/gcc/dwarf2out.c:20083

0x997703 emit_debug_global_declarations(tree_node**, int)

/export/gnu/import/git/gcc/gcc/toplev.c:530

0x521aaa lto_write_globals

/export/gnu/import/git/gcc/gcc/lto/lto-lang.c:1067

Please submit a full bug report,

with preprocessed source if appropriate.

Please include the complete backtrace with any bug report.

See http://gcc.gnu.org/bugs.html for instructions.

make[6]: *** [/tmp/cc3yYR7d.ltrans4.ltrans.o] Error 1

lto-wrapper: make returned 2 exit status

/usr/local/x86_64-unknown-linux-gnu/bin/ld: lto-wrapper failed

collect2: error: ld returned 1 exit status

make[5]: *** [go1] Error 1


[Bug sanitizer/55561] TSAN crashes for Fortran

2012-12-10 Thread dvyukov at google dot com


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



--- Comment #12 from Dmitry Vyukov dvyukov at google dot com 2012-12-10 
15:07:11 UTC ---

(In reply to comment #11)

 (In reply to comment #10)

  Is is a correct report? Or false positive?

 

 This is a correct report for the testcase in comment #0 (as J is shared 
 between

 threads).



That's great that gcc tsan works for Fortran/OpenMP out of the box!



However, most likely Fortran/OpenMP will require some special handling to

produce better reports and catch more bugs (ThreadSanitizer reasons about

synchronization on pthread level, and not on OpenMP level). We won't have spare

cycles for that in near future.

I am working on ThreadSanitizer tasking API, I would appreciate if you review

it and comment on whether it will fit Fortran/OpenMP model (the work is

currently in very early what if stage).

The is the proposed public API:





// The tasking API is intended for programs that use finer-grained tasks

// on top of threads.  For such programs ThreadSanitizer can produce

// bad reports (namely, thread creation stack is useless), and catch less

// bugs because it does not understand task boundaries.

// The tasking API allows programs to annotate tasks to solve both problems.

// The API is intended to be flexible enough to support standard C++ tasks,

// OpenMP tasks as well as custom tasks.  It's also intended to be

// non-intrusive as possible to be used merely as annotations in existing code.



// Creation of a task.

// TASK is an arbitrary pointer that uniquely identifies the task.

// ThreadSanitizer stores any required internal info offline.

// FLAGS see below.

void __tsan_task_create(void *task, unsigned flags);



// Destruction of a task, frees all associated resources.

// After that the TASK pointer can be reused for another task.

void __tsan_task_destroy(void *task);



// Denotes beginning of execution of the TASK.

// When the function returns ThreadSanitizer effectively switches

// to another thread context associated with the task.

// Returns TASK.  This is needed because re-reading it even from stack variable

// can result in a data race with the worker thread (since we are already in

the

// task context).

// Tasks can be recursive, but must be strictly nested.

void* __tsan_task_begin(void *task);



// Denotes end of execution of the TASK.

// When the function returns ThreadSanitizer effectively switches

// back to worker thread context.

void __tsan_task_end(void *task);



// If set, ThreadSanitizer uses separate thread context for task execution.

// If not set, ThreadSanitizer can not detect any new data races but still

// produces better reports (namely, task creation stack).  A user may not want

// to set in two cases:

// 1. If task executor executes tasks in single thread (and that is the part

//of public contract).

// 2. If ThreadSanitizer produces false postives, but a user still wants

//to take advantage of better reports.

const unsigned __TSAN_TASK_FLAG_SYNC = 1  0;



// Denotes that the task is periodic, i.e. can be executed several times

// (intended for periodic timer tasks and IO rediness notifications).

// If set, then __tsan_task_begin()/__tsan_task_end() can be called several

// times.  After the last execution the task must be explicitly destroyed with

// __tsan_task_destroy().

const unsigned __TSAN_TASK_FLAG_PERIODIC = 1  1;



// Usage examples:

/*

1. Non-prdiodic task:



void ThreadPool::Add(Task *t) {

  __tsan_task_create(t, __TSAN_TASK_FLAG_SYNC);

  mutex_.lock();

  queue_.push_back(t);

  mutex_.unlock();  

}



void ThreadPool::WorkerThread() {

  for (;;) {

mutex_.lock();

while (queue_.empty())

  convvar_.wait(mutex_);

Task *t = queue_.pop_front();

mutex_.unlock();

t = __tsan_task_begin(t);

t-Execute();

__tsan_task_end(t);

__tsan_task_destroy(t);

delete t;

  }

}



This is semantically equivalent to:



void ThreadPool::Add(Task *t) {

  pthread_create(t-thread_, 0, Task::Execute, t);

}



2. Priodic task:



void ThreadPool::AddPeriodic(Task *t) {

  __tsan_task_create(t, __TSAN_TASK_FLAG_SYNC | __TSAN_TASK_FLAG_PERIODIC);

  AddPeriodicImpl(t, t-Period());

}



void ThreadPool::WorkerThread() {

  for (;;) {

Task* t = CheckPeriodicTasks();

if (t) {

  t = __tsan_task_begin(t);

  t-Execute();

  __tsan_task_end(t);

  AddPeriodicImpl(t, t-Period());

}

...

  }

}



void ThreadPool::CancelPeriodic(Task *t) {

  CancelPeriodicImpl(t);

  __tsan_task_destroy(t);

  delete t;

}



This is semantically equivalent to:



void ThreadPool::Add(Task *t) {

  pthread_create(t-thread_, 0, ExecutePeriodic, t);

}



void *ExecutePeriodic(Task *t) {

  while (!t-Cancelled()) {

sleep(t-Period());

t-Execute();

  }

}



void ThreadPool::CancelPeriodic(Task *t) {

  t-SetCancelled();

  pthread_join(t-thread_, 0);

  delete t;

}

*/


[Bug c/52991] attribute packed broken on mingw32?

2012-12-10 Thread ktietz at gcc dot gnu.org


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



Kai Tietz ktietz at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-12-10

 Ever Confirmed|0   |1



--- Comment #8 from Kai Tietz ktietz at gcc dot gnu.org 2012-12-10 15:13:37 
UTC ---

Yes, there is an issue about record/union attribute packed for ms_struct.



The following patch is fixing that for me, I just do regression-testing.



Index: stor-layout.c

===

--- stor-layout.c(Revision 194356)

+++ stor-layout.c(Arbeitskopie)

@@ -756,7 +756,10 @@ start_record_layout (tree t)

   /* If the type has a minimum specified alignment (via an attribute

  declaration, for example) use it -- otherwise, start with a

  one-byte alignment.  */

-  rli-record_align = MAX (BITS_PER_UNIT, TYPE_ALIGN (t));

+  if (TYPE_PACKED (t))

+rli-record_align = BITS_PER_UNIT;

+  else

+rli-record_align = MAX (BITS_PER_UNIT, TYPE_ALIGN (t));

   rli-unpacked_align = rli-record_align;

   rli-offset_align = MAX (rli-record_align, BIGGEST_ALIGNMENT);



@@ -952,15 +955,20 @@ update_alignment_for_field (record_layout_info rli

  meaningless.  */

   if (targetm.ms_bitfield_layout_p (rli-t))

 {

+  if (rli-t  TYPE_PACKED (rli-t)

+   (is_bitfield || !DECL_PACKED (field)

+  || DECL_SIZE (field) == NULL_TREE

+  || !integer_zerop (DECL_SIZE (field

+desired_align = BITS_PER_UNIT;

   /* Here, the alignment of the underlying type of a bitfield can

  affect the alignment of a record; even a zero-sized field

  can do this.  The alignment should be to the alignment of

  the type, except that for zero-size bitfields this only

  applies if there was an immediately prior, nonzero-size

  bitfield.  (That's the way it is, experimentally.) */

-  if ((!is_bitfield  !DECL_PACKED (field))

-  || ((DECL_SIZE (field) == NULL_TREE

-   || !integer_zerop (DECL_SIZE (field)))

+  else if ((!is_bitfield  !DECL_PACKED (field))

+   || ((DECL_SIZE (field) == NULL_TREE

+   || !integer_zerop (DECL_SIZE (field)))

   ? !DECL_PACKED (field)

   : (rli-prev_field

   DECL_BIT_FIELD_TYPE (rli-prev_field)

@@ -1414,7 +1422,13 @@ place_field (record_layout_info rli, tree field)

 }



   /* Now align (conventionally) for the new type.  */

-  type_align = TYPE_ALIGN (TREE_TYPE (field));

+  if (!TYPE_PACKED (rli-t))

+{

+  type_align = TYPE_ALIGN (TREE_TYPE (field));

+  if (DECL_PACKED (field))

+type_align = MIN (type_align, BITS_PER_UNIT);

+  

+}



   if (maximum_field_alignment != 0)

 type_align = MIN (type_align, maximum_field_alignment);


[Bug lto/55605] FAIL: gcc.c-torture/execute/builtins/20010124-1.c compilation, -O2 -flto -flto-partition=none

2012-12-10 Thread danglin at gcc dot gnu.org


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



John David Anglin danglin at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||FIXED



--- Comment #2 from John David Anglin danglin at gcc dot gnu.org 2012-12-10 
15:17:19 UTC ---

Fixed.


[Bug tree-optimization/55334] [4.8 Regression] mgrid regression (ipa-cp disables vectorization)

2012-12-10 Thread rguenth at gcc dot gnu.org


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



--- Comment #15 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
15:33:38 UTC ---

(In reply to comment #4)

 Hmm, this does not help.  The problem is indeed that we are not able to figure

 out that the accesses into subarrays of X are mutually independent.

 

 Martin, Michael, I think you are more familiar with MEM_REF, can you take a

 look?



Well, the accesses are lowered to like



(compute_affine_dependence

  stmt_a: _21 = MEM[(real(kind=8)[0:D.1986] *)x + 20247552B][_20];

  stmt_b: _23 = MEM[(real(kind=8)[0:D.1983] *)x][_20];

) - dependence analysis failed



this lowering of x.u vs. x.v (just guessing) does't mix well with

array-based accesses.  That is, we cannot translate this kind of accesses

to independently indexed dimensions as dependence analysis likes to have.

Another issue is that the number of iterations is not constant but



190: === get_loop_niters ===Analyzing # of iterations of loop 2

  exit condition [2, + , 1](no_overflow) != _2 + -1

  bounds on difference of bases: 0 ... 2147483644

  result:

# of iterations (unsigned int) _2 + 4294967293, bounded by 2147483644



so we cannot see that in the above case _20 would not run over to the

other sub-array of x.



The only way to retain this knowledge is not to lower the high-level form

x.u and x.v but to keep it (which in the end won't help because we

cannot reconstruct x.u[_20] or x.v[_20] in any valid way).  Or to

retain restrict information - which means _not_ doing IPA-CP.



So, if you can from



(compute_affine_dependence

  stmt_a: _21 = MEM[(real(kind=8)[0:D.1986] *)x + 20247552B][_20];

  stmt_b: _23 = MEM[(real(kind=8)[0:D.1983] *)x][_20];

) - dependence analysis failed



prove that the base addresses (MEM[(real(kind=8)[0:D.1986] *)x + 20247552B]

and MEM[(real(kind=8)[0:D.1983] *)x]) are different objects then

initialize_data_dependence_relation can compute the dependence and all

would be fine.  refs_may_alias_p would be the thing to fix to make

them not alias (as you can see the arrays have unknown upper bounds,

so it's not possible to prove they are not the same).


[Bug bootstrap/55640] --with-build-config=bootstrap-lto doesn't work with go

2012-12-10 Thread hjl.tools at gmail dot com


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



H.J. Lu hjl.tools at gmail dot com changed:



   What|Removed |Added



 Status|UNCONFIRMED |RESOLVED

 Resolution||WORKSFORME

   Target Milestone|--- |4.8.0



--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2012-12-10 15:37:32 
UTC ---

Fixed as of revision 194359.


[Bug sanitizer/55561] TSAN crashes for Fortran

2012-12-10 Thread Joost.VandeVondele at mat dot ethz.ch


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



--- Comment #13 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
2012-12-10 15:55:50 UTC ---

(In reply to comment #12)

 That's great that gcc tsan works for Fortran/OpenMP out of the box!



I'm afraid it yields false positives. Something like this is supposed to be OK

OMP-wise (and gives the right result in 1 repetitions) but produces

warnings.



 cat test.f90 

INTEGER, PARAMETER :: N=10

INTEGER :: data(N)



!$OMP PARALLEL DO

DO j=1,N

  data(j)=j

ENDDO



!$OMP PARALLEL DO

DO j=N,1,-1

  data(j)=data(j)-j

ENDDO



IF (ANY(data.NE.0)) CALL abort()



END



 gfortran -fsanitize=thread -O1 -g -fopenmp -fPIC -pie test.f90 ; ./a.out

==

WARNING: ThreadSanitizer: data race (pid=18871)





 However, most likely Fortran/OpenMP will require some special handling to

 produce better reports and catch more bugs (ThreadSanitizer reasons about

 synchronization on pthread level, and not on OpenMP level). We won't have 
 spare

 cycles for that in near future.

 I am working on ThreadSanitizer tasking API, I would appreciate if you review

 it and comment on whether it will fit Fortran/OpenMP model (the work is

 currently in very early what if stage).



I'm sure there are knowledgeable people reading the gcc list... posting this

text there seems like a good idea.


[Bug tree-optimization/55079] [4.8 regression] false positive -Warray-bounds (also seen at -O3 bootstrap)

2012-12-10 Thread hubicka at ucw dot cz


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



--- Comment #14 from Jan Hubicka hubicka at ucw dot cz 2012-12-10 16:26:40 
UTC ---

 

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

 

 --- Comment #13 from Richard Biener rguenth at gcc dot gnu.org 2012-12-10 
 14:14:07 UTC ---

 (In reply to comment #9)

  This is reduced testcase from gcov.c

  int a[8];

  int

  t (void)

  {

int ix = 0;

int k;

int b = 0;

int curr = 0;

for (k = 0; k  2; k++)

  {

b = ix * 32;

curr = a[ix++];

if (!(ix = 8))

 

 See below.

 

  abort ();

  

while (curr)

  {

b = ix * 32;

curr = a[ix++];

if (!(ix = 8))

 

 This is a test after the fact.  For ix == 8 we will still enter the

 next loop iteration (GCC can't know anything about 'curr') and thus

 access a[8] which is out-of-bounds.

 

 Fixing the tests to test  8 instead fixes the warnings.

 

 This testcase is invalid.



I fixed that in GCOV sources already, but it depends on the definition of

invalidness.  In general construct like ix = some_constant may come from some

unrelated stuff (macro expansion) and may be fully redundant in sane and valid

program. In that case waring after unrolling some_constant times there will be

out of bound access (without explicitely saying that unrolling is needed) is

undesirable IMO.  The loop has other exit that takes care of the proper bound.



Honza


[Bug debug/55641] New: debug info for the type of a reference declared with a typedef has spurious 'const'

2012-12-10 Thread dblaikie at gmail dot com


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



 Bug #: 55641

   Summary: debug info for the type of a reference declared with a

typedef has spurious 'const'

Classification: Unclassified

   Product: gcc

   Version: unknown

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: debug

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: dblai...@gmail.com





Example code:



  typedef int foo;

  int x;

  foo f(x);



under gdb run whatis f and the answer is const foo when it should be plain

foo (if you skip the typedef the answer is correctly int not int const

or any similarly strange mismatch)



Found in the GDB 7.5 test suite ( gdb.python/lib-types.exp ) - this is

positively tested for, but so far as I can imagine that's by accident, not

intent.


[Bug fortran/55633] [4.8 Regression] FAIL: gfortran.dg/g77/f90-intrinsic-bit.f -Os execution test

2012-12-10 Thread jakub at gcc dot gnu.org


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



--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
16:29:10 UTC ---

The test is really large, I guess it would be useful if you could try to reduce

the testcase as long as it still fails that BIT_SIZE(integer(8)) test.



Or can you step through the interesting part of the testcase and see where

things go wrong?  I've eyeballed the *.final assembly of the ma computation and

it looks ok to me.



ldi 0,%r19

ldi 0,%r20

ldi 126,%r31

ldi -1,%r28

ldi -1,%r29

L$0032:

copy %r19,%r21

copy %r20,%r22

addi 1,%r20,%r20

addc %r19,%r0,%r19

comiclr,= 0,%r21,%r0

b,n L$0029

comib, 0,%r21,L$0050

or %r28,%r29,%r23

comclr,= %r31,%r22,%r0

b,n L$0029

L$0050:

comib,=,n 0,%r23,L$0029

shd %r28,%r29,1,%r21

extru %r28,30,31,%r22

copy %r21,%r29

b L$0032

copy %r22,%r28

L$0029:

stw %r21,-240(%r30)

ldo -240(%r30),%r25

ldi 20,%r23

stw %r22,-236(%r30)



is the assembly I get for the interesting part.  So, if you have the same, can

you step through this and see why you get 0 in %r21/%r22?


[Bug debug/55641] debug info for the type of a reference declared with a typedef has spurious 'const'

2012-12-10 Thread dblaikie at gmail dot com


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



--- Comment #1 from David Blaikie dblaikie at gmail dot com 2012-12-10 
16:29:47 UTC ---

Oh, and, tellingly, GCC (7.5) emits a DW_TAG_const_type in the DWARF data that

Clang does not emit, which seems to be the relevant difference here.


[Bug lto/55466] [4.8 Regression] Revision 191466 destroyed DWARF debug info

2012-12-10 Thread hjl.tools at gmail dot com


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



H.J. Lu hjl.tools at gmail dot com changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #12 from H.J. Lu hjl.tools at gmail dot com 2012-12-10 16:39:40 
UTC ---

Fixed.


[Bug c++/49372] Temporaries evaluated for arguments of a default constructors of array elements not destructed properly (?)

2012-12-10 Thread schaub.johannes at googlemail dot com


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



--- Comment #5 from Johannes Schaub schaub.johannes at googlemail dot com 
2012-12-10 16:42:59 UTC ---

(In reply to comment #4)

 (In reply to comment #3)

  Kai, I don't think anyone disputes that B's constructor is called, the 
  question

  is why 12.2/4 doesn't apply.

 

 Well, we have here 5.2.2 which says A function call is a postfix expression

 followed by parentheses containing a possibly empty, comma-separated list of

 expressions which constitute the arguments to the function.

 

 But we don't have here an explicit function-call.  And an implicit call is not

 an expression, hence, not a part of any full expression, and so we don't have 
 a

 sequence-point.  Not sure if specification intended it differently, but by its

 current wording I would assume that current implementation is right.

 



See 1.9p10. The implicit function call is considered to be an expression.


[Bug ada/55243] STAMP variable is not defined in t-avr

2012-12-10 Thread gjl at gcc dot gnu.org


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



--- Comment #11 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-12-10 
17:00:50 UTC ---

(In reply to comment #10)

 I don't know anything about the gnat build system and when I build avr-gcc I

 configure for C/C++.

 

 What's odd is that even if GCC is only configured for C/C++, I get messages

 about a missing gnatls.  For example, running make in the gcc subdirectory of

 build prints

 

 $build/gcc make

 /bin/sh: gnatls: command not found

 

 The build itself works fine but that message is confusing and shows that

 something is wrong with the gnat build system.

 

 gnat stuff should not be needed of the compiler is not configured for ada,

 should it?

 

 Probably, but if nobody really investigates, nothing will ever be fixed.



$(build)/gcc/Makefile reads:





# per-language makefile fragments

ifneq ($(LANG_MAKEFRAGS),)

include $(LANG_MAKEFRAGS)

endif



# target and host overrides must follow the per-language makefile fragments

# so they can override or augment language-specific variables



# target overrides

ifneq ($(tmake_file),)

include $(tmake_file)

endif





LANG_MAKEFRAGS contains $(srcdir)/ada/gcc-interface/Make-lang.in which in turn

contains:



# put the host RTS dir first in the PATH to hide the default runtime

# files that are among the sources

RTS_DIR:=$(strip $(subst \,/,$(shell gnatls -v | grep adalib )))



which means gnatls is called no matter if it exists or not.



(In reply to comment #6)



 The GNAT tools are for the host, they have nothing to do with multilibs.

  How come the s-avr-mlib Makefile rule gets invoked here?



The Makefile includes $(tmake_file) and thus

$(srcdir)/gcc/config/avr/t-multilib which is auto-generated and needs $(STAMP)

to build.



AFAIK make resolves its includes before it starts building the targets.


[Bug sanitizer/55482] gfortran.dg/class_array_7.f03 execution failures with -fsanitize=address

2012-12-10 Thread howarth at nitro dot med.uc.edu


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



Jack Howarth howarth at nitro dot med.uc.edu changed:



   What|Removed |Added



 Target|x86_64-apple-darwin12   |x86_64-apple-darwin12,x86_6

   ||4-unknown-linux-gnu

   Host|x86_64-apple-darwin12   |x86_64-apple-darwin12,x86_6

   ||4-unknown-linux-gnu

  Build|x86_64-apple-darwin12   |x86_64-apple-darwin12,x86_6

   ||4-unknown-linux-gnu



--- Comment #2 from Jack Howarth howarth at nitro dot med.uc.edu 2012-12-10 
17:14:57 UTC ---

Also seen on x86_64 Fedora 15.


[Bug target/28586] thowing exception before main() leads to crash on AIX

2012-12-10 Thread dje at gcc dot gnu.org


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



David Edelsohn dje at gcc dot gnu.org changed:



   What|Removed |Added



 Target|powerpc-aix |powerpc-ibm-aix

   Last reconfirmed|2006-08-03 18:48:29 |2012-12-10 18:48:29

   Host||powerpc-ibm-aix

  Build||powerpc-ibm-aix



--- Comment #2 from David Edelsohn dje at gcc dot gnu.org 2012-12-10 17:17:07 
UTC ---

This probably is related to static constructors of dependent libraries not

running before constructors in the application because it is trying to throw an

exception from a static constructor.


[Bug middle-end/55642] New: [4.8 Regression] Invalid thumb code generated (thumb conditional instruction should be in IT block)

2012-12-10 Thread Bernhard.Rosenkranzer at linaro dot org


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



 Bug #: 55642

   Summary: [4.8 Regression] Invalid thumb code generated (thumb

conditional instruction should be in IT block)

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: middle-end

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: bernhard.rosenkran...@linaro.org





Created attachment 28914

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28914

Test case (not yet reduced)



Building the attached preprocessed code with -std=gnu++11 -O2 -mthumb

-mcpu=cortex-a9 results in errors from the assembler:



[bero@localhost grouper-4.2.1-gcc-4.8 (master)]$

/opt/android-toolchain-trunk/bin/arm-linux-androideabi-g++ -std=gnu++11 -o

ARMAsmParser.o -O2 -mthumb  -mcpu=cortex-a9 -c ARMAsmParser.i 

/tmp/ccKYPdeC.s: Assembler messages:

/tmp/ccKYPdeC.s:7949: Error: thumb conditional instruction should be in IT

block -- `subne r2,r2,r3,asr#31'

/tmp/ccKYPdeC.s:21058: Error: thumb conditional instruction should be in IT

block -- `subne r2,r2,r3,asr#31'


[Bug debug/55641] debug info for the type of a reference declared with a typedef has spurious 'const'

2012-12-10 Thread redi at gcc dot gnu.org


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



--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2012-12-10 
17:24:15 UTC ---

Which version of GCC? (there is no 7.5)


[Bug debug/55641] debug info for the type of a reference declared with a typedef has spurious 'const'

2012-12-10 Thread redi at gcc dot gnu.org


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



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-12-10

Version|unknown |4.7.2

 Ever Confirmed|0   |1



--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2012-12-10 
17:42:56 UTC ---

confirmed with various versions from 4.1 to 4.7


[Bug rtl-optimization/55193] [4.8 Regression] ICE in in simplify_const_unary_operation, at simplify-rtx.c:1659

2012-12-10 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org



--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
17:44:57 UTC ---

Can't be reproduced starting with

http://gcc.gnu.org/viewcvs?root=gccview=revrev=193157

(made latent on this testcase), but if I revert the patch I can reproduce it

easily.

The bug is in lra-constraints.c, loc_equivalence_change_p really doesn't work

well on DEBUG_INSNs.


[Bug rtl-optimization/55193] [4.8 Regression] ICE in in simplify_const_unary_operation, at simplify-rtx.c:1659

2012-12-10 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org

   |gnu.org |



--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-12-10 
17:53:01 UTC ---

Created attachment 28915

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28915

gcc48-pr55193.patch



Untested fix.  For changes to DEBUG_INSNs, generally simplify_replace_fn_rtx

is the best thing, it takes care of simplifying everything that is needed, both

for the cases where something changes from non-VOIDmode into VOIDmode (then

simplification is required; e.g. as on this testcase (zero_extend:DI (reg:SI

eax) 0) where eax is replaced by (const_int 0)), and a nice thing to have

otherwise.


[Bug ada/55243] STAMP variable is not defined in t-avr

2012-12-10 Thread ebotcazou at gcc dot gnu.org


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



--- Comment #12 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-12-10 
18:00:20 UTC ---

 LANG_MAKEFRAGS contains $(srcdir)/ada/gcc-interface/Make-lang.in which in turn

 contains:

 

 # put the host RTS dir first in the PATH to hide the default runtime

 # files that are among the sources

 RTS_DIR:=$(strip $(subst \,/,$(shell gnatls -v | grep adalib )))

 

 which means gnatls is called no matter if it exists or not.



OK, thanks for investigating.  Tentative patch for ada/ to be attached.



 The Makefile includes $(tmake_file) and thus

 $(srcdir)/gcc/config/avr/t-multilib which is auto-generated and needs $(STAMP)

 to build.

 

 AFAIK make resolves its includes before it starts building the targets.



So t-multilib is autogenerated in the source tree during the build???


[Bug ada/55243] STAMP variable is not defined in t-avr

2012-12-10 Thread ebotcazou at gcc dot gnu.org


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



--- Comment #13 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-12-10 
18:02:19 UTC ---

Created attachment 28916

  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28916

Tentative fix for gnatls issue



To be applied in the ada/ source directory.


[Bug other/54324] [4.8 Regression] GCC install document does not list minimum required g++ version

2012-12-10 Thread aldyh at gcc dot gnu.org


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



Aldy Hernandez aldyh at gcc dot gnu.org changed:



   What|Removed |Added



 CC||aldyh at gcc dot gnu.org

 AssignedTo|unassigned at gcc dot   |aldyh at gcc dot gnu.org

   |gnu.org |



--- Comment #2 from Aldy Hernandez aldyh at gcc dot gnu.org 2012-12-10 
18:11:13 UTC ---

I'll investigate a bit further.


[Bug middle-end/55481] [4.8 regression] -O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test

2012-12-10 Thread rakdver at gcc dot gnu.org


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



--- Comment #14 from Zdenek Dvorak rakdver at gcc dot gnu.org 2012-12-10 
18:19:07 UTC ---

This is a problem in rewrite_use_nonlinear_expr, which should leave the

statement defining the biv untouched (as suggested in the comment at its

beginning) but does not.  Investigating further...


[Bug sanitizer/55484] gfortran.dg/realloc_on_assign_5.f03 execution failures with -fsanitize=address

2012-12-10 Thread howarth at nitro dot med.uc.edu


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



Jack Howarth howarth at nitro dot med.uc.edu changed:



   What|Removed |Added



 Target|x86_64-apple-darwin12   |x86_64-apple-darwin12,x86_6

   ||4-unknown-linux-gnu

   Host|x86_64-apple-darwin12   |x86_64-apple-darwin12,x86_6

   ||4-unknown-linux-gnu

  Build|x86_64-apple-darwin12   |x86_64-apple-darwin12,x86_6

   ||4-unknown-linux-gnu



--- Comment #2 from Jack Howarth howarth at nitro dot med.uc.edu 2012-12-10 
18:20:47 UTC ---

Also seen on x86_64 Fedora 15.


[Bug ada/55243] STAMP variable is not defined in t-avr

2012-12-10 Thread gjl at gcc dot gnu.org


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



--- Comment #14 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-12-10 
18:25:19 UTC ---

(In reply to comment #12)



 So t-multilib is autogenerated in the source tree during the build???



Jepp.  Top $(srcdir)/gcc/config/avr/t-multilib reads:





# Auto-generated Makefile Snip

# Generated by: ./gcc/config/avr/genmultilib.awk

# Generated from  : ./gcc/config/avr/avr-mcus.def

# Used by : tmake_file from Makefile and genmultilib





Rationale is that avr-gcc supports an, IMHO, insane number of -mmcu=device. 

In order to keep various parts of the compiler in sync, some bits are

auto-generated, amongst them documentation, t-multilib and .opt parts.



Procedure is a move-if-change scheme, i.e. the auto-generated files are in the

repository and the procedure to build them is similar to building configure

from configure.ac and then putting both configure.ac /and/ configure into the

repo.



However, the auto-build runs automatically and thus needs some tools, namely 

$(SHELL), $(AWK), $(CC_FOR_BUILD), $(RUN_GEN) and $(STAMP).


  1   2   >