[Bug c++/55513] [4.7/4.8 Regression] Incorrect snprintf folding when building with -std=c++0x

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #9 from Jason Merrill  2012-12-07 
05:21:01 UTC ---

(In reply to comment #8)

>/* Allow any built-in function; if the expansion

>   isn't constant, we'll deal with that then.  */

>&& !is_builtin_fn (fun))



The problem seems to be in the dealing with it "then";

cxx_eval_builtin_function_call needs to actually check whether folding the call

produces a constant or not.


[Bug c++/55249] [4.6/4.7/4.8 Regression] Multiple copy constructors for template class lead to link errors

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #11 from Jason Merrill  2012-12-07 
05:15:29 UTC ---

Fixed.


[Bug c++/54325] [4.7/4.8 Regression] C++11 uniform initialization syntax for argument-less abstract base class constructor fails

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED

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

   |gnu.org |



--- Comment #9 from Jason Merrill  2012-12-07 
05:15:03 UTC ---

Fixed.


[Bug c++/55058] [4.7/4.8 Regression] Unexpected invalid type conversion error

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED

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

   |gnu.org |



--- Comment #10 from Jason Merrill  2012-12-07 
05:15:08 UTC ---

Fixed.


[Bug c++/55245] [4.6 Regression] Compiler segfault when compiling a small test case

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED

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

   |gnu.org |



--- Comment #10 from Jason Merrill  2012-12-07 
05:14:34 UTC ---

Fix applied for 4.6.4 as well.


[Bug c++/54325] [4.7/4.8 Regression] C++11 uniform initialization syntax for argument-less abstract base class constructor fails

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #8 from Jason Merrill  2012-12-07 
05:13:42 UTC ---

Author: jason

Date: Fri Dec  7 05:13:33 2012

New Revision: 194290



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194290

Log:

PR c++/54325

* tree.c (build_aggr_init_expr): Don't check for abstract class.



Added:

branches/gcc-4_7-branch/gcc/testsuite/g++.dg/cpp0x/initlist-pure.C

Modified:

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

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

branches/gcc-4_7-branch/gcc/testsuite/g++.dg/other/abstract3.C


[Bug c++/55058] [4.7/4.8 Regression] Unexpected invalid type conversion error

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #9 from Jason Merrill  2012-12-07 
05:13:30 UTC ---

Author: jason

Date: Fri Dec  7 05:13:22 2012

New Revision: 194289



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194289

Log:

PR c++/55058

* pt.c (tsubst): Keep the quals when looking through a typedef.



Added:

branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/typedef40.C

Modified:

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

branches/gcc-4_7-branch/gcc/cp/pt.c


[Bug c++/55249] [4.6/4.7/4.8 Regression] Multiple copy constructors for template class lead to link errors

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #10 from Jason Merrill  2012-12-07 
05:13:20 UTC ---

Author: jason

Date: Fri Dec  7 05:13:11 2012

New Revision: 194288



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194288

Log:

PR c++/55249

* tree.c (build_vec_init_elt): Use the type of the initializer.



Added:

branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/array25.C

Modified:

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

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


[Bug c++/55032] [4.7/4.8 Regression] Internal compiler error: in strip_typedefs, at cp/tree.c:1199

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #5 from Jason Merrill  2012-12-07 
04:58:56 UTC ---

Author: jason

Date: Fri Dec  7 04:58:45 2012

New Revision: 194286



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194286

Log:

PR c++/55032

* tree.c (build_array_type_1): Re-layout if we found it in the

hash table.



Added:

branches/gcc-4_6-branch/gcc/testsuite/g++.dg/template/array24.C

Modified:

branches/gcc-4_6-branch/gcc/ChangeLog

branches/gcc-4_6-branch/gcc/tree.c


[Bug c++/55249] [4.6/4.7/4.8 Regression] Multiple copy constructors for template class lead to link errors

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #9 from Jason Merrill  2012-12-07 
04:58:41 UTC ---

Author: jason

Date: Fri Dec  7 04:58:32 2012

New Revision: 194285



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194285

Log:

PR c++/55249

* tree.c (build_vec_init_elt): Use the type of the initializer.



Added:

branches/gcc-4_6-branch/gcc/testsuite/g++.dg/template/array25.C

Modified:

branches/gcc-4_6-branch/gcc/cp/ChangeLog

branches/gcc-4_6-branch/gcc/cp/tree.c


[Bug c++/54325] [4.7/4.8 Regression] C++11 uniform initialization syntax for argument-less abstract base class constructor fails

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #7 from Jason Merrill  2012-12-07 
04:54:42 UTC ---

Author: jason

Date: Fri Dec  7 04:54:27 2012

New Revision: 194284



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194284

Log:

PR c++/54325

* tree.c (build_aggr_init_expr): Don't check for abstract class.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/initlist-pure.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/tree.c

trunk/gcc/testsuite/g++.dg/other/abstract3.C


[Bug c++/55245] [4.6 Regression] Compiler segfault when compiling a small test case

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #9 from Jason Merrill  2012-12-07 
04:54:23 UTC ---

Author: jason

Date: Fri Dec  7 04:54:12 2012

New Revision: 194283



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194283

Log:

add PR 55245 marker



Modified:

trunk/gcc/ChangeLog


[Bug c++/55058] [4.7/4.8 Regression] Unexpected invalid type conversion error

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #8 from Jason Merrill  2012-12-07 
04:54:12 UTC ---

Author: jason

Date: Fri Dec  7 04:53:59 2012

New Revision: 194282



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194282

Log:

PR c++/55058

* pt.c (tsubst): Keep the quals when looking through a typedef.



Added:

trunk/gcc/testsuite/g++.dg/template/typedef40.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/pt.c


[Bug c++/55249] [4.6/4.7/4.8 Regression] Multiple copy constructors for template class lead to link errors

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #8 from Jason Merrill  2012-12-07 
04:53:55 UTC ---

Author: jason

Date: Fri Dec  7 04:53:46 2012

New Revision: 194281



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194281

Log:

PR c++/55249

* tree.c (build_vec_init_elt): Use the type of the initializer.



Added:

trunk/gcc/testsuite/g++.dg/template/array25.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/tree.c


[Bug middle-end/55597] [4.8 Regression] internal compiler error: in plus_constant, at explow.c:88

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


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



H.J. Lu  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #14 from H.J. Lu  2012-12-07 03:44:21 
UTC ---

Fixed.


[Bug gcov-profile/49484] gcov crash if two(or more) forks happen at the same time

2012-12-06 Thread asharif at gcc dot gnu.org


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



--- Comment #27 from asharif at gcc dot gnu.org 2012-12-07 02:35:42 UTC ---

Author: asharif

Date: Fri Dec  7 02:35:37 2012

New Revision: 194279



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194279

Log:

2012-12-03  Ahmad Sharif 



Backport r185231 from trunk.



2012-03-12  Richard Guenther  



* gthr.h (__GTHREAD_MUTEX_INIT_FUNCTION): Adjust specification.

* gthr-posix.h (__GTHREAD_MUTEX_INIT_FUNCTION): Define.

(__gthread_mutex_init_function): New function.

* gthr-single.h (__GTHREAD_MUTEX_INIT_FUNCTION): Define.



PR gcov/49484

* libgcov.c: Include gthr.h.

(__gcov_flush_mx): New global variable.

(init_mx, init_mx_once): New functions.

(__gcov_flush): Protect self with a mutex.

(__gcov_fork): Re-initialize mutex after forking.

* unwind-dw2-fde.c: Change condition under which to use

__GTHREAD_MUTEX_INIT_FUNCTION.





Modified:

branches/google/gcc-4_7-mobile/   (props changed)

branches/google/gcc-4_7-mobile/gcc/   (props changed)

branches/google/gcc-4_7-mobile/gcc/testsuite/gcc.target/powerpc/ppc-round.c

  (props changed)

branches/google/gcc-4_7-mobile/libgcc/ChangeLog.google-4_7

branches/google/gcc-4_7-mobile/libgcc/gthr-posix.h

branches/google/gcc-4_7-mobile/libgcc/gthr-single.h

branches/google/gcc-4_7-mobile/libgcc/gthr.h

branches/google/gcc-4_7-mobile/libgcc/libgcov.c

branches/google/gcc-4_7-mobile/libgcc/unwind-dw2-fde.c

branches/google/gcc-4_7-mobile/libjava/classpath/   (props changed)



Propchange: branches/google/gcc-4_7-mobile/

('svn:mergeinfo' modified)



Propchange: branches/google/gcc-4_7-mobile/gcc/

('svn:mergeinfo' modified)



Propchange:

branches/google/gcc-4_7-mobile/gcc/testsuite/gcc.target/powerpc/ppc-round.c

('svn:mergeinfo' modified)



Propchange: branches/google/gcc-4_7-mobile/libjava/classpath/

('svn:mergeinfo' modified)


[Bug ada/52110] s-osinte.ads:447:09: "clockid_t" conflicts with declaration at line 194

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


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



--- Comment #13 from John David Anglin  2012-12-07 
00:59:58 UTC ---

Volatile fails for the following reason:



/xxx/gnu/gcc/objdir/./gcc/xgcc -B/xxx/gnu/gcc/objdir/./gcc/

-B/opt/gnu/gcc/gcc-4.8/hppa1.1-hp-hpux10.20/bin/

-B/opt/gnu/gcc/gcc-4.8/hppa1.1-hp-hpux10.20/lib/ -isystem

/opt/gnu/gcc/gcc-4.8/hppa1.1-hp-hpux10.20/include -isystem

/opt/gnu/gcc/gcc-4.8/hppa1.1-hp-hpux10.20/sys-include-c -g -O2   -W -Wall

-gnatpg -nostdinc   s-taprop.adb -o s-taprop.o

s-taprop.adb:818:10: access to volatile object cannot yield

access-to-non-volatile type

s-taprop.adb:826:23: access to volatile object cannot yield

access-to-non-volatile type


[Bug rtl-optimization/52573] [4.6/4.7/4.8 regression] regrename creates overlapping register allocations for output operands

2012-12-06 Thread aoliva at gcc dot gnu.org


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



Alexandre Oliva  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-12-07

 CC||aoliva at gcc dot gnu.org,

   ||zadeck at naturalbridge dot

   ||com

 Ever Confirmed|0   |1



--- Comment #5 from Alexandre Oliva  2012-12-07 
00:14:12 UTC ---

I've looked a bit into this.  The code in df-problems.c (see bug 32749) is at

least inconsistent.  df_note_bb_compute is supposed to set do_not_gen at the

def, so that we emit the REG_UNUSED but not the REG_DEAD.  However, it does not

set do_not_gen for clobbers (may or must), even though it emits the note.  Oh,

and it only emits the note if it's not a call;for calls, the REG_UNUSED note is

not emitted for clobbers (I wonder why that is), and we still fail to set

do_not_gen, so we emit the REG_DEAD for the parallel use anyway.



Kenny, it seems to me that we should set do_not_gen regardless of any clobber

flags, because the whole (documented) point of do_not_gen is to avoid emitting

a REG_DEAD for a parallel use, and we should make the REG_UNUSED note emission

consistently conditional on clobbers.  Does it sound like this would work?


[Bug debug/54774] insufficient debug info for strong typed enum

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


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



Paolo Carlini  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-12-07

 Ever Confirmed|0   |1



--- Comment #5 from Paolo Carlini  2012-12-07 
00:11:10 UTC ---

Confirming.


[Bug target/53359] [4.8 regression] undefined reference to `__gnu_cxx::__numeric_traits_integer::__min'

2012-12-06 Thread sch...@linux-m68k.org


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



--- Comment #6 from Andreas Schwab  2012-12-07 00:01:40 
UTC ---

Created attachment 28889

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

Preprocessed testcase


[Bug fortran/55395] [4.8 Regression] libgfortran bootstrap failure on powerpc-linux-gnu and arm-linux-gnueabi

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


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



Jakub Jelinek  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #14 from Jakub Jelinek  2012-12-07 
00:01:41 UTC ---

Fixed.


[Bug target/55610] cc1 is calling munmap() on part of itself on darwin

2012-12-06 Thread mrs at gcc dot gnu.org


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



m...@gcc.gnu.org  changed:



   What|Removed |Added



 CC||mrs at gcc dot gnu.org



--- Comment #3 from mrs at gcc dot gnu.org  2012-12-06 
23:58:07 UTC ---

We don't need to do that.  We need to not run the unmap call in host-darwin.c

when we dlopen things in the compiler; for example, dragonegg.  Then, we need

to test this and see if the bug is fixed.  You can do that by adding in a #if 0

#end around the unmap call.


[Bug c++/55245] [4.6 Regression] Compiler segfault when compiling a small test case

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 CC||jason at gcc dot gnu.org

Summary|[4.6/4.7/4.8 Regression]|[4.6 Regression] Compiler

   |Compiler segfault when  |segfault when compiling a

   |compiling a small test case |small test case



--- Comment #8 from Jason Merrill  2012-12-06 
22:18:18 UTC ---

Fixed for 4.7 and 4.8 by patch for bug 55032.


[Bug middle-end/55597] [4.8 Regression] internal compiler error: in plus_constant, at explow.c:88

2012-12-06 Thread uros at gcc dot gnu.org


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



--- Comment #13 from uros at gcc dot gnu.org 2012-12-06 22:05:25 UTC ---

Author: uros

Date: Thu Dec  6 22:05:21 2012

New Revision: 194274



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194274

Log:

PR target/55597

* config/i386/i386.c (legitimize_tls_address): Zero-extend x to Pmode,

before using it as insn or call equivalent.



testsuite/ChangeLog:



PR target/55597

* gcc.target/i386/pr55597.c: New test.





Added:

trunk/gcc/testsuite/gcc.target/i386/pr55597.c

Modified:

trunk/gcc/ChangeLog

trunk/gcc/config/i386/i386.c

trunk/gcc/testsuite/ChangeLog


[Bug fortran/55593] [4.8 Regression] Bogus error on passing DO LOOP variable

2012-12-06 Thread tkoenig at gcc dot gnu.org


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



--- Comment #2 from Thomas Koenig  2012-12-06 
22:02:01 UTC ---

(In reply to comment #1)

> From frontend-passes.c's doloop_code

> 

> case EXEC_CALL:

>   f = co->symtree->n.sym->formal;

> 

> I think one should use in this case

>   co->value.function.esym

> 

> I believe co->value.function.* should always exist,



Not for a subroutine call ;-)



The following patch seems to work:



Index: frontend-passes.c

===

--- frontend-passes.c   (Revision 193793)

+++ frontend-passes.c   (Arbeitskopie)

@@ -1277,8 +1277,12 @@ doloop_code (gfc_code **c, int *walk_subtrees ATTR

   break;



 case EXEC_CALL:

-  f = co->symtree->n.sym->formal;



+  if (co->resolved_sym == NULL)

+   break;

+

+  f = co->resolved_sym->formal;

+

   /* Withot a formal arglist, there is only unknown INTENT,

 which we don't check for.  */

   if (f == NULL)



> given that it comes after

> resolution (if not, the symtree can be used as fall back). In any case, one

> needs to be careful if it isn't an "isym" instead.



This is checked for in the code already.



I could not come up with a test case which fails for a function, so I don't

think this regression also applies to generic function calls.


[Bug bootstrap/54926] [4.8 Regression] Bootstrap comparison failure for various files in libbacktrace

2012-12-06 Thread aoliva at gcc dot gnu.org


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



Alexandre Oliva  changed:



   What|Removed |Added



 CC||aoliva at gcc dot gnu.org



--- Comment #8 from Alexandre Oliva  2012-12-06 
21:45:02 UTC ---

Jakub, the configury patch is ok, thanks.


[Bug target/53359] [4.8 regression] undefined reference to `__gnu_cxx::__numeric_traits_integer::__min'

2012-12-06 Thread aoliva at gcc dot gnu.org


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



Alexandre Oliva  changed:



   What|Removed |Added



 CC||aoliva at gcc dot gnu.org



--- Comment #5 from Alexandre Oliva  2012-12-06 
21:39:50 UTC ---

I have a hunch that the patch for bug 53952 might fix this, if this happens to

be another case of variables that are not addressable being SRAed or otherwise

transformed in ways that makes mudflap marked as addressable and checked when

they didn't even have to be output in the first place.  A preprocessed testcase

would help me test this theory more immediately with a cross compiler, rather

than a full cross toolchain.


[Bug libmudflap/53952] [4.8 Regression] FAIL: libmudflap.c++/pass55-frag.cxx ( -O[123]) execution test

2012-12-06 Thread aoliva at gcc dot gnu.org


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



Alexandre Oliva  changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |



--- Comment #4 from Alexandre Oliva  2012-12-06 
21:26:47 UTC ---

Mine.  Updated patch posted here:

http://gcc.gnu.org/ml/gcc-patches/2012-12/msg00371.html


[Bug c++/55513] [4.7/4.8 Regression] Incorrect snprintf folding when building with -std=c++0x

2012-12-06 Thread aldyh at gcc dot gnu.org


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



--- Comment #8 from Aldy Hernandez  2012-12-06 
21:06:29 UTC ---

After Jason's patch here (trunk@177066):



PR c++/49813

* semantics.c (potential_constant_expression_1): Allow any builtin.

(morally_constexpr_builtin_function_p): Remove.



It seems we return true for any built-in in potential_constant_expression_1. 

This means that check_initializer->store_init_value->maybe_constant_init will

chop off the built-in side of a COMPOUND_EXPR when setting a DECL_INITIAL,

transforming:



(COMPOUND_EXPR (CALL_EXPR built-in) INTEGER_CST)



into



INTEGER_CST



Since potential_constant_expression_1 returns true for any built-in, we end up

removing even a __builtin_exit from code like this:



const int t = (__builtin_exit(0), 777);



Jason, is this by design? Should we not limit the conditional here further?:



   /* Allow any built-in function; if the expansion

  isn't constant, we'll deal with that then.  */

   && !is_builtin_fn (fun))


[Bug rtl-optimization/55611] New: Operand swapping for commutative operators

2012-12-06 Thread glisse at gcc dot gnu.org


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



 Bug #: 55611

   Summary: Operand swapping for commutative operators

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: enhancement

  Priority: P3

 Component: rtl-optimization

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

ReportedBy: gli...@gcc.gnu.org





Hello,



this PR is here to remember this discussion on IRC. It started because I

noticed that a patch I wrote for bug 55583 failed when the operands of | were

not given in the right order, but is a more general question about how to avoid

a combinatorial explosion of the number of patterns involving commutative

operators. Two promising directions: put a stronger priority order on rtx

(canonicalize more), or when priorities are the same and one order doesn't

match, try the other one.



 Hello. It seems that in RTL we don't make a very strong effort to swap

operands of commutative operators, we only swap when one is obviously more

complicated than the other.

 For things like an OR of a left shift and a right shift, are we

supposed to have 2 patterns in .md files?

 there is always a canonical form

 but I'm not sure that such combine helping pattern is really the

correct approach

 if I compile C code (a<<2)|(b>>30) and (b>>30)|(a<<2) I don't get the

same pattern, so it isn't canonical

 richi: in this case I believe they have the same operand priority, so

there is no canonical order

 we could of course change that

 I wonder whether an arbitrary order would help?

 generally not, but for avoiding pattern explosion yes

 it can't be done in commutative_operand_precedence (rtx op)

 because it doesn't see both operands

 but we can assign a different precedence for rshift vs lshift?

 and there are numerous commutative_operand_precedence callers, so

changing it just in swap_commutative_operands_p might not be enough

 can't we just assign a different number to left shift, right shift,

etc? (their enum value?)

 marcg: I'm afraid it would penalize code unnecessarily

 marcg: the only case you want to treat specially is if one operand is

left shift and one is right shift

 jakub: I'm not sure - why dont' we want canonical form of say a<<3 | (b

+ 1) as well?

 marcg: if you use different priority for <<, >> and the rest of binary

operations, why would you be swapping the operands?

 I don't really see how that would penalize code.

 Me neither.

 marcg: it can increase register pressure or similar (or decrease of

course), it is one further thing where it changes code from what user

originally wrote unnecessarily

 Although it might force a lot of trivial reordering in .md files, not

sure.

 ah, I see. So maybe find a way to only _try_ it and drop it if it

doesn't help.

 seems more complicated already :-(

 I think what makes more sense is that the combiner if both operands of

a commutative expression have the same precedence, if the original order

doesn't match, tries also the other order

 jakub: That's not pessimization in my book, but shuffling with unclear

effects. The solution to that problem, if it is one, is not to generally avoid

swapping operands, but instead to improve the register allocator for instance.

 jakub: that sounds reasonable

 jakub: though in general duplicates work (maybe only if RTX_CODE of the

ops is different)

 I think canonicalization as much as possible is better.

 we can simply have a special combine variant of the precedence

 in any case, not a 4.8 thing, if you change canonicalization, it might

take months to catch up in various backends

 thus make combine select a more canonical variant for matching patterns

 but not change the IL

 I bet the reason it's currently not implemented is not because somebody

conciously decided that it would shuffle too much, but rather simply because

nobody bothered until now, so it seems premature caution to worry about

potential performance effects.

 richi: Yes, we could. We could do many thing. The question is, why

should we?

 jakub: yes, of course not for 4.8.

 marcg: IMHO if you want something for 4.8, just duplicate the pattern,

or write it using some macro where it will match any direction of shift on

either side and in the pattern condition test that the direction is different

 I don't want anything for 4.8, I am only interested in long term here

:-)

 but that may still be a good idea

 except that there is a constraint on the left shift argument being the

same as the output that breaks symmetry and complicates things...

 anyway, I never hit that pattern myself, it was more a general question

because I had already wondered about it for other patterns in the past.

 or not even a code iterator, you can use match_operator which would

check for logical left/right shift

 canonicalizing still has limits. For instance, getting a canonical

order between ve

[Bug debug/54774] insufficient debug info for strong typed enum

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


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



Jakub Jelinek  changed:



   What|Removed |Added



Summary|[4.4.4, 4.5, 4.6, 4.7]  |insufficient debug info for

   |insufficient debug info for |strong typed enum

   |strong typed enum   |



--- Comment #4 from Jakub Jelinek  2012-12-06 
20:38:45 UTC ---

But it isn't a regression, so Summary shouldn't be changed for that fact.  You

can fill in Known to work: (guess empty) and Known to fail:.


[Bug fortran/55395] [4.8 Regression] libgfortran bootstrap failure on powerpc-linux-gnu and arm-linux-gnueabi

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


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



--- Comment #13 from Jakub Jelinek  2012-12-06 
20:35:01 UTC ---

Author: jakub

Date: Thu Dec  6 20:34:55 2012

New Revision: 194272



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194272

Log:

PR fortran/55395

* varpool.c (varpool_remove_node): Don't drop DECL_INITIAL

if -g and emitting DWARF2+.



Modified:

trunk/gcc/ChangeLog

trunk/gcc/varpool.c


[Bug c++/55032] [4.7/4.8 Regression] Internal compiler error: in strip_typedefs, at cp/tree.c:1199

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #4 from Jason Merrill  2012-12-06 
20:23:16 UTC ---

Fixed.


[Bug c++/54913] [4.8 Regression] qualified lookup in ctor of class template fails to find static member of reference type

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #8 from Jason Merrill  2012-12-06 
20:23:05 UTC ---

Fixed.


[Bug c++/54744] [4.7/4.8 Regression] internal compiler error: Segmentation fault, by dependent base, member typedef and ctor-initializer

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #7 from Jason Merrill  2012-12-06 
20:22:44 UTC ---

Fixed for 4.7.3.


[Bug c++/54744] [4.7/4.8 Regression] internal compiler error: Segmentation fault, by dependent base, member typedef and ctor-initializer

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #6 from Jason Merrill  2012-12-06 
20:21:58 UTC ---

Author: jason

Date: Thu Dec  6 20:21:44 2012

New Revision: 194269



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194269

Log:

PR c++/54744

* pt.c (resolve_typename_type): Check TYPENAME_IS_RESOLVING_P on scope.



Added:

branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/meminit3.C

Modified:

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

branches/gcc-4_7-branch/gcc/cp/pt.c


[Bug c++/55032] [4.7/4.8 Regression] Internal compiler error: in strip_typedefs, at cp/tree.c:1199

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #3 from Jason Merrill  2012-12-06 
20:21:44 UTC ---

Author: jason

Date: Thu Dec  6 20:21:29 2012

New Revision: 194268



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194268

Log:

PR c++/55032

* tree.c (build_array_type_1): Re-layout if we found it in the

hash table.



Added:

branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/array24.C

Modified:

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

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


[Bug c++/54744] [4.7/4.8 Regression] internal compiler error: Segmentation fault, by dependent base, member typedef and ctor-initializer

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #5 from Jason Merrill  2012-12-06 
20:21:21 UTC ---

Author: jason

Date: Thu Dec  6 20:21:08 2012

New Revision: 194267



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194267

Log:

PR c++/54744

* pt.c (resolve_typename_type): Check TYPENAME_IS_RESOLVING_P on scope.

* init.c (expand_member_init): Check for being in a template first.

* parser.c (cp_parser_mem_initializer_list): Only check class types

for equivalence to the current class.



Added:

trunk/gcc/testsuite/g++.dg/template/meminit3.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/init.c

trunk/gcc/cp/parser.c

trunk/gcc/cp/pt.c


[Bug c++/54913] [4.8 Regression] qualified lookup in ctor of class template fails to find static member of reference type

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #7 from Jason Merrill  2012-12-06 
20:21:01 UTC ---

Author: jason

Date: Thu Dec  6 20:20:52 2012

New Revision: 194266



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194266

Log:

PR c++/54913

* semantics.c (finish_qualified_id_expr): convert_from_reference

after building a SCOPE_REF.



Added:

trunk/gcc/testsuite/g++.dg/template/qualified-id6.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/semantics.c


[Bug c++/55032] [4.7/4.8 Regression] Internal compiler error: in strip_typedefs, at cp/tree.c:1199

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #2 from Jason Merrill  2012-12-06 
20:20:46 UTC ---

Author: jason

Date: Thu Dec  6 20:20:34 2012

New Revision: 194265



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194265

Log:

PR c++/55032

* tree.c (build_array_type_1): Re-layout if we found it in the

hash table.



Added:

trunk/gcc/testsuite/g++.dg/template/array24.C

Modified:

trunk/gcc/ChangeLog

trunk/gcc/tree.c


[Bug middle-end/55597] [4.8 Regression] internal compiler error: in plus_constant, at explow.c:88

2012-12-06 Thread ubizjak at gmail dot com


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



--- Comment #12 from Uros Bizjak  2012-12-06 20:14:06 
UTC ---

(In reply to comment #11)

 > It works.  Thanks.

> 

> Unfortunately it creates GC garbage often unnecessary, when it won't be used 
> at

> all.



I agree. Let's keep zext together with their users:



--cut here--

Index: i386.c

===

--- i386.c  (revision 194263)

+++ i386.c  (working copy)

@@ -12785,6 +12785,9 @@

  tp = get_thread_pointer (Pmode, true);

  dest = force_reg (Pmode, gen_rtx_PLUS (Pmode, tp, dest));



+ if (GET_MODE (x) != Pmode)

+   x = gen_rtx_ZERO_EXTEND (Pmode, x);

+

  set_unique_reg_note (get_last_insn (), REG_EQUAL, x);

}

   else

@@ -12793,15 +12796,20 @@



  if (TARGET_64BIT)

{

- rtx rax = gen_rtx_REG (Pmode, AX_REG), insns;

+ rtx rax = gen_rtx_REG (Pmode, AX_REG);

+ rtx insns;



  start_sequence ();

- emit_call_insn (ix86_gen_tls_global_dynamic_64 (rax, x,

- caddr));

+ emit_call_insn

+   (ix86_gen_tls_global_dynamic_64 (rax, x, caddr));

  insns = get_insns ();

  end_sequence ();



  RTL_CONST_CALL_P (insns) = 1;

+

+ if (GET_MODE (x) != Pmode)

+   x = gen_rtx_ZERO_EXTEND (Pmode, x);

+

  emit_libcall_block (insns, dest, rax, x);

}

  else

@@ -12842,11 +12850,12 @@



  if (TARGET_64BIT)

{

- rtx rax = gen_rtx_REG (Pmode, AX_REG), insns, eqv;

+ rtx rax = gen_rtx_REG (Pmode, AX_REG);

+ rtx insns, eqv;



  start_sequence ();

- emit_call_insn (ix86_gen_tls_local_dynamic_base_64 (rax,

- caddr));

+ emit_call_insn

+   (ix86_gen_tls_local_dynamic_base_64 (rax, caddr));

  insns = get_insns ();

  end_sequence ();



@@ -12871,6 +12880,9 @@

{

  dest = force_reg (Pmode, gen_rtx_PLUS (Pmode, dest, tp));



+ if (GET_MODE (x) != Pmode)

+   x = gen_rtx_ZERO_EXTEND (Pmode, x);

+

  set_unique_reg_note (get_last_insn (), REG_EQUAL, x);

}

   break;

--cut here--


[Bug gcov-profile/49484] gcov crash if two(or more) forks happen at the same time

2012-12-06 Thread asharif at gcc dot gnu.org


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



--- Comment #26 from asharif at gcc dot gnu.org 2012-12-06 20:09:35 UTC ---

Author: asharif

Date: Thu Dec  6 20:09:25 2012

New Revision: 194264



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194264

Log:

2012-12-03  Ahmad Sharif 



Backport r185231 from trunk.



2012-03-12  Richard Guenther  



* gthr.h (__GTHREAD_MUTEX_INIT_FUNCTION): Adjust specification.

* gthr-posix.h (__GTHREAD_MUTEX_INIT_FUNCTION): Define.

(__gthread_mutex_init_function): New function.

* gthr-single.h (__GTHREAD_MUTEX_INIT_FUNCTION): Define.



PR gcov/49484

* libgcov.c: Include gthr.h.

(__gcov_flush_mx): New global variable.

(init_mx, init_mx_once): New functions.

(__gcov_flush): Protect self with a mutex.

(__gcov_fork): Re-initialize mutex after forking.

* unwind-dw2-fde.c: Change condition under which to use

__GTHREAD_MUTEX_INIT_FUNCTION.





Modified:

branches/google/gcc-4_7/   (props changed)

branches/google/gcc-4_7/gcc/   (props changed)

branches/google/gcc-4_7/gcc/testsuite/gcc.target/powerpc/ppc-round.c  

(props changed)

branches/google/gcc-4_7/libgcc/ChangeLog

branches/google/gcc-4_7/libgcc/ChangeLog.google-4_7

branches/google/gcc-4_7/libgcc/gthr-posix.h

branches/google/gcc-4_7/libgcc/gthr-single.h

branches/google/gcc-4_7/libgcc/gthr.h

branches/google/gcc-4_7/libgcc/libgcov.c

branches/google/gcc-4_7/libgcc/unwind-dw2-fde.c

branches/google/gcc-4_7/libjava/classpath/   (props changed)



Propchange: branches/google/gcc-4_7/

('svn:mergeinfo' modified)



Propchange: branches/google/gcc-4_7/gcc/

('svn:mergeinfo' modified)



Propchange:

branches/google/gcc-4_7/gcc/testsuite/gcc.target/powerpc/ppc-round.c

('svn:mergeinfo' modified)



Propchange: branches/google/gcc-4_7/libjava/classpath/

('svn:mergeinfo' modified)


[Bug c++/55249] [4.6/4.7/4.8 Regression] Multiple copy constructors for template class lead to link errors

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |


[Bug debug/54774] [4.4.4, 4.5, 4.6, 4.7] insufficient debug info for strong typed enum

2012-12-06 Thread chihin.ko at oracle dot com


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



chihin ko  changed:



   What|Removed |Added



Summary|insufficient debug info for |[4.4.4, 4.5, 4.6, 4.7]

   |strong typed enum   |insufficient debug info for

   ||strong typed enum



--- Comment #3 from chihin ko  2012-12-06 19:57:46 
UTC ---

This problem can trace back from gcc 4.4.4.


[Bug c/39464] [4.6/4.7/4.8 Regression] Attribute may_alias causes invalid warning

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


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



--- Comment #12 from Andrew Pinski  2012-12-06 
19:29:09 UTC ---

(In reply to comment #11)

> warning to actual sign differences only, i.e.

>   else if (warn_pointer_sign

>&& TYPE_UNSIGNED (mvl) != TYPE_UNSIGNED (mvr))

> If we want to warn about other cases (I think they are generally outside of 
> the

> scope of ISO C anyway), then we should have a differently worded warning after

> this one for the TYPE_UNSIGNED (mvl) == TYPE_UNSIGNED (mvr) case.



The only case which is not outside of the scope of ISO C is "char" vs "signed

char" vs "unsigned char"  They are all three distinct types and we should get a

warning about them.


[Bug libstdc++/55594] [4.8 Regression] -Wa,-nH incorrectly added to compile line of all targets

2012-12-06 Thread dje at gcc dot gnu.org


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



--- Comment #3 from David Edelsohn  2012-12-06 19:25:05 
UTC ---

AIX as manual:



   -n Name

Specifies the name that appears in the header of the assembler

listing. By default, the header contains the name of the assembler

source file.



-Wa,-nH creates some confusing, inconsistent information for debugging and

object file analysis. Because I do not spend a lot of time debugging libstdc++,

I had not noticed it.



I am glad that you are feeling better.


[Bug c++/54207] [4.7 Regression][C++0x] ICE in build_noexcept_spec when bool is #defined/typedef'd

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


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



Jakub Jelinek  changed:



   What|Removed |Added



  Known to work||4.8.0

Summary|[4.7/4.8 Regression][C++0x] |[4.7 Regression][C++0x] ICE

   |ICE in build_noexcept_spec  |in build_noexcept_spec when

   |when bool is|bool is #defined/typedef'd

   |#defined/typedef'd  |

  Known to fail|4.8.0   |



--- Comment #6 from Jakub Jelinek  2012-12-06 
19:15:54 UTC ---

Fixed on the trunk so far.


[Bug c++/55573] [4.8 Regression] ICE in adjust_temp_type, at cp/semantics.c:6454

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


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



Jakub Jelinek  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #10 from Jakub Jelinek  2012-12-06 
19:15:07 UTC ---

Fixed.


[Bug c++/54207] [4.7/4.8 Regression][C++0x] ICE in build_noexcept_spec when bool is #defined/typedef'd

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


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



--- Comment #5 from Jakub Jelinek  2012-12-06 
18:55:52 UTC ---

Author: jakub

Date: Thu Dec  6 18:55:48 2012

New Revision: 194263



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194263

Log:

PR c++/54207

* except.c (build_noexcept_spec): Avoid direct comparison

with boolean_true_node or boolean_false_node, instead use

operand_equal_p and/or INTEGER_CST check.

* pt.c (tsubst_exception_specification): Likewise.

* typeck2.c (merge_exception_specifiers): Likewise.



* g++.dg/cpp0x/noexcept18.C: New test.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/noexcept18.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/except.c

trunk/gcc/cp/pt.c

trunk/gcc/cp/typeck2.c

trunk/gcc/testsuite/ChangeLog


[Bug c++/55573] [4.8 Regression] ICE in adjust_temp_type, at cp/semantics.c:6454

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


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



--- Comment #9 from Jakub Jelinek  2012-12-06 
18:54:30 UTC ---

Author: jakub

Date: Thu Dec  6 18:54:25 2012

New Revision: 194262



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194262

Log:

PR c++/55573

* semantics.c (adjust_temp_type): Handle VECTOR_CST.



* g++.dg/cpp0x/constexpr-55573.C: New test.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-55573.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/semantics.c

trunk/gcc/testsuite/ChangeLog


[Bug bootstrap/54926] [4.8 Regression] Bootstrap comparison failure for various files in libbacktrace

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


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



Jakub Jelinek  changed:



   What|Removed |Added



 Status|REOPENED|WAITING

 CC||jakub at gcc dot gnu.org



--- Comment #7 from Jakub Jelinek  2012-12-06 
18:39:03 UTC ---

For the bootstrap comparison failures, I'd guess libbacktrace should be built

with

-frandom-seed=$@

in CFLAGS similarly how libstdc++-v3 is built.

In what way doesn't backtrace work in the compiler?  Does it crash, or not

print any backtrace?  The former would be a regression, the latter would not. 

So, does:

2012-12-06  Jakub Jelinek  



PR bootstrap/54926

* Makefile.am (AM_CFLAGS): Add -frandom-seed=$@.

* Makefile.in: Regenerated.



--- libbacktrace/Makefile.am.jj2012-10-02 15:36:21.0 +0200

+++ libbacktrace/Makefile.am2012-12-06 19:36:05.888001803 +0100

@@ -34,7 +34,7 @@ ACLOCAL_AMFLAGS = -I .. -I ../config

 AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \

 -I ../libgcc -I ../gcc/include -I $(MULTIBUILDTOP)../../gcc/include



-AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG)

+AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG) -frandom-seed=$@



 noinst_LTLIBRARIES = libbacktrace.la



--- libbacktrace/Makefile.in.jj2012-10-02 15:36:21.0 +0200

+++ libbacktrace/Makefile.in2012-12-06 19:36:26.284875521 +0100

@@ -254,7 +254,7 @@ ACLOCAL_AMFLAGS = -I .. -I ../config

 AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \

 -I ../libgcc -I ../gcc/include -I $(MULTIBUILDTOP)../../gcc/include



-AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG)

+AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG) -frandom-seed=$@

 noinst_LTLIBRARIES = libbacktrace.la

 libbacktrace_la_SOURCES = \

 backtrace.h \



patch fix all the regressions, turning this just into enhancement request to

support libbacktrace better on HP-UX?


[Bug c/39464] [4.6/4.7/4.8 Regression] Attribute may_alias causes invalid warning

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


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



--- Comment #11 from Jakub Jelinek  2012-12-06 
18:27:03 UTC ---

In any case, I'd limit the

  /* If there is a mismatch, do warn.  */

  else if (warn_pointer_sign)

WARN_FOR_ASSIGNMENT (location, OPT_Wpointer_sign,

 G_("pointer targets in passing argument "

"%d of %qE differ in signedness"),

 G_("pointer targets in assignment "  

"differ in signedness"),

 G_("pointer targets in initialization "

"differ in signedness"),

 G_("pointer targets in return differ "

"in signedness"));

warning to actual sign differences only, i.e.

  else if (warn_pointer_sign

   && TYPE_UNSIGNED (mvl) != TYPE_UNSIGNED (mvr))

If we want to warn about other cases (I think they are generally outside of the

scope of ISO C anyway), then we should have a differently worded warning after

this one for the TYPE_UNSIGNED (mvl) == TYPE_UNSIGNED (mvr) case.


[Bug c/39464] [4.6/4.7/4.8 Regression] Attribute may_alias causes invalid warning

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


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



Jakub Jelinek  changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org,

   ||jsm28 at gcc dot gnu.org



--- Comment #10 from Jakub Jelinek  2012-12-06 
18:21:09 UTC ---

In any case, I'd limit the

  /* If there is a mismatch, do warn.  */

  else if (warn_pointer_sign)

WARN_FOR_ASSIGNMENT (location, OPT_Wpointer_sign,

 G_("pointer targets in passing argument "

"%d of %qE differ in signedness"),

 G_("pointer targets in assignment "  

"differ in signedness"),

 G_("pointer targets in initialization "

"differ in signedness"),

 G_("pointer targets in return differ "

"in signedness"));

warning to actual sign differences only, i.e.


[Bug target/54404] [4.8 Regression] *cfstring* failures for (obj-c|g)++ on *-apple-darwin* after revision 186978

2012-12-06 Thread howarth at nitro dot med.uc.edu


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



--- Comment #20 from Jack Howarth  2012-12-06 
17:54:44 UTC ---

Note that on Mountain Lion using the 10.7 SDK solves the failures...



# /sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/xgcc

-B/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/

/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20121206/gcc/testsuite/objc.dg/torture/strings/const-str-10.m

-fno-diagnostics-show-caret -O0 -fnext-runtime -mno-constant-cfstrings

-B/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/x86_64-apple-darwin12.2.0/./libobjc/.libs

-L/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/x86_64-apple-darwin12.2.0/./libobjc/.libs

-S -m64

--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk

-o const-str-10.s

#


[Bug target/54404] [4.8 Regression] *cfstring* failures for (obj-c|g)++ on *-apple-darwin* after revision 186978

2012-12-06 Thread howarth at nitro dot med.uc.edu


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



--- Comment #19 from Jack Howarth  2012-12-06 
17:49:06 UTC ---

This may be related to the changes described here...



http://blog.ablepear.com/2012/02/something-wonderful-new-objective-c.html


[Bug target/54404] [4.8 Regression] *cfstring* failures for (obj-c|g)++ on *-apple-darwin* after revision 186978

2012-12-06 Thread howarth at nitro dot med.uc.edu


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



--- Comment #18 from Jack Howarth  2012-12-06 
17:41:34 UTC ---

(In reply to comment #17)

> Fixed?



Note on x86_64-apple-darwin12 which uses a newer Objective C runtime. There are

failures in...





FAIL: objc.dg/torture/strings/const-str-10.m  -O0  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-10.m  -O1  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-10.m  -O2  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-10.m  -O3 -fomit-frame-pointer 

-fnext-runtime (test for excess errors)

FAIL: objc.dg/torture/strings/const-str-10.m  -O3 -g  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-10.m  -Os  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-10.m  -O2 -flto -flto-partition=none 

-fnext-runtime (test for excess errors)

FAIL: objc.dg/torture/strings/const-str-10.m  -O2 -flto  -fnext-runtime (test

for excess errors)

FAIL: objc.dg/torture/strings/const-str-11.m  -O0  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-11.m  -O1  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-11.m  -O2  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-11.m  -O3 -fomit-frame-pointer 

-fnext-runtime (test for excess errors)

FAIL: objc.dg/torture/strings/const-str-11.m  -O3 -g  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-11.m  -Os  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-11.m  -O2 -flto -flto-partition=none 

-fnext-runtime (test for excess errors)

FAIL: objc.dg/torture/strings/const-str-11.m  -O2 -flto  -fnext-runtime (test

for excess errors)

FAIL: objc.dg/torture/strings/const-str-9.m  -O0  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-9.m  -O1  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-9.m  -O2  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-9.m  -O3 -fomit-frame-pointer 

-fnext-runtime (test for excess errors)

FAIL: objc.dg/torture/strings/const-str-9.m  -O3 -g  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-9.m  -Os  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/const-str-9.m  -O2 -flto -flto-partition=none 

-fnext-runtime (test for excess errors)

FAIL: objc.dg/torture/strings/const-str-9.m  -O2 -flto  -fnext-runtime (test

for excess errors)

FAIL: objc.dg/torture/strings/string1.m  -O2 -flto -flto-partition=none 

-fnext-runtime (test for excess errors)

FAIL: objc.dg/torture/strings/string1.m  -O2 -flto  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/string2.m  -O2 -flto -flto-partition=none 

-fnext-runtime (test for excess errors)

FAIL: objc.dg/torture/strings/string2.m  -O2 -flto  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/string3.m  -O2 -flto -flto-partition=none 

-fnext-runtime (test for excess errors)

FAIL: objc.dg/torture/strings/string3.m  -O2 -flto  -fnext-runtime (test for

excess errors)

FAIL: objc.dg/torture/strings/string4.m  -O2 -flto -flto-partition=none 

-fnext-runtime (test for excess errors)

FAIL: objc.dg/torture/strings/string4.m  -O2 -flto  -fnext-runtime (test for

excess errors)



of the form...



Executing on host: /sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/xgcc

-B/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/gcc/

/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20121206/gcc/testsuite/objc.dg/torture/strings/const-str-10.m

 -fno-diagnostics-show-caret   -O0  -fnext-runtime -mno-constant-cfstrings 

-B/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/x86_64-apple-darwin12.2.0/./libobjc/.libs

 

-L/sw/src/fink.build/gcc48-4.8.0-1000/darwin_objdir/x86_64-apple-darwin12.2.0/./libobjc/.libs

 -S  -m64 -o const-str-10.s(timeout = 300)

/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20121206/gcc/testsuite/objc.dg/torture/strings/const-str-10.m:13:1:

error: cannot find interface declaration for 'Object', superclass of

'NSString'^M

/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20121206/gcc/testsuite/objc.dg/torture/strings/const-str-10.m:31:1:

error: interface 'NSConstantString' does not have valid constant string

layout^M

compiler exited with status 1

output is:

/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20121206/gcc/testsuite/objc.dg/torture/strings/const-str-10.m:13:1:

error: cannot find interface declaration for 'Object', superclass of

'NSString'^M

/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20121206/gcc/testsuite/objc.dg/torture/strings/const-str-10.m:31:1:

error: interface 'NSConstantString' does not have valid constant string

layout^M



FAIL: objc.dg/torture/strings/const-str-10.m  -O0  -fnext-runtime (test for

excess errors)


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

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


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



--- Comment #17 from Jakub Jelinek  2012-12-06 
17:00:35 UTC ---

I don't see the #c0 testcase particularly slow, I'm afraid we won't get rid of

all the slowdowns caused by the memory invalidation checking in var-tracking.c,

that has been added for 4.8 for debug information accuracy (to avoid emitting

wrong-debug, not just incomplete debug), but hope it can be speeded up at least

a little bit.

And as one comment in this PR and another one in another PR show, there is also

a regression that LRA makes some functions that were previously without frame

pointer now use forcefully frame pointer.  It needs investigation whether that

is just a bug somewhere, or intentional decision.


[Bug target/54699] [4.8 Regression] [SH] gfortran.dg/class_array_9.f03 ICEs

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


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



Oleg Endo  changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |


[Bug debug/55579] SRA doesn't create debug stmts when they would be useful

2012-12-06 Thread jamborm at gcc dot gnu.org


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



Martin Jambor  changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |



--- Comment #2 from Martin Jambor  2012-12-06 
16:58:58 UTC ---

Mine.


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

2012-12-06 Thread ro at CeBiTec dot Uni-Bielefeld.DE


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



--- Comment #16 from ro at CeBiTec dot Uni-Bielefeld.DE  2012-12-06 16:56:35 UTC ---

> --- Comment #15 from Richard Biener  2012-12-06

> 16:41:45 UTC ---

> Improvements so that the regression part is fixed?



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.



Rainer


[Bug tree-optimization/54717] [4.8 Regression] Runtime regression: polyhedron test "rnflow" degraded

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


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



Richard Biener  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #19 from Richard Biener  2012-12-06 
16:51:11 UTC ---

Fixed.


[Bug target/54699] [4.8 Regression] [SH] gfortran.dg/class_array_9.f03 ICEs

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


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



Richard Biener  changed:



   What|Removed |Added



   Priority|P3  |P4


[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows

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


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



Richard Biener  changed:



   What|Removed |Added



 Target||windows

   Priority|P3  |P1


[Bug tree-optimization/54570] [4.8 Regression] FAIL: gcc.dg/builtin-object-size-8.c execution test

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


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



Richard Biener  changed:



   What|Removed |Added



   Priority|P3  |P1


[Bug tree-optimization/54094] ICE in graphite-dependences.c:320 : isl_constraint.c:497: position out of bounds

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


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



--- Comment #2 from Richard Biener  2012-12-06 
16:44:44 UTC ---

Reduced testcase:



void dwt_deinterleave_h(int *a, int *b, int dn, int sn, int cas) 

{

  int i;

  for (i=0; i

[Bug target/54404] [4.8 Regression] *cfstring* failures for (obj-c|g)++ on *-apple-darwin* after revision 186978

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


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



Richard Biener  changed:



   What|Removed |Added



 Status|NEW |WAITING



--- Comment #17 from Richard Biener  2012-12-06 
16:42:51 UTC ---

Fixed?


[Bug tree-optimization/54094] ICE in graphite-dependences.c:320 : isl_constraint.c:497: position out of bounds

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


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



Richard Biener  changed:



   What|Removed |Added



 Target|i686-pc-cygwin  |i?86-*-*

 Status|UNCONFIRMED |NEW

   Keywords||ice-on-valid-code

   Last reconfirmed||2012-12-06

   Host|i686-pc-cygwin  |

 Ever Confirmed|0   |1

Summary|[4.8 regression] ICE in |ICE in

   |graphite-dependences.c:320  |graphite-dependences.c:320

   |: isl_constraint.c:497: |: isl_constraint.c:497:

   |position out of bounds  |position out of bounds

   Target Milestone|4.8.0   |---

  Build|i686-pc-cygwin  |



--- Comment #1 from Richard Biener  2012-12-06 
16:40:54 UTC ---

Requires -floop-nest-optimize to reproduce so technically not a regression.



But confirmed on x86_64-linux with -m32.



Reducing.


[Bug c++/55576] Fails to compile a call to template member function

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|RESOLVED|NEW

   Last reconfirmed||2012-12-06

 Resolution|INVALID |

 Ever Confirmed|0   |1



--- Comment #9 from Jason Merrill  2012-12-06 
16:33:09 UTC ---

3.4.5 seems clear on this point:



The identifier is first looked up in the class of the object expression. If the

identifier is not found, it is then looked up in the context of the entire

postfix-expression and shall name a class template.



So the testcase in comment 3 is valid.


[Bug libstdc++/55594] [4.8 Regression] -Wa,-nH incorrectly added to compile line of all targets

2012-12-06 Thread ro at gcc dot gnu.org


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



Rainer Orth  changed:



   What|Removed |Added



 CC|ro at CeBiTec dot   |ro at gcc dot gnu.org

   |Uni-Bielefeld.DE|

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

   |gnu.org |



--- Comment #2 from Rainer Orth  2012-12-06 16:29:59 UTC 
---

Mine.



Sorry for the delay, I've been ill for two weeks and am slowly catching up on

my

mail.



Two questions:



* What does -nH do with AIX as?



* Which problems does this cause, i.e. why did this issue only show up almost

  three months after the patch went in.



  Rainer


[Bug lto/53831] [4.7/4.8 Regression] Virtuals missing in LTO symtab

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


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



Richard Biener  changed:



   What|Removed |Added



 Status|ASSIGNED|WAITING



--- Comment #30 from Richard Biener  2012-12-06 
16:24:19 UTC ---

Is this fixed on trunk?


[Bug tree-optimization/52272] [4.7/4.8 regression] Performance regression of 410.bwaves on x86.

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


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



Richard Biener  changed:



   What|Removed |Added



   Priority|P3  |P2


[Bug debug/51358] incorrect/missing location for function arg, -O0, without VTA

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


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



Richard Biener  changed:



   What|Removed |Added



   Target Milestone|4.8.0   |---

Summary|[4.8 Regression]|incorrect/missing location

   |incorrect/missing location  |for function arg, -O0,

   |for function arg, -O0,  |without VTA

   |without VTA |



--- Comment #10 from Richard Biener  2012-12-06 
16:21:33 UTC ---

Don't see that either.


[Bug debug/55541] [4.6/4.7/4.8 Regression] unable to see local variables due extra lexical block was generated

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


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



Richard Biener  changed:



   What|Removed |Added



   Priority|P3  |P2


[Bug c++/55513] [4.7/4.8 Regression] Incorrect snprintf folding when building with -std=c++0x

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


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



Richard Biener  changed:



   What|Removed |Added



   Priority|P3  |P2

  Known to work|4.8.0   |

  Known to fail||4.8.0


[Bug c++/55249] [4.6/4.7/4.8 Regression] Multiple copy constructors for template class lead to link errors

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


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



Richard Biener  changed:



   What|Removed |Added



   Priority|P3  |P2


[Bug c++/55245] [4.6/4.7/4.8 Regression] Compiler segfault when compiling a small test case

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


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



Richard Biener  changed:



   What|Removed |Added



   Keywords||ice-on-valid-code

   Priority|P3  |P2


[Bug target/55181] [4.7/4.8 Regression] Expensive shift loop where a bit-testing instruction could be used

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


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



Richard Biener  changed:



   What|Removed |Added



   Keywords||missed-optimization

   Priority|P3  |P4

  Component|other   |target


[Bug debug/55094] [4.7 Regression] ICE in maybe_record_trace_start, at dwarf2cfi.c:2224

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


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



Richard Biener  changed:



   What|Removed |Added



   Keywords||ice-checking

   Priority|P3  |P2


[Bug c++/55058] [4.7/4.8 Regression] Unexpected invalid type conversion error

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


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



Richard Biener  changed:



   What|Removed |Added



   Keywords||rejects-valid

   Priority|P3  |P2


[Bug libstdc++/55043] [4.7/4.8 Regression] issue with nesting unordered_map containing unique_ptr into vector

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


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



Richard Biener  changed:



   What|Removed |Added



   Keywords||rejects-valid

   Priority|P3  |P2

  Known to work||4.6.3


[Bug c++/54383] Internal compiler error for lamba function using this-> with -std=c++0x

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


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



Jonathan Wakely  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-12-06

 Ever Confirmed|0   |1


[Bug c++/54995] Converting lambda to C-style functions when there is template

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


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



Jonathan Wakely  changed:



   What|Removed |Added



   Keywords||accepts-invalid

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-12-06

Version|unknown |4.8.0

 Ever Confirmed|0   |1



--- Comment #3 from Jonathan Wakely  2012-12-06 
16:00:31 UTC ---

I think the code should be rejected.



Possibly related to Bug 55532



(Temtaine, in future please provide code, not a URL to some other site, thanks)


[Bug c++/55532] Runtime segfault calling mutable lambda wrapped in a non-mutable lambda within a template function

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


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



Jonathan Wakely  changed:



   What|Removed |Added



   Keywords||accepts-invalid

 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-12-06

 Ever Confirmed|0   |1



--- Comment #2 from Jonathan Wakely  2012-12-06 
15:54:18 UTC ---

Confirmed, I think the code should be rejected.


[Bug c++/54744] [4.7/4.8 Regression] internal compiler error: Segmentation fault, by dependent base, member typedef and ctor-initializer

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

 CC||jason at gcc dot gnu.org

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

   |gnu.org |


[Bug c++/55576] Fails to compile a call to template member function

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


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



Jonathan Wakely  changed:



   What|Removed |Added



 CC||jason at gcc dot gnu.org



--- Comment #8 from Jonathan Wakely  2012-12-06 
15:46:59 UTC ---

Jason, could you have a look at the code in comment 3 and say whether the

lookup result is correct? thanks


[Bug c++/55015] [4.7/4.8 Regression] Lambda functions not found at link time when declared in an inline function

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


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



Paolo Carlini  changed:



   What|Removed |Added



 CC||matt at godbolt dot org



--- Comment #14 from Paolo Carlini  2012-12-06 
15:44:50 UTC ---

*** Bug 54801 has been marked as a duplicate of this bug. ***


[Bug c++/54801] [4.7/4.8 Regression] static variables constructed with lambda params inside member functions cause undefined errors

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


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



Paolo Carlini  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||DUPLICATE



--- Comment #5 from Paolo Carlini  2012-12-06 
15:44:50 UTC ---

Dup.



*** This bug has been marked as a duplicate of bug 55015 ***


[Bug c++/55127] [4.8 regression] Incorrect "dependent scope" error with partial specialization of non-type parameter

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


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



Paolo Carlini  changed:



   What|Removed |Added



 Status|UNCONFIRMED |NEW

   Last reconfirmed||2012-12-06

 Ever Confirmed|0   |1



--- Comment #2 from Paolo Carlini  2012-12-06 
15:32:52 UTC ---

Confirmed.


[Bug c++/54913] [4.8 Regression] qualified lookup in ctor of class template fails to find static member of reference type

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|NEW |ASSIGNED

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

   |gnu.org |


[Bug target/55610] cc1 is calling munmap() on part of itself on darwin

2012-12-06 Thread howarth at nitro dot med.uc.edu


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



--- Comment #2 from Jack Howarth  2012-12-06 
15:27:51 UTC ---

Sorry, that should have been "Nick wasn't able to completely backtrace in cc1

due to the default use of -fomit-frame-pointer in FSF gcc".


[Bug target/55610] cc1 is calling munmap() on part of itself on darwin

2012-12-06 Thread howarth at nitro dot med.uc.edu


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



--- Comment #1 from Jack Howarth  2012-12-06 
15:25:04 UTC ---

This was originally opened as http://llvm.org/bugs/show_bug.cgi?id=14140 but

closed there now as it is determined to be a latent bug in FSF gcc's

darwin_gt_pch_use_address call. Also, Nick was able to completely back trace

this issue because gcc defaults now to -fomit-frame-pointers. We will need to

revert that change in order to get a complete backtrace out of cc1.


[Bug target/55610] New: cc1 is calling munmap() on part of itself on darwin

2012-12-06 Thread howarth at nitro dot med.uc.edu


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



 Bug #: 55610

   Summary: cc1 is calling munmap() on part of itself on darwin

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: target

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

ReportedBy: howa...@nitro.med.uc.edu





The use of the dragonegg.so plugin with the LLVMPolly.so plugin exposes a flaw

where when dyld queries for free memory it is getting a block in the middle of

gcc4.7's __DATA segment. The cc1 binary has a 1GB __DATA segment which is huge,

but should work, but somehow  LLVMPolly.so is being loaded into the middle of

the cc1's DATA segment. That causes problems with lazy binding because dyld has

a data structure to map from an address to an image. That data structure

assumes mach-o images do not overlap.  So when dyld is trying to find which

image is requesting the lazy binding, it thinks it is cc1 when in fact

LLVMPolly.so is requesting the lazy binding.  This leads to the binding error.

Why does this cc1 have such a huge __DATA segment? Most of the room is in the

__bss12 section.  Is there some code that calls vm_deallocate on the interior

of the __DATA segment?



size -l /sw/lib/gcc4.7/libexec/gcc/x86_64-apple-darwin12.2.0/4.7.2/cc1

Segment __PAGEZERO: 4294967296 (vmaddr 0x0 fileoff 0)

Segment __TEXT: 11014144 (vmaddr 0x1 fileoff 0)

Section __text: 8725244 (addr 0x10c80 offset 3200)

Section __text_startup: 5 (addr 0x100852f80 offset 8728448)

Section __text_cold: 69721 (addr 0x100852f88 offset 8728456)

Section __stubs: 984 (addr 0x100863fe2 offset 8798178)

Section __stub_helper: 1656 (addr 0x1008643bc offset 8799164)

Section __cstring: 573443 (addr 0x100864a38 offset 8800824)

Section __const: 534272 (addr 0x1008f0a40 offset 9374272)

Section __eh_frame: 1105584 (addr 0x100973140 offset 9908544)

total 11010909

Segment __DATA: 1075826688 (vmaddr 0x100a81000 fileoff 11014144)

Section __got: 816 (addr 0x100a81000 offset 11014144)

Section __nl_symbol_ptr: 16 (addr 0x100a81330 offset 11014960)

Section __la_symbol_ptr: 1312 (addr 0x100a81340 offset 11014976)

Section __const: 598856 (addr 0x100a81860 offset 11016288)

Section __data: 41152 (addr 0x100b13bc0 offset 11615168)

Section __static_data: 136 (addr 0x100b1dc80 offset 11656320)

Section __pu_bss5: 1202272 (addr 0x100b1dd20 offset 0)

Section __bss4: 792 (addr 0x100c43580 offset 0)

Section __bss2: 1640 (addr 0x100c43898 offset 0)

Section __bss0: 26 (addr 0x100c43f00 offset 0)

Section __pu_bss4: 112 (addr 0x100c43f20 offset 0)

Section __pu_bss0: 5 (addr 0x100c43f90 offset 0)

Section __common: 24 (addr 0x100c43f98 offset 0)



Section __pu_bss2: 496 (addr 0x100c43fb0 offset 0)

Section __bss12: 1073741824 (addr 0x100c45000 offset 0)

Section __bss5: 221067 (addr 0x140c45000 offset 0)

Section __bss3: 7632 (addr 0x140c7af90 offset 0)

Section __pu_bss3: 1432 (addr 0x140c7cd60 offset 0)

total 1075819610

Segment __LINKEDIT: 3719168 (vmaddr 0x140c7e000 fileoff 11661312)



For the FSF gcc 4.7.2/dragonegg/LLVMPolly.so combination cc1 is calling

munmap() on part of itself which is not legal.  If we skip over that munmap,

the program runs fine.





(gdb) set env DYLD_PRINT_SEGMENTS

(gdb) br munmap

(gdb) r

dyld: Main executable mapped

/sw/lib/gcc4.7/libexec/gcc/x86_64-apple-darwin12.2.0/4.7.2/cc1

__PAGEZERO at 0x->0x1

__TEXT at 0x1->0x100A81000

__DATA at 0x100A81000->0x140C7E000

__LINKEDIT at 0x140C7E000->0x14100A000

...

Breakpoint 14, 0x7fff86b94fbc in munmap ()

1: x/i $pc  0x7fff86b94fbc :mov$0x249,%eax

$17 = 0x14122e000

$18 = 0xd2000

(gdb) c

Continuing.



Breakpoint 14, 0x7fff86b94fbc in munmap ()

1: x/i $pc  0x7fff86b94fbc :mov$0x249,%eax

$19 = 0x14140

$20 = 0x2e000

(gdb) c

Continuing.



Breakpoint 14, 0x7fff86b94fbc in munmap ()

1: x/i $pc  0x7fff86b94fbc :mov$0x249,%eax

$21 = 0x14140

$22 = 0x40

(gdb) c

Continuing.





Breakpoint 14, 0x7fff86b94fbc in munmap ()

1: x/i $pc  0x7fff86b94fbc :mov$0x249,%eax

$23 = 0x14200

$24 = 0x40

(gdb) c

Continuing.



Breakpoint 14, 0x7fff86b94fbc in munmap ()

1: x/i $pc  0x7fff86b94fbc :mov$0x249,%eax

$26 = 0x144ba3000

$27 = 0x5d000

(gdb) c

Continuing.



Breakpoint 14, 0x7fff86b94fbc in munmap ()

1: x/i $pc  0x7fff86b94fbc :mov$0x249,%eax

$28 = 0x144d0

$29 = 0xa3000

(gdb) c

Continuing.

GNU C (GCC) version 4.7.2 (x86_64-apple-darwin12.2.0)

compiled by GNU C version 4.7.2, GMP version 5.0.5,

[Bug debug/55541] [4.6/4.7/4.8 Regression] unable to see local variables due extra lexical block was generated

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


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



--- Comment #6 from Jakub Jelinek  2012-12-06 
15:07:22 UTC ---

(In reply to comment #5)

> I'm finding the LOCATION_BLOCK code somewhat opaque, and think that I should

> take care of more recent regressions before diving into it too much, so I'm

> going to put this aside for now.

> 

> I don't remember the rationale for the extra block, but changing

> finish_function to strip it right away causes quite a few testsuite

> regressions.



Can you attach your patch anyway, both for future reference and to find out why

it causes testsuite regressions?  I'm really curious...


[Bug middle-end/55597] [4.8 Regression] internal compiler error: in plus_constant, at explow.c:88

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


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



Jakub Jelinek  changed:



   What|Removed |Added



 CC||jakub at gcc dot gnu.org



--- Comment #11 from Jakub Jelinek  2012-12-06 
15:05:15 UTC ---

(In reply to comment #10)

> (In reply to comment #9)

> > I think it is better to fixup all sites where equivalent is used:

> > 

> 

> It works.  Thanks.



Unfortunately it creates GC garbage often unnecessary, when it won't be used at

all.


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

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


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



Jakub Jelinek  changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED



--- Comment #8 from Jakub Jelinek  2012-12-06 
14:47:26 UTC ---

Fixed.


[Bug c++/54947] [4.7/4.8 Regression] [C++11] lambda cannot capture-by-copy inside braced-init-list

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #7 from Jason Merrill  2012-12-06 
14:46:18 UTC ---

Fixed for 4.7.3.


[Bug c++/54947] [4.7/4.8 Regression] [C++11] lambda cannot capture-by-copy inside braced-init-list

2012-12-06 Thread jason at gcc dot gnu.org


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



--- Comment #6 from Jason Merrill  2012-12-06 
14:45:15 UTC ---

Author: jason

Date: Thu Dec  6 14:45:11 2012

New Revision: 194256



URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194256

Log:

PR c++/54947

* parser.c (cp_parser_initializer_list): Don't require an

expression in [] to be constant until we know it's a C99

designator.



Added:

trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist2.C

Modified:

trunk/gcc/cp/ChangeLog

trunk/gcc/cp/parser.c


[Bug c++/55015] [4.7/4.8 Regression] Lambda functions not found at link time when declared in an inline function

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED

   Target Milestone|4.8.0   |4.7.3



--- Comment #13 from Jason Merrill  2012-12-06 
14:42:45 UTC ---

Fixed for 4.7.3.


[Bug c++/55564] [4.8 Regression] internal error using decltype of a template type parameter for late-specified function result type

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED



--- Comment #8 from Jason Merrill  2012-12-06 
14:42:08 UTC ---

Fixed.


[Bug c++/54653] [4.6/4.7/4.8 Regression] tsubst_template_parms ICE

2012-12-06 Thread jason at gcc dot gnu.org


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



Jason Merrill  changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED

   Target Milestone|4.6.4   |4.8.0



--- Comment #7 from Jason Merrill  2012-12-06 
14:41:42 UTC ---

Fixed for 4.8, not backporting fixes for invalid code bugs.


  1   2   >