[Bug c++/60182] g++ segfault within template expansion using using aliasing

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60182

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
   Priority|P3  |P1


[Bug target/60337] s390: Function arguments are not aligned

2014-02-26 Thread vogt at linux dot vnet.ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60337

--- Comment #5 from Dominik Vogt vogt at linux dot vnet.ibm.com ---
With -O2 and -O3 all three cases generate the proper alignment
With -O1 only foo() has the proper alignment
With -O0 none of the cases has the proper alignment

== Code compiled with -O0 and -O3 accidentally uses a different ABI.

Power shows the same erratic behaviour, on amd64 alignment works with all
-O{0,1,2,3}.


[Bug c++/60182] g++ segfault within template expansion using using aliasing

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60182

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

Version|4.8.2   |4.9.0
   Target Milestone|4.9.0   |4.7.4


[Bug ipa/60327] [4.9 Regression] xalanbmk and dealII ICE in ipa-inline-analysis.c:3555

2014-02-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60327

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Wed Feb 26 08:39:48 2014
New Revision: 208167

URL: http://gcc.gnu.org/viewcvs?rev=208167root=gccview=rev
Log:
2014-02-26  Richard Biener  rguent...@suse.de

PR ipa/60327
* ipa.c (walk_polymorphic_call_targets): Properly guard
call to inline_update_overall_summary.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa.c


[Bug c++/60342] New: -Wsign-conversion ignores explicit conversion

2014-02-26 Thread woodroof at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60342

Bug ID: 60342
   Summary: -Wsign-conversion ignores explicit conversion
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: woodroof at gmail dot com

Simple example:
#include cstddef
#include limits

int main()
{
int int_value;
if (std::numeric_limitssize_t::max() -
static_castsize_t(int_value))
{
}
}

Result:
1.cpp: In function ‘int main()’:
1.cpp:7:72: warning: conversion to ‘long unsigned int’ from ‘int’ may change
the sign of the result [-Wsign-conversion]
  if (std::numeric_limitssize_t::max() - static_castsize_t(int_value))
^

If I change numeric_limits::max to any size_t variable, warning will not be
generated. There is no warning also if I used usigned instead of size_t.

Possible the same problem as in bug 49626, but there is no conversion to a
wider type.

[Bug bootstrap/60343] New: r208155 breaks bootstrap

2014-02-26 Thread izamyatin at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60343

Bug ID: 60343
   Summary: r208155 breaks bootstrap
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
  Assignee: unassigned at gcc dot gnu.org
  Reporter: izamyatin at gmail dot com

Message:

../../gcc/lra-assigns.c: In function ‘int spill_for(int, bitmap)’:
../../gcc/lra-assigns.c:901:4: error: comparison between signed and unsigned
integer expressions [-Werror=sign-compare]
= LRA_MAX_CONSIDERED_RELOAD_PSEUDOS)


Could be seen on x86_64, say, for 
../configure --enable-clocale=gnu --with-system-zlib --enable-shared
--with-demangler-in-ld --with-fpmath=sse
--enable-languages=c,c++,fortran,java,lto,objc

[Bug middle-end/36043] gcc reads 8 bytes for a struct of size 6 which leads to sigsegv

2014-02-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36043

--- Comment #23 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Michael Matz from comment #8)
 FWIW, I think the error is in the caller of move_block_to_reg. 
 move_block_to_reg can make use of a load_multiple instruction, which really
 loads full regs.  I.e. it would be unreasonable to require changes in
 move_block_to_reg to handle non-power-of-2 sizes.  Hence the caller
 (load_register_parameters) needs to handle this.  I'm not sure if the
 n_aligned_regs thingy could be misused for this, or if one simply should
 opencode the special case of the last register being partial.

That would be sth like

Index: gcc/calls.c
===
--- gcc/calls.c (revision 208124)
+++ gcc/calls.c (working copy)
@@ -1984,7 +1984,26 @@ load_register_parameters (struct arg_dat
emit_move_insn (ri, x);
}
  else
-   move_block_to_reg (REGNO (reg), mem, nregs, args[i].mode);
+   {
+ if (size % UNITS_PER_WORD == 0
+ || MEM_ALIGN (mem) % BITS_PER_WORD == 0)
+   move_block_to_reg (REGNO (reg), mem, nregs, args[i].mode);
+ else
+   {
+ if (nregs  1)
+   move_block_to_reg (REGNO (reg), mem,
+  nregs - 1, args[i].mode);
+ rtx dest = gen_rtx_REG (word_mode,
+ REGNO (reg) + nregs - 1);
+ rtx src = operand_subword_force (mem,
+  nregs - 1,
args[i].mode);
+ rtx tem = extract_bit_field (src, size * BITS_PER_UNIT,
+  0, 1, dest, word_mode,
+  word_mode);
+ if (tem != dest)
+   convert_move (dest, tem, 1);
+   }
+   }
}

  /* When a parameter is a block, and perhaps in other cases, it is

it's similar to what store_unaligned_arguments_into_pseudos would end up
doing but only for the last register (so it's probably easier to dispatch
to that and handle !STRICT_ALIGNMENT targets there).

Anyway, the generated code is of course horrible.

foo:
.LFB0:
.cfi_startproc
movq%rdi, %rcx
movzwl  (%rdi), %edx
movzwl  2(%rdi), %edi
salq$16, %rdi
movq%rdi, %rax
movzwl  4(%rcx), %edi
orq %rdx, %rax
salq$32, %rdi
orq %rax, %rdi
jmp print_colour

for some reason extract_bit_field doesn't consider using a 4-byte load
for the first part.  With AVX one could also use a masked load (and thus
implement the extv/insv pattern family?  not sure if it is valid to
reject non-byte boundary variants).  But if we end up using
extract_bit_field more and more it's worth optimizing it further to
avoid the above mess... (we end up using extract_split_bit_field).


[Bug ipa/60327] [4.9 Regression] xalanbmk and dealII ICE in ipa-inline-analysis.c:3555

2014-02-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60327

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug fortran/60341] ICE compiling Nonmem 6.2.0

2014-02-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60341

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-02-26
 Ever confirmed|0   |1
  Known to fail||4.7.3, 4.8.2, 4.9.0

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.

f951: internal compiler error: Segmentation fault
0xc5fa7a crash_signal
/space/rguenther/src/svn/trunk/gcc/toplev.c:337
0x6ec628 gfc_dep_compare_expr(gfc_expr*, gfc_expr*)
/space/rguenther/src/svn/trunk/gcc/fortran/dependency.c:345
0x79503e optimize_comparison
/space/rguenther/src/svn/trunk/gcc/fortran/frontend-passes.c:1402
0x794af2 optimize_op
/space/rguenther/src/svn/trunk/gcc/fortran/frontend-passes.c:1222
0x7929fd optimize_expr
/space/rguenther/src/svn/trunk/gcc/fortran/frontend-passes.c:170
0x795b8c gfc_expr_walker(gfc_expr**, int (*)(gfc_expr**, int*, void*), void*)
/space/rguenther/src/svn/trunk/gcc/fortran/frontend-passes.c:1787
0x797866 gfc_code_walker(gfc_code**, int (*)(gfc_code**, int*, void*), int
(*)(gfc_expr**, int*, void*), void*)
/space/rguenther/src/svn/trunk/gcc/fortran/frontend-passes.c:2134


[Bug libstdc++/52015] std::to_string does not work under MinGW

2014-02-26 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015

--- Comment #36 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to Roman from comment #35)
 Tried to apply proposed patch for MinGW 4.8.1 and received no positive
 effect. Compiler tells about error : 'stoi' was not declared in this scope.
 Have any Idea how to fix it?

Not enough information to be useful.

Did you even use -std=c++11 ? 

Noone here can debug your modified sources, you'll have to look into what is or
isn't defined on your system after the patch. Try looking at the preprocessed
source, for example.


[Bug bootstrap/60343] r208155 breaks bootstrap

2014-02-26 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60343

--- Comment #1 from Uroš Bizjak ubizjak at gmail dot com ---
Following patch works for me:

--cut here--
Index: lra-assigns.c
===
--- lra-assigns.c   (revision 208168)
+++ lra-assigns.c   (working copy)
@@ -898,7 +898,7 @@ spill_for (int regno, bitmap spilled_pseudo_bitmap
}
   n = 0;
   if (sparseset_cardinality (live_range_reload_inheritance_pseudos)
- = LRA_MAX_CONSIDERED_RELOAD_PSEUDOS)
+ = (unsigned) LRA_MAX_CONSIDERED_RELOAD_PSEUDOS)
EXECUTE_IF_SET_IN_SPARSESET (live_range_reload_inheritance_pseudos,
 reload_regno)
  if ((int) reload_regno != regno
--cut here--

[Bug tree-optimization/60340] ICE on valid code with -fcheck-data-deps at -O1 and above on x86_64-linux-gnu

2014-02-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60340

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
I'm not sure that -fcheck-data-deps has been kept up-to-date enough to be
useful ... (and the omega result looks bogus)


[Bug bootstrap/60343] [4.9 Regression] r208155 breaks bootstrap

2014-02-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60343

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-02-26
   Target Milestone|--- |4.9.0
Summary|r208155 breaks bootstrap|[4.9 Regression] r208155
   ||breaks bootstrap
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.


[Bug c++/60344] New: [C++1y] 7.1.6.4/13 not enforced

2014-02-26 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60344

Bug ID: 60344
   Summary: [C++1y] 7.1.6.4/13 not enforced
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: paolo.carlini at oracle dot com

Looks like we are wrongly accepting:

auto f();
decltype(auto) f();


[Bug bootstrap/60343] [4.9 Regression] r208155 breaks bootstrap

2014-02-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60343

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Wed Feb 26 10:29:04 2014
New Revision: 208170

URL: http://gcc.gnu.org/viewcvs?rev=208170root=gccview=rev
Log:
2014-02-26  Richard Biener  rguent...@suse.de

PR bootstrap/60343
* lra-assigns.c (spill_for): Avoid mixed-sign comparison.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/lra-assigns.c


[Bug rtl-optimization/60317] [4.9 Regression] find_hard_regno_for compile time hog in libvpx

2014-02-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60317
Bug 60317 depends on bug 60343, which changed state.

Bug 60343 Summary: [4.9 Regression] r208155 breaks bootstrap
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60343

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED


[Bug bootstrap/60343] [4.9 Regression] r208155 breaks bootstrap

2014-02-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60343

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug c++/60345] New: [4.9 Regression] r208159 cause Firefox build error

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

Bug ID: 60345
   Summary: [4.9 Regression] r208159 cause Firefox build error
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: trippels at gcc dot gnu.org
CC: jason at gcc dot gnu.org

With r208159 I get during Firefox build:

markus@x4 src % g++ -w -c -std=gnu++0x Parser.ii
/var/tmp/mozilla-central/js/src/frontend/Parser.cpp: In member function ‘bool
js::frontend::ParseContextParseHandler::define(js::frontend::TokenStream,
js::HandlePropertyN
ame, js::frontend::ParseContextParseHandler::Node,
js::frontend::Definition::Kind) [with ParseHandler =
js::frontend::FullParseHandler; js::HandlePropertyName = JS::Handle
js::PropertyName*; js::frontend::ParseContextParseHandler::Node =
js::frontend::ParseNode*]’:
/var/tmp/mozilla-central/js/src/frontend/Parser.cpp:132:37: error: no matching
function for call to ‘js::InlineMapJSAtom*, js::frontend::DefinitionSingle,
24ul::remove(js::
HandlePropertyName)’
 lexdeps-remove(name);
 ^
/var/tmp/mozilla-central/js/src/frontend/Parser.cpp:132:37: note: candidates
are:
In file included from
/var/tmp/mozilla-central/js/src/frontend/ParseMaps.h:13:0,
 from /var/tmp/mozilla-central/js/src/vm/Runtime.h:29,
 from /var/tmp/mozilla-central/js/src/jscntxt.h:15,
 from
/var/tmp/mozilla-central/js/src/frontend/TokenStream.h:19,
 from /var/tmp/mozilla-central/js/src/frontend/ParseNode.h:12,
 from
/var/tmp/mozilla-central/js/src/frontend/FullParseHandler.h:12,
 from /var/tmp/mozilla-central/js/src/frontend/Parser.h:17,
 from /var/tmp/mozilla-central/js/src/frontend/Parser-inl.h:10,
 from /var/tmp/mozilla-central/js/src/frontend/Parser.cpp:20:
/var/tmp/mozilla-central/js/src/ds/InlineMap.h:282:10: note: void
js::InlineMapK, V, InlineElems::remove(js::InlineMapK, V, InlineElems::Ptr)
[with K = JSAtom*; V = js::f
rontend::DefinitionSingle; long unsigned int InlineElems = 24ul]
 void remove(Ptr p) {
  ^
/var/tmp/mozilla-central/js/src/ds/InlineMap.h:282:10: note:   no known
conversion for argument 1 from ‘js::HandlePropertyName {aka
JS::Handlejs::PropertyName*}’ to ‘js::In
lineMapJSAtom*, js::frontend::DefinitionSingle, 24ul::Ptr’
/var/tmp/mozilla-central/js/src/ds/InlineMap.h:295:10: note: void
js::InlineMapK, V, InlineElems::remove(const K) [with K = JSAtom*; V =
js::frontend::DefinitionSingle; lo
ng unsigned int InlineElems = 24ul]
 void remove(const K key) {
  ^
/var/tmp/mozilla-central/js/src/ds/InlineMap.h:295:10: note:   no known
conversion for argument 1 from ‘js::HandlePropertyName {aka
JS::Handlejs::PropertyName*}’ to ‘JSAtom
* const’
/var/tmp/mozilla-central/js/src/frontend/Parser.cpp: In member function ‘bool
js::frontend::ParseContextParseHandler::define(js::frontend::TokenStream,
js::HandlePropertyN
ame, js::frontend::ParseContextParseHandler::Node,
js::frontend::Definition::Kind) [with ParseHandler =
js::frontend::SyntaxParseHandler; js::HandlePropertyName = JS::Handl
ejs::PropertyName*; js::frontend::ParseContextParseHandler::Node =
js::frontend::SyntaxParseHandler::Node]’:


Reducing...

[Bug c++/60345] [4.9 Regression] r208159 causes Firefox build error

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Created attachment 32218
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32218action=edit
unreduced testcase


[Bug c++/60345] [4.9 Regression] r208159 causes Firefox build error

2014-02-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0


[Bug c++/60345] [4.9 Regression] r208159 causes Firefox build error

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

--- Comment #2 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
markus@x4 src % cat test.ii
class A {};
template typename T class Handle : A {
public:
  operator T ();
};

class JSAtom {};
class PropertyName : public JSAtom {};
template typename K, typename, int class InlineMap {
public:
  void remove(const K );
};
class DefinitionSingle;
template class Map struct AtomThingMapPtr {
  Map *operator-();
};
template typename AtomThingMapPtrT class D : public AtomThingMapPtrT {};

struct B : AtomThingMapPtrInlineMapJSAtom *, DefinitionSingle, 0  {};
class TokenStream;
class ParseNode {};
struct Definition : ParseNode {
  enum Kind {};
};
class FullParseHandler {
public:
  typedef ParseNode *Node;
};
struct C {};
template typename struct ParseContext : C {
  bool define(TokenStream , HandlePropertyName *, FullParseHandler::Node,
  Definition::Kind);
  DB lexdeps;
};
template 
bool ParseContextFullParseHandler::define(TokenStream ,
HandlePropertyName * name,
ParseNode *, Definition::Kind) {
  lexdeps-remove(name);
}


markus@x4 src % g++ -std=gnu++0x -c test.ii
test.ii: In member function ‘bool ParseContext template-parameter-1-1
::define(TokenStream, HandlePropertyName*, FullParseHandler::Node,
Definition::Kind) [with template-parameter-1-1 = FullParseHandler;
FullParseHandler::Node = ParseNode*]’:
test.ii:39:23: error: no matching function for call to ‘InlineMapJSAtom*,
DefinitionSingle, 0::remove(HandlePropertyName*)’
   lexdeps-remove(name);
   ^
test.ii:39:23: note: candidate is:
test.ii:11:8: note: void InlineMapK, template-parameter-1-2, anonymous
::remove(const K) [with K = JSAtom*; template-parameter-1-2 =
DefinitionSingle; int anonymous = 0]
   void remove(const K );
^
test.ii:11:8: note:   no known conversion for argument 1 from
‘HandlePropertyName*’ to ‘JSAtom* const’

[Bug c++/60345] [4.9 Regression] r208159 causes Firefox build error

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

--- Comment #3 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
markus@x4 src % cat test.ii
template typename T struct A {
  operator T ();
};
class C {};
class J : public C {};
template typename K struct F {
  void m_fn1(const K );
};
template typename AtomThingMapPtrT struct D : AtomThingMapPtrT {};
struct B {
  FC * *operator-();
};
struct G {
  enum Kind {};
};
struct H {
  typedef G *Node;
};
template typename struct I {
  bool m_fn1(int , AJ *, H::Node, G::Kind);
  DB lexdeps;
};
template  bool Iint::m_fn1(int , AJ * p2, G *, G::Kind) {
  lexdeps-m_fn1(p2);
}


[Bug middle-end/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

2014-02-26 Thread dcb314 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176

--- Comment #7 from David Binderman dcb314 at hotmail dot com ---
(In reply to David Binderman from comment #6)
 I have another test case, available on request.

Still going wrong. 

From the gcc test suite, g++.old-deja/g++.jason/thunk1.C
is fine with -O2 and then goes wrong with -O3.


[Bug c++/60345] [4.9 Regression] r208159 causes Firefox build error

2014-02-26 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

--- Comment #4 from Marc Glisse glisse at gcc dot gnu.org ---
template typename T struct A {
  operator T ();
};
struct C {};
struct J : C {};
void f(C* const);
void g(AJ * p2) {
  f(p2);
}


[Bug c++/60345] [4.9 Regression] r208159 causes Firefox build error

2014-02-26 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

--- Comment #5 from Marc Glisse glisse at gcc dot gnu.org ---
struct C {};
struct J : C {};
struct A {
  operator J* ();
};
A p;
C* const q = p;

(I'll stop there ;-)


[Bug target/57232] wcstol.c:213:1: internal compiler error

2014-02-26 Thread jon at beniston dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57232

--- Comment #18 from Jon Beniston jon at beniston dot com ---
Thanks, this seems to fix the LM32 port.


[Bug c++/60182] g++ segfault within template expansion using using aliasing

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60182

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org


[Bug c++/60345] [4.9 Regression] r208159 causes Firefox build error

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-02-26
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org
 Ever confirmed|0   |1


[Bug c++/60345] [4.9 Regression] r208159 causes Firefox build error

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 16:48:22 2014
New Revision: 208175

URL: http://gcc.gnu.org/viewcvs?rev=208175root=gccview=rev
Log:
PR c++/60345
Revert:
DR 1571
* call.c (reference_binding): Recurse on user-defined conversion.
(convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.

Removed:
trunk/gcc/testsuite/g++.dg/cpp0x/rv-init1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/testsuite/g++.dg/cpp0x/overload3.C


[Bug c++/60345] [4.9 Regression] r208159 causes Firefox build error

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Jason Merrill jason at gcc dot gnu.org ---
Fixed by reverting r208159.


[Bug c++/60345] [4.9 Regression] r208159 causes Firefox build error

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60345

--- Comment #8 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 16:51:14 2014
New Revision: 208176

URL: http://gcc.gnu.org/viewcvs?rev=208176root=gccview=rev
Log:
PR c++/60345
* g++.dg/conversion/ref1.C: New.

Added:
trunk/gcc/testsuite/g++.dg/conversion/ref1.C


[Bug c++/60182] g++ segfault within template expansion using using aliasing

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60182

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 17:01:12 2014
New Revision: 208177

URL: http://gcc.gnu.org/viewcvs?rev=208177root=gccview=rev
Log:
PR c++/60182
* pt.c (unify): Ignore alias templates when deducing a template
template parameter.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/alias-decl-41.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c


[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

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

   What|Removed |Added

Summary|va_start corrupts 6-th  |empty struct value is
   |argument in case of empty   |passed differently in C and
   |type used before the format |C++
   |string  |

--- Comment #4 from H.J. Lu hjl.tools at gmail dot com ---
(In reply to Andrew Pinski from comment #3)
 (In reply to H.J. Lu from comment #2)
  Should g++ put pass the empty struct on stack?
 
 It is a target bug if it is passing on the stack.  Note in C++, the size of
 the struct is 1 while in C, the size is 0.

Can someone try this on non-x86 targets?

[hjl@gnu-6 pr60336]$ cat x.ii 
struct dummy { };
struct foo
{
  int i1;
  int i2;
  int i3;
  int i4;
  int i5;
};

extern C void fun(struct dummy, struct foo);

int main()
{
  struct dummy d;
  struct foo f = { -1, -2, -3, -4, -5 };

  fun(d, f);
  return 0;
}
[hjl@gnu-6 pr60336]$ cat fun.i 
struct dummy { };
struct foo
{
  int i1;
  int i2;
  int i3;
  int i4;
  int i5;
};

void fun(struct dummy d, struct foo f)
{
  if (f.i1 != -1)
__builtin_abort();
}
[hjl@gnu-6 pr60336]$ gcc -c fun.i 
[hjl@gnu-6 pr60336]$ gcc -c x.ii
[hjl@gnu-6 pr60336]$ g++ fun.o x.o
[hjl@gnu-6 pr60336]$ ./a.out 
Aborted
[hjl@gnu-6 pr60336]$ 

Is this test valid? BTW, clang works fine on x86.


[Bug c++/54440] [c++11] g++ prematurely applying rule that a template parameter pack cannot be followed by a template parameter

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54440

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 17:08:20 2014
New Revision: 208178

URL: http://gcc.gnu.org/viewcvs?rev=208178root=gccview=rev
Log:
PR c++/54440
* pt.c (get_template_parm_index): New.
(fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
(process_template_parm): Allow bare packs in template template
parm template parms.
(coerce_template_parameter_pack): Handle fixed template template
parm packs and fixed packs not at the end of the parm list.
(coerce_template_parms): Handle template parm packs not at the end
of the parm list.
(gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/variadic151.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic152.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/g++.dg/cpp0x/variadic74.C


[Bug c++/60182] g++ segfault within template expansion using using aliasing

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60182

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.9.0
  Known to fail|4.9.0   |

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org ---
Fixed in 4.9 so far.


[Bug c++/54440] [c++11] g++ prematurely applying rule that a template parameter pack cannot be followed by a template parameter

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54440

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.9.0

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org ---
Applied (with minor tweaks).


[Bug c++/56427] [C++11] template template parameter template parameter pack that depends on another parameter pack

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56427
Bug 56427 depends on bug 54440, which changed state.

Bug 54440 Summary: [c++11] g++ prematurely applying rule that a template 
parameter pack cannot be followed by a template parameter
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54440

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED


[Bug middle-end/59223] -Wmaybe-uninitialized and -Wuninitialized relationships

2014-02-26 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59223

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 CC||msebor at gmail dot com

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
*** Bug 60294 has been marked as a duplicate of this bug. ***


[Bug middle-end/59223] -Wmaybe-uninitialized and -Wuninitialized relationships

2014-02-26 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59223

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-02-26
 CC||mpolacek at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
I'll post a patch.


[Bug c/60294] missing diagnostic with -Wmaybe-uninitialized

2014-02-26 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60294

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||mpolacek at gcc dot gnu.org
 Resolution|--- |DUPLICATE

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
Seems like a dup.

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


[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #5 from Uroš Bizjak ubizjak at gmail dot com ---
(In reply to Andrew Pinski from comment #3)

 It is a target bug if it is passing on the stack.  Note in C++, the size of
 the struct is 1 while in C, the size is 0.

Changing the testcase a bit:

  fun(d, 2, 3, 4, 5, 6, 7, 8);

cc1plus -O2 -maccumulate-outgoing-args:

xorl%eax, %eax
movl$7, %r9d
movl$8, 8(%rsp)
movb$0, (%rsp)  --- this shouldn't be there.
movl$6, %r8d
movl$5, %ecx
movl$4, %edx
movl$3, %esi
movl$2, %edi
call_Z3fun5dummyiz

clang -O2:

movl$8, (%rsp)
movl$3, %esi
movl$4, %edx
movl$5, %ecx
movl$6, %r8d
movl$7, %r9d
xorl%eax, %eax
callq   _Z3fun5dummyiz

[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #6 from Uroš Bizjak ubizjak at gmail dot com ---
(In reply to H.J. Lu from comment #4)

 Can someone try this on non-x86 targets?

I get abort on alpha:

$ gcc -c fun.i
$ gcc -c x.ii
$ g++ fun.o x.o
$ ./a.out
Aborted

[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #7 from Andrew Pinski pinskia at gcc dot gnu.org ---
(In reply to H.J. Lu from comment #4)
 Is this test valid? BTW, clang works fine on x86.

No this testcase is not valid at all.  See
http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Empty-Structures.html#Empty-Structures
where it is documented it is not valid.


[Bug c++/59231] [4.8/4.9 Regression] gcc misses [-Werror=sign-compare] when inside a template

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59231

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org


[Bug c++/59570] Warning for semicolon trailing closing curly brackets

2014-02-26 Thread eugene.zelenko at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59570

Eugene Zelenko eugene.zelenko at gmail dot com changed:

   What|Removed |Added

   Keywords||diagnostic

--- Comment #1 from Eugene Zelenko eugene.zelenko at gmail dot com ---
Clang (I just tried 3.4) have such warning (-Wextra-semi).


[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #8 from H.J. Lu hjl.tools at gmail dot com ---
This works:

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 00773d8..16669b9 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -7193,6 +7193,7 @@ function_arg_advance_64 (CUMULATIVE_ARGS *cum, enum
machine_mode mode,
 return;

   if (examine_argument (mode, type, 0, int_nregs, sse_nregs)
+   (sse_nregs || int_nregs)
sse_nregs = cum-sse_nregs  int_nregs = cum-nregs)
 {
   cum-nregs -= int_nregs;


[Bug fortran/60341] ICE compiling Nonmem 6.2.0

2014-02-26 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60341

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org

--- Comment #4 from kargl at gcc dot gnu.org ---
Reduced testcase 

  subroutine modelg(ncm)
  implicit none
  integer, parameter :: pc = 30, pm = pc - 1
  integer i
  character*4 catt(pm,2)
  integer ncm,iatt(pm,pc)
  do i=1,ncm
 if (catt(i,1)//catt(i,2).eq.'central') exit
  end do
  iatt(i,4)=1
  end


[Bug c++/60347] New: [4.9 Regression] r208152 breaks Firefox build

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60347

Bug ID: 60347
   Summary: [4.9 Regression] r208152 breaks Firefox build
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: trippels at gcc dot gnu.org
CC: jason at gcc dot gnu.org

markus@x4 html % g++ -c -w -march=amdfam10 -std=gnu++0x -O2
Unified_cpp_parser_html1.ii
In file included from ../../dist/include/nsHashKeys.h:12:0,
 from
/var/tmp/mozilla-central/parser/html/nsHtml5AtomTable.h:8,
 from
/var/tmp/mozilla-central/parser/html/nsHtml5AttributeName.h:32,
 from
/var/tmp/mozilla-central/parser/html/nsHtml5ReleasableAttributeName.h:8,
 from
/var/tmp/mozilla-central/parser/html/nsHtml5ReleasableAttributeName.cpp:5,
 from
/var/tmp/moz-build-dir/parser/html/Unified_cpp_parser_html1.cpp:2:
../../dist/include/nsAutoPtr.h: In instantiation of ‘nsRefPtrT::~nsRefPtr()
[with T = mozilla::dom::ShadowRoot]’:
/var/tmp/mozilla-central/parser/html/../../content/base/src/nsGenericDOMDataNode.h:247:9:
  required from here
../../dist/include/nsAutoPtr.h:900:13: error: invalid use of incomplete type
‘class mozilla::dom::ShadowRoot’
 mRawPtr-Release();
 ^
In file included from
/var/tmp/mozilla-central/parser/html/nsHtml5AttributeName.h:35:0,
 from
/var/tmp/mozilla-central/parser/html/nsHtml5ReleasableAttributeName.h:8,
 from
/var/tmp/mozilla-central/parser/html/nsHtml5ReleasableAttributeName.cpp:5,
 from
/var/tmp/moz-build-dir/parser/html/Unified_cpp_parser_html1.cpp:2:
../../dist/include/nsIContent.h:25:7: error: forward declaration of ‘class
mozilla::dom::ShadowRoot’
 class ShadowRoot;
   ^

[Bug c++/60347] [4.9 Regression] r208152 breaks Firefox build

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60347

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Created attachment 32219
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32219action=edit
Unreduced testcase


[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread vagran.ast at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #9 from vagran vagran.ast at gmail dot com ---
(In reply to Andrew Pinski from comment #7)
 (In reply to H.J. Lu from comment #4)
  Is this test valid? BTW, clang works fine on x86.
 
 No this testcase is not valid at all.  See
 http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Empty-Structures.html#Empty-
 Structures where it is documented it is not valid.

How it proves that the test case is invalid? Independently on what size has
empty structure the called function absolutely legally can expect it receives
the values which were passed by the caller. A compiler should care it works for
both C and C++. Am I wrong?

Also as I remember in C++ size of empty structure is sizeof(char) except the
case some class is derived from the empty structure. In this case it adds no
overhead to the size of the derived class itself (thus virtually has zero size
in this case).


[Bug libquadmath/60349] New: Any call to expq (or libquadmath function that might possibly call expq) segfaults in mingw-gcc.

2014-02-26 Thread john at johnmaddock dot co.uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60349

Bug ID: 60349
   Summary: Any call to expq (or libquadmath function that might
possibly call expq) segfaults in mingw-gcc.
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: libquadmath
  Assignee: unassigned at gcc dot gnu.org
  Reporter: john at johnmaddock dot co.uk

This effects gcc-4.8.1 and 4.8.2 (at least), on both mingw32 and mingw64, the
following program segfaults:


#include quadmath.h

int main()
{
   __float128 a = expq(2.0Q);
return 0;
}

Mingw gcc-4.7.x and Linux are obviously both fine.


[Bug libstdc++/60348] New: -static-libstdc++ broken

2014-02-26 Thread nachms+gcc at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60348

Bug ID: 60348
   Summary: -static-libstdc++ broken
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: nachms+gcc at gmail dot com

-static-libstdc++ does not seem to be working anymore.
Consider this following test application:

-
#include iostream
#include string

int main()
{
  std::string s;
  if (s.empty()) { std::cout  String is empty!  std::endl; }
  return(0);
}
-
g++ -Wall -o test test.cpp -static-libgcc -static-libstdc++

test here should not contain any references to libstdc++ symbols as it is
being linked statically, however, objdump -T test contains the following:
006915c0 uDO .bss   0020  Base   
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE
00691600 uDO .bss   0020  Base   
_ZNSs4_Rep20_S_empty_rep_storageE

These are both symbols from libstdc++ that should have been staticaly linked,
yet they are now undefined, and indeed, this binary will not run on a system
without a sufficiently up to date libstdc++ installed.



Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.8.2-16'
--with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.8 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap
--enable-plugin --with-system-zlib --disable-browser-plugin
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Debian 4.8.2-16)

GNU ld (GNU Binutils for Debian) 2.24


[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #10 from Andrew Pinski pinskia at gcc dot gnu.org ---
(In reply to vagran from comment #9)
 (In reply to Andrew Pinski from comment #7)
  (In reply to H.J. Lu from comment #4)
   Is this test valid? BTW, clang works fine on x86.
  
  No this testcase is not valid at all.  See
  http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Empty-Structures.html#Empty-
  Structures where it is documented it is not valid.
 
 How it proves that the test case is invalid?

I am not saying the original testcase (variable argument case) is invalid, just
the testcase where you are passing an empty struct between C and C++ one is
invalid.


[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #11 from H.J. Lu hjl.tools at gmail dot com ---
This patch may be better:

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 00773d8..426146a 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -6842,7 +6842,7 @@ examine_argument (enum machine_mode mode, const_tree
type, int in_return,
   case X86_64_MEMORY_CLASS:
   gcc_unreachable ();
   }
-  return 1;
+  return *int_nregs || *sse_nregs;
 }

 /* Construct container for the argument used by GCC interface.  See


[Bug c++/60347] [4.9 Regression] r208153 breaks Firefox build

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60347

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

Summary|[4.9 Regression] r208152|[4.9 Regression] r208153
   |breaks Firefox build|breaks Firefox build

--- Comment #2 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Sorry off by one in revision. 
It started with r208153.


[Bug fortran/60341] ICE compiling Nonmem 6.2.0

2014-02-26 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60341

--- Comment #5 from Steve Kargl sgk at troutmask dot apl.washington.edu ---
On Wed, Feb 26, 2014 at 07:15:49PM +, kargl at gcc dot gnu.org wrote:

The workaround should be obvious, but just encase

 Reduced testcase 
 
   subroutine modelg(ncm)
   implicit none
   integer, parameter :: pc = 30, pm = pc - 1
   integer i
   character*4 catt(pm,2)

character(len=7) stmp

   integer ncm,iatt(pm,pc)
   do i=1,ncm

   stmp = catt(i,1)//catt(i,2)
   if (stmp .eq. 'central') exit

  if (catt(i,1)//catt(i,2).eq.'central') exit
   end do
   iatt(i,4)=1
   end

A similar temporary should be applicable to the original code.


[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #12 from Marc Glisse glisse at gcc dot gnu.org ---
It is a bit alarming that gcc, clang and clang++ use one ABI and g++ uses a
different (inferior) one (the incompatibility with clang++ should affect some
standard library functions, though they are often inlined). Also, extern C is
a calling convention marker, and it is rather disrespectful of g++ to ignore
it, even if this is only about a non-standard (but documented) extension.


[Bug c++/59598] very simple code using file open for read

2014-02-26 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Denis Kolesnik denis.v.koles...@safe-mail.net changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |---

--- Comment #56 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
it is a bug and if it is related to DMZ so as I think I will not do any
diplomacy on it.


[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #13 from H.J. Lu hjl.tools at gmail dot com ---
Passing

struct dummy { };

is still odd for g++.  It is supposed to have a single member of type char,
which should be passed in register, not on stack.


[Bug c++/60347] [4.9 Regression] r208153 breaks Firefox build

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60347

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-02-26
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org
 Ever confirmed|0   |1


[Bug spam/59598] very simple code using file open for read

2014-02-26 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Component|c++ |spam
 Resolution|--- |INVALID

--- Comment #57 from Jonathan Wakely redi at gcc dot gnu.org ---
go away


[Bug fortran/60341] ICE compiling Nonmem 6.2.0

2014-02-26 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60341

Mikael Morin mikael at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mikael at gcc dot gnu.org

--- Comment #6 from Mikael Morin mikael at gcc dot gnu.org ---
Looks like an unguarded union access.
This is a regression from the time there was now front-end optimization I
guess?

diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c
index 52bd700..e663868 100644
--- a/gcc/fortran/frontend-passes.c
+++ b/gcc/fortran/frontend-passes.c
@@ -1391,7 +1391,9 @@ optimize_comparison (gfc_expr *e, gfc_intrinsic_op op)
   /* Replace A // B  A // C with B  C, and A // B  C // B
  with A  C.  */
   if (op1-ts.type == BT_CHARACTER  op2-ts.type == BT_CHARACTER
+   op1-expr_type == EXPR_OP
op1-value.op.op == INTRINSIC_CONCAT
+   op2-expr_type == EXPR_OP
op2-value.op.op == INTRINSIC_CONCAT)
 {
   gfc_expr *op1_left = op1-value.op.op1;


[Bug c++/60347] [4.9 Regression] r208153 breaks Firefox build

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60347

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P1  |P3
 Status|ASSIGNED|UNCONFIRMED
   Last reconfirmed|2014-02-26 00:00:00 |
   Assignee|jason at gcc dot gnu.org   |unassigned at gcc dot 
gnu.org
 Ever confirmed|1   |0

--- Comment #3 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
markus@x4 html % cat test.ii
template class T class nsRefPtr {
  T *mRawPtr;

public:
  typedef T element_type;
  ~nsRefPtr() { mRawPtr-Release; }
};

class nsSlots {
public:
  virtual ~nsSlots();
};
class A;
class B : nsSlots {
  nsRefPtrA mContainingShadow;
};

markus@x4 html % g++ -O2 -c test.ii
test.ii: In instantiation of ‘nsRefPtrT::~nsRefPtr() [with T = A]’:
test.ii:14:7:   required from here
test.ii:6:17: error: invalid use of incomplete type ‘class A’
   ~nsRefPtr() { mRawPtr-Release; }
 ^
test.ii:13:7: error: forward declaration of ‘class A’
 class A;
   ^

[Bug c++/60347] [4.9 Regression] r208153 breaks Firefox build

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60347

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-02-26
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org
 Ever confirmed|0   |1


[Bug target/60336] empty struct value is passed differently in C and C++

2014-02-26 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #14 from H.J. Lu hjl.tools at gmail dot com ---
(In reply to H.J. Lu from comment #13)
 Passing
 
 struct dummy { };
 
 is still odd for g++.  It is supposed to have a single member of type char,
 which should be passed in register, not on stack.

This passes it in register:

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 00773d8..6975ff1 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -6613,6 +6613,8 @@ classify_argument (enum machine_mode mode, const_tree
type,
 return 0;
   }
   }
+  if (mode == QImode  words == 1  classes[0] == X86_64_NO_CLASS)
+  classes[0] = X86_64_INTEGERSI_CLASS;
   return words;
 }


[Bug lto/55113] ICE with LTO and -fshort-double

2014-02-26 Thread pmatos at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55113

--- Comment #13 from pmatos at gcc dot gnu.org ---
(In reply to Richard Biener from comment #11)
 If double_type_node is FE dependent then it needs treatment in
 tree-streamer.c:preload_common_nodes:
 
 static void
 preload_common_nodes (struct streamer_tree_cache_d *cache)
 {
   unsigned i;
 
   for (i = 0; i  itk_none; i++)
 /* Skip itk_char.  char_type_node is dependent on -f[un]signed-char.  */
 if (i != itk_char)
   record_common_node (cache, integer_types[i]);
 
   for (i = 0; i  stk_type_kind_last; i++)
 record_common_node (cache, sizetype_tab[i]);
 
   for (i = 0; i  TI_MAX; i++)
 /* Skip boolean type and constants, they are frontend dependent.  */
 if (i != TI_BOOLEAN_TYPE
  i != TI_BOOLEAN_FALSE
  i != TI_BOOLEAN_TRUE)
   record_common_node (cache, global_trees[i]);
 }

Richard,
I tried what you suggested but led me nowhere. In the meantime I noticed that
-fshort-double shows up in COLLECT_GCC_OPTIONS before collect2 is called:

COLLECT_GCC_OPTIONS='-fshort-double' '-flto' '-nostdlib' '-o' 'test'
'-save-temps' '-v' '-da' '-fdump-tree-all-all' '-mcpu=8540'

/home/pmatos/work/pr55113/top-4_8/toolchain/install/libexec/gcc/powerpc-eabispe/4.8.3/collect2
-plugin
/home/pmatos/work/pr55113/top-4_8/toolchain/install/libexec/gcc/powerpc-eabispe/4.8.3/liblto_plugin.so
-plugin-opt=/home/pmatos/work/pr55113/top-4_8/toolchain/install/libexec/gcc/powerpc-eabispe/4.8.3/lto-wrapper
-plugin-opt=-fresolution=pr55113.res -flto
--sysroot=/home/pmatos/work/pr55113/top-4_8/toolchain/prex_sysroot
--eh-frame-hdr -V -dn -Bstatic -o test
-L/home/pmatos/work/pr55113/top-4_8/toolchain/install/lib/gcc/powerpc-eabispe/4.8.3
-L/home/pmatos/work/pr55113/top-4_8/toolchain/install/lib/gcc/powerpc-eabispe/4.8.3/../../../../powerpc-eabispe/lib
pr55113.o

but not after when lto1 is called:
COLLECT_GCC_OPTIONS='-c' '-mcpu=8540' '-nostdlib' '-save-temps' '-v' '-da'
'-fdump-tree-all-all' '-mcpu=8540' '-dumpdir' './' '-dumpbase' 'test.wpa'
'-fltrans-output-list=test.ltrans.out' '-fwpa' '-fresolution=pr55113.res'

/home/pmatos/work/pr55113/top-4_8/toolchain/install/libexec/gcc/powerpc-eabispe/4.8.3/lto1
-quiet -da -dumpdir ./ -dumpbase test.wpa -mcpu=8540 -mcpu=8540 -auxbase
pr55113 -version -fdump-tree-all-all -fltrans-output-list=test.ltrans.out -fwpa
-fresolution=pr55113.res @/tmp/ccW7YQPl

Somewhere along the line the option is lost. It seems to be that only some
options are kept and optimization options are lost, like fshort-double.
However, in lto/lto-lang.c:lto_init you have:
  /* Create the basic integer types.  */
  build_common_tree_nodes (flag_signed_char, /*short_double=*/false);

This hardcodes short double to false. If I were to hardcode this to true,
Patricks example would work.

I think similarly to what we do in c-family/c-common.c:
  build_common_tree_nodes (flag_signed_char, flag_short_double);

we need to pass flag_short_double but the only way to do so is by letting
fshort-double pass through the flag filtering that goes on before lto1 is
called.

I will prepare a patch to add this exception, let me know if you think there's
a better way.


[Bug target/57636] cr16: ICE while building libgcc

2014-02-26 Thread jon at beniston dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57636

--- Comment #5 from Jon Beniston jon at beniston dot com ---
It's worth trying the fix posted for bug 57232.


[Bug c++/37140] type inherited from base class not recognized

2014-02-26 Thread fabien at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37140

--- Comment #16 from fabien at gcc dot gnu.org ---
Author: fabien
Date: Wed Feb 26 21:16:15 2014
New Revision: 208182

URL: http://gcc.gnu.org/viewcvs?rev=208182root=gccview=rev
Log:
2014-02-26  Fabien Chene  fab...@gcc.gnu.org
PR c++/37140
* parser.c (cp_parser_nonclass_name): Call strip_using_decl and
move the code handling dependent USING_DECLs...
* name-lookup.c (strip_using_decl): ...Here.

2014-02-26  Fabien Chene  fab...@gcc.gnu.org

PR c++/37140
* g++.dg/template/using27.C: New.
* g++.dg/template/using28.C: New.
* g++.dg/template/using29.C: New.

Added:
branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/using27.C
branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/using28.C
branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/using29.C
Modified:
branches/gcc-4_7-branch/gcc/cp/ChangeLog
branches/gcc-4_7-branch/gcc/cp/name-lookup.c
branches/gcc-4_7-branch/gcc/cp/parser.c
branches/gcc-4_7-branch/gcc/testsuite/ChangeLog


[Bug c++/59231] [4.8/4.9 Regression] gcc misses [-Werror=sign-compare] when inside a template

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59231

--- Comment #8 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 21:28:08 2014
New Revision: 208183

URL: http://gcc.gnu.org/viewcvs?rev=208183root=gccview=rev
Log:
PR c++/59231
PR c++/11586
PR c++/14710
PR c++/57132
gcc/
* c-common.c (shorten_compare): Don't check
c_inhibit_evaluation_warnings.
gcc/cp/
* pt.c (struct warning_sentinel): New.
(tsubst_copy_and_build): Use it instead of
c_inhibit_evaluation_warnings.

Added:
trunk/gcc/testsuite/g++.dg/warn/Wsign-compare-7.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/g++.dg/cilk-plus/AN/array_test2_tplt.cc
trunk/gcc/testsuite/g++.dg/cpp0x/overflow1.C


[Bug c++/14710] Warning about useless casts

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14710

--- Comment #12 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 21:28:08 2014
New Revision: 208183

URL: http://gcc.gnu.org/viewcvs?rev=208183root=gccview=rev
Log:
PR c++/59231
PR c++/11586
PR c++/14710
PR c++/57132
gcc/
* c-common.c (shorten_compare): Don't check
c_inhibit_evaluation_warnings.
gcc/cp/
* pt.c (struct warning_sentinel): New.
(tsubst_copy_and_build): Use it instead of
c_inhibit_evaluation_warnings.

Added:
trunk/gcc/testsuite/g++.dg/warn/Wsign-compare-7.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/g++.dg/cilk-plus/AN/array_test2_tplt.cc
trunk/gcc/testsuite/g++.dg/cpp0x/overflow1.C


[Bug c++/57132] spurious warning: division by zero [-Wdiv-by-zero] in if (m) res %=m;

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57132

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 21:28:08 2014
New Revision: 208183

URL: http://gcc.gnu.org/viewcvs?rev=208183root=gccview=rev
Log:
PR c++/59231
PR c++/11586
PR c++/14710
PR c++/57132
gcc/
* c-common.c (shorten_compare): Don't check
c_inhibit_evaluation_warnings.
gcc/cp/
* pt.c (struct warning_sentinel): New.
(tsubst_copy_and_build): Use it instead of
c_inhibit_evaluation_warnings.

Added:
trunk/gcc/testsuite/g++.dg/warn/Wsign-compare-7.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/g++.dg/cilk-plus/AN/array_test2_tplt.cc
trunk/gcc/testsuite/g++.dg/cpp0x/overflow1.C


[Bug c/11586] after call sigaction, system() return wrong status

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11586

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 21:28:08 2014
New Revision: 208183

URL: http://gcc.gnu.org/viewcvs?rev=208183root=gccview=rev
Log:
PR c++/59231
PR c++/11586
PR c++/14710
PR c++/57132
gcc/
* c-common.c (shorten_compare): Don't check
c_inhibit_evaluation_warnings.
gcc/cp/
* pt.c (struct warning_sentinel): New.
(tsubst_copy_and_build): Use it instead of
c_inhibit_evaluation_warnings.

Added:
trunk/gcc/testsuite/g++.dg/warn/Wsign-compare-7.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/g++.dg/cilk-plus/AN/array_test2_tplt.cc
trunk/gcc/testsuite/g++.dg/cpp0x/overflow1.C


[Bug lto/53808] Undefined symbol when building a library with lto

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53808

--- Comment #10 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 21:32:41 2014
New Revision: 208184

URL: http://gcc.gnu.org/viewcvs?rev=208184root=gccview=rev
Log:
PR c++/60347
PR lto/53808
* class.c (clone_function_decl): Don't note_vague_linkage_fn.
* init.c (build_vtbl_address): Do it here.

Added:
trunk/gcc/testsuite/g++.dg/template/dtor9.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/init.c


[Bug c++/60347] [4.9 Regression] r208153 breaks Firefox build

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60347

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 21:32:41 2014
New Revision: 208184

URL: http://gcc.gnu.org/viewcvs?rev=208184root=gccview=rev
Log:
PR c++/60347
PR lto/53808
* class.c (clone_function_decl): Don't note_vague_linkage_fn.
* init.c (build_vtbl_address): Do it here.

Added:
trunk/gcc/testsuite/g++.dg/template/dtor9.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/init.c


[Bug c++/59231] [4.8/4.9 Regression] gcc misses [-Werror=sign-compare] when inside a template

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59231

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|4.8.3   |4.9.0

--- Comment #9 from Jason Merrill jason at gcc dot gnu.org ---
Fixed for 4.9.


[Bug c++/30301] Invalid static member of anonymous class or union diagnosed too late

2014-02-26 Thread reichelt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30301

Volker Reichelt reichelt at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #2 from Volker Reichelt reichelt at gcc dot gnu.org ---
Jason, your commit

http://gcc.gnu.org/viewcvs/gcc?view=revisionrevision=208156

seems to have fixed this long-standing bug. Do you want to add these testcases
to the testsuite?


[Bug c++/60347] [4.9 Regression] r208153 breaks Firefox build

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60347

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.9.0

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org ---
Fixed.


[Bug c++/30301] Invalid static member of anonymous class or union diagnosed too late

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30301

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.9.0

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org ---
Done, thanks.


[Bug c++/30301] Invalid static member of anonymous class or union diagnosed too late

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30301

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Wed Feb 26 21:44:48 2014
New Revision: 208185

URL: http://gcc.gnu.org/viewcvs?rev=208185root=gccview=rev
Log:
PR c++/30301
* g++.dg/parse/unnamed2.C: New.

Added:
trunk/gcc/testsuite/g++.dg/parse/unnamed2.C


[Bug c++/58648] [c++11] ICE with variadic template

2014-02-26 Thread reichelt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58648

Volker Reichelt reichelt at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #1 from Volker Reichelt reichelt at gcc dot gnu.org ---
Jason, this bug was fixed by your patch for PR54440.
Do you want to add this testcase to the testsuite as well?


[Bug c++/59066] [C++11] 'using' instead of 'typedef' causes a segmentation fault.

2014-02-26 Thread reichelt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59066

Volker Reichelt reichelt at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #5 from Volker Reichelt reichelt at gcc dot gnu.org ---
Jason, your patch for PR60182 seems to have fixed this one, too.
Do you want to add the reduced testcase (in comment#4) to the testsuite?


[Bug target/57935] ICE in rs6000_secondary_reload_inner:15181, type = load

2014-02-26 Thread amodra at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57935

--- Comment #4 from Alan Modra amodra at gcc dot gnu.org ---
Author: amodra
Date: Wed Feb 26 21:57:40 2014
New Revision: 208186

URL: http://gcc.gnu.org/viewcvs?rev=208186root=gccview=rev
Log:
PR target/57935
* reload1.c (emit_input_reload_insns): When reload_override_in,
set old to rl-in_reg when rl-in_reg is a subreg.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/reload1.c


[Bug target/57936] ICE in rs6000_secondary_reload_inner:15144, type = load

2014-02-26 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57936

Alan Modra amodra at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Alan Modra amodra at gmail dot com ---
Blah, committed the patch with the wrong pr number, 57935 vs 57936.

Author: amodra
Date: Wed Feb 26 21:57:40 2014
New Revision: 208186

URL: http://gcc.gnu.org/viewcvs?rev=208186root=gccview=rev
Log:
PR target/57936
* reload1.c (emit_input_reload_insns): When reload_override_in,
set old to rl-in_reg when rl-in_reg is a subreg.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/reload1.c


[Bug fortran/60341] ICE compiling Nonmem 6.2.0

2014-02-26 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60341

--- Comment #7 from Steve Kargl sgk at troutmask dot apl.washington.edu ---
On Wed, Feb 26, 2014 at 08:38:57PM +, mikael at gcc dot gnu.org wrote:

 Looks like an unguarded union access.
 This is a regression from the time there was now front-end optimization I
 guess?

Unfortunately, I've deleted versions of gfortran older than
4.6.x.  The code fails with all version above 4.6.x.  If
one adds -fno-frontend-optimize, then the code compiles.
So, yes, it is a regression.


[Bug c/60350] Incorrect -Wmaybe-uninitialized warning with incorrect location information

2014-02-26 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60350

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||diagnostic
   Severity|normal  |minor

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
2) The column numbers of the two warnings point to the same location :, 
which is not right. 

This is most likely due to the casting which is added by the triany operator.


[Bug c/60350] New: Incorrect -Wmaybe-uninitialized warning with incorrect location information

2014-02-26 Thread chengniansun at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60350

Bug ID: 60350
   Summary: Incorrect -Wmaybe-uninitialized warning with incorrect
location information
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chengniansun at gmail dot com

Two questions regarding the following case
1) the variables pf and pv are uninitialized, but not maybe-uninitialized.
I am not sure whether this is the design choice of gcc. 

2) The column numbers of the two warnings point to the same location :, which
is not right. 


$: cat s.c 
void a(int i) {
  int (*pf)[2];
  int (*pv)[i + 1];
  (i ? pf : pv);
}
$: gcc-trunk -Wuninitialized -c s.c 
s.c: In function ‘a’:
s.c:4:11: warning: ‘pf’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
   (i ? pf : pv);
   ^
s.c:4:11: warning: ‘pv’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
$: gcc-trunk --version
gcc-trunk (GCC) 4.9.0 20140226 (experimental)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[Bug target/60071] [4.9 Regression] [SH] internal compiler error: in final_scan_insn, at final.c:2963

2014-02-26 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60071

--- Comment #7 from Kazumoto Kojima kkojima at gcc dot gnu.org ---
A testresult with the patch in #6 on sh4-unknown-linux-gnu:
http://gcc.gnu.org/ml/gcc-testresults/2014-02/msg01866.html


[Bug c/60351] New: Incorrect column number for warning on right shift count is negative

2014-02-26 Thread chengniansun at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60351

Bug ID: 60351
   Summary: Incorrect column number for warning on right shift
count is negative
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chengniansun at gmail dot com

$: cat s.c 
void g(int);
void f(void) {
int i = 1;
g(  i-1);
}
$: gcc-trunk -c s.c 
s.c: In function ‘f’:
s.c:4:2: warning: right shift count is negative
  g(  i-1);
  ^
$:

[Bug libgcc/60247] AVR ATxmega C++ constructor startup in libgcc.S causes boot loop

2014-02-26 Thread bobf at mrp3 dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60247

bobf at mrp3 dot com changed:

   What|Removed |Added

   See Also||http://gcc.gnu.org/bugzilla
   ||/show_bug.cgi?id=45263

--- Comment #1 from bobf at mrp3 dot com ---
bug 45263 may be related (and has been resolved).  Preserving registers may
still be necessary, however, depending on what happens inside the constructors.


[Bug bootstrap/53902] make install fails on SunOS 5.11

2014-02-26 Thread richlowe at richlowe dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53902

Rich Lowe richlowe at richlowe dot net changed:

   What|Removed |Added

 CC||richlowe at richlowe dot net

--- Comment #7 from Rich Lowe richlowe at richlowe dot net ---
I'm pretty sure this is a result of using an older binutils.  As best as I can
tell, s11 shipped with 2.19, and s11u1 with 2.21.  I know that 2.19 will fail
in this manner, and that 2.22 appears to work.  I have not personally tried
2.21


[Bug c++/60352] New: [C++11] Bogus error: conflicting declaration 'auto i'

2014-02-26 Thread ppluzhnikov at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60352

Bug ID: 60352
   Summary: [C++11] Bogus error: conflicting declaration 'auto
i'
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ppluzhnikov at google dot com

Using current trunk (r208191):

g++ -c t.cc  -std=c++11
t.cc:2:6: error: conflicting declaration 'auto i'
 auto i = j;
  ^
t.cc:1:12: note: previous declaration as 'int i'
 extern int i, j;
^

Test:

extern int i, j;
auto i = j;


Google ref: b/13213433


[Bug debug/57232] wcstol.c:213:1: internal compiler error

2014-02-26 Thread aoliva at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57232

Alexandre Oliva aoliva at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed|2013-05-10 00:00:00 |2014-02-27
  Component|target  |debug
 Ever confirmed|0   |1

--- Comment #19 from Alexandre Oliva aoliva at gcc dot gnu.org ---
Adjusting component before posting patch to gcc-patches.


[Bug c++/58678] [4.9 Regression] pykde4-4.11.2 link error (devirtualization too trigger happy)

2014-02-26 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58678

--- Comment #17 from Jason Merrill jason at gcc dot gnu.org ---
(In reply to Markus Trippelsdorf from comment #0)
 class A {
 public:
   virtual ~A();
 };
 class B : A {
   virtual int m_fn1();
 };
 void fn1() {
   delete reinterpret_castB*(1);
 }

I don't understand how this could be devirtualized, since there is no actual B
object.  But this is beside the point.

In general I agree with you: there's a fundamental problem here with
devirtualization knowing which function to call vs. that function being hidden
in another DSO.  Client code has no way to know whether the library was built
with -fvisibility=hidden.

I think we want to add a GCC flag to force more conservative assumptions about
visibility, i.e. that we can't refer to anything that might not be defined in
the current object, and KDE programs could use that flag.  Perhaps we should
even make it the default in non-LTO mode.


[Bug libstdc++/52015] std::to_string does not work under MinGW

2014-02-26 Thread roman.vasiliev at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015

--- Comment #37 from Roman roman.vasiliev at gmail dot com ---
Created attachment 32220
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32220action=edit
initilal file


[Bug c++/60353] New: [4.9 Regression] Firefox build failure #3 caused by r208157

2014-02-26 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60353

Bug ID: 60353
   Summary: [4.9 Regression] Firefox build failure #3 caused by
r208157
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: trippels at gcc dot gnu.org
CC: jason at gcc dot gnu.org

r208157 causes:

markus@x4 skia % cat test.ii
struct A {
  A(int);
};
typedef struct {
  A format;
} B;

markus@x4 skia % g++ -std=c++11 -c test.ii
test.ii: In constructor ‘B::B()’:
test.ii:6:3: error: no matching function for call to ‘A::A()’
 } B;
   ^
test.ii:6:3: note: candidates are:
test.ii:2:3: note: A::A(int)
   A(int);
   ^
test.ii:2:3: note:   candidate expects 1 argument, 0 provided
test.ii:1:8: note: constexpr A::A(const A)
 struct A {
^
test.ii:1:8: note:   candidate expects 1 argument, 0 provided
test.ii:1:8: note: constexpr A::A(A)
test.ii:1:8: note:   candidate expects 1 argument, 0 provided
test.ii: At global scope:
test.ii:4:16: note: synthesized method ‘B::B()’ first required here 
 typedef struct {
^

[Bug libstdc++/52015] std::to_string does not work under MinGW

2014-02-26 Thread roman.vasiliev at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015

--- Comment #38 from Roman roman.vasiliev at gmail dot com ---
Created attachment 32221
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32221action=edit
yeld without -std=c++11


[Bug libstdc++/52015] std::to_string does not work under MinGW

2014-02-26 Thread roman.vasiliev at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015

--- Comment #39 from Roman roman.vasiliev at gmail dot com ---
Created attachment 3
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=3action=edit
yeld with -std=c++11


[Bug libstdc++/52015] std::to_string does not work under MinGW

2014-02-26 Thread roman.vasiliev at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015

--- Comment #40 from Roman roman.vasiliev at gmail dot com ---
(In reply to Jonathan Wakely from comment #36)
 (In reply to Roman from comment #35)
  Tried to apply proposed patch for MinGW 4.8.1 and received no positive
  effect. Compiler tells about error : 'stoi' was not declared in this scope.
  Have any Idea how to fix it?
 
 Not enough information to be useful.
 
 Did you even use -std=c++11 ? 
Yes, shure.
 
 Noone here can debug your modified sources, you'll have to look into what is
 or isn't defined on your system after the patch. Try looking at the
 preprocessed source, for example.
I'm not familiar with such a matter. Attached files are:
stoi.cpp is initial code
stoi_prep.cpp is result of g++ stoi.cpp -E  stoi_prep.cpp
stoi_prep11.cpp is result of g++ stoi.cpp -E -std=c++11  stoi_prep11.cpp


[Bug middle-end/48784] #pragma pack(1) + -fstrict-volatile-bitfields = bad codegen

2014-02-26 Thread jye2 at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48784

--- Comment #7 from jye2 at gcc dot gnu.org ---
Author: jye2
Date: Thu Feb 27 07:28:06 2014
New Revision: 208195

URL: http://gcc.gnu.org/viewcvs?rev=208195root=gccview=rev
Log:
2014-02-27  Joey Ye  joey...@arm.com

Backport mainline strict-volatile-bitfields fixes
2013-09-28  Sandra Loosemore  san...@codesourcery.com

gcc/
* expr.h (extract_bit_field): Remove packedp parameter.
* expmed.c (extract_fixed_bit_field): Remove packedp parameter
from forward declaration.
(store_split_bit_field): Remove packedp arg from calls to
extract_fixed_bit_field.
(extract_bit_field_1): Remove packedp parameter and packedp
argument from recursive calls and calls to extract_fixed_bit_field.
(extract_bit_field): Remove packedp parameter and corresponding
arg to extract_bit_field_1.
(extract_fixed_bit_field): Remove packedp parameter.  Remove code
to issue warnings.
(extract_split_bit_field): Remove packedp arg from call to
extract_fixed_bit_field.
* expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
(copy_blkmode_from_reg): Likewise.
(copy_blkmode_to_reg): Likewise.
(read_complex_part): Likewise.
(store_field): Likewise.
(expand_expr_real_1): Likewise.
* calls.c (store_unaligned_arguments_into_pseudos): Adjust call
to extract_bit_field.
* config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
call to extract_bit_field.
* config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
call to extract_bit_field.
* doc/invoke.texi (Code Gen Options): Remove mention of warnings
and special packedp behavior from -fstrict-volatile-bitfields
documentation.

2013-12-11  Bernd Edlinger  bernd.edlin...@hotmail.de

* expr.c (expand_assignment): Remove dependency on 
flag_strict_volatile_bitfields. Always set the memory
access mode.
(expand_expr_real_1): Likewise.

2013-12-11  Sandra Loosemore  san...@codesourcery.com

PR middle-end/23623
PR middle-end/48784
PR middle-end/56341
PR middle-end/56997

gcc/
* expmed.c (strict_volatile_bitfield_p): New function.
(store_bit_field_1): Don't special-case strict volatile
bitfields here.
(store_bit_field): Handle strict volatile bitfields here instead.
(store_fixed_bit_field): Don't special-case strict volatile
bitfields here.
(extract_bit_field_1): Don't special-case strict volatile
bitfields here.
(extract_bit_field): Handle strict volatile bitfields here instead.
(extract_fixed_bit_field): Don't special-case strict volatile
bitfields here.  Simplify surrounding code to resemble that in
store_fixed_bit_field.
* doc/invoke.texi (Code Gen Options): Update
-fstrict-volatile-bitfields description.

gcc/testsuite/
* gcc.dg/pr23623.c: New test.
* gcc.dg/pr48784-1.c: New test.
* gcc.dg/pr48784-2.c: New test.
* gcc.dg/pr56341-1.c: New test.
* gcc.dg/pr56341-2.c: New test.
* gcc.dg/pr56997-1.c: New test.
* gcc.dg/pr56997-2.c: New test.
* gcc.dg/pr56997-3.c: New test.

2013-12-11  Bernd Edlinger  bernd.edlin...@hotmail.de
 Sandra Loosemore  san...@codesourcery.com

PR middle-end/23623
PR middle-end/48784
PR middle-end/56341
PR middle-end/56997
* expmed.c (strict_volatile_bitfield_p): Add bitregion_start
and bitregion_end parameters.  Test for compliance with C++
memory model.
(store_bit_field): Adjust call to strict_volatile_bitfield_p.
Add fallback logic for cases where -fstrict-volatile-bitfields
is supposed to apply, but cannot.
(extract_bit_field): Likewise. Use narrow_bit_field_mem and
extract_fixed_bit_field_1 to do the extraction.
(extract_fixed_bit_field): Revert to previous mode selection
algorithm.
Call extract_fixed_bit_field_1 to do the real work.
(extract_fixed_bit_field_1): New function.

testsuite:
* gcc.dg/pr23623.c: Update to test interaction with C++
memory model.

2013-12-11  Bernd Edlinger  bernd.edlin...@hotmail.de

PR middle-end/59134
* expmed.c (store_bit_field): Use narrow_bit_field_mem and
store_fixed_bit_field_1 for -fstrict-volatile-bitfields.
(store_fixed_bit_field): Split up.  Call store_fixed_bit_field_1
to do the real work.
(store_fixed_bit_field_1): New function. 
(store_split_bit_field): Limit the unit size to the memory mode
size,
to prevent recursion.

testsuite:
* gcc.c-torture/compile/pr59134.c: New test.
* gnat.dg/misaligned_volatile.adb: New test.

Added:
   

[Bug middle-end/56341] GCC produces unaligned data access

2014-02-26 Thread jye2 at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56341

--- Comment #18 from jye2 at gcc dot gnu.org ---
Author: jye2
Date: Thu Feb 27 07:28:06 2014
New Revision: 208195

URL: http://gcc.gnu.org/viewcvs?rev=208195root=gccview=rev
Log:
2014-02-27  Joey Ye  joey...@arm.com

Backport mainline strict-volatile-bitfields fixes
2013-09-28  Sandra Loosemore  san...@codesourcery.com

gcc/
* expr.h (extract_bit_field): Remove packedp parameter.
* expmed.c (extract_fixed_bit_field): Remove packedp parameter
from forward declaration.
(store_split_bit_field): Remove packedp arg from calls to
extract_fixed_bit_field.
(extract_bit_field_1): Remove packedp parameter and packedp
argument from recursive calls and calls to extract_fixed_bit_field.
(extract_bit_field): Remove packedp parameter and corresponding
arg to extract_bit_field_1.
(extract_fixed_bit_field): Remove packedp parameter.  Remove code
to issue warnings.
(extract_split_bit_field): Remove packedp arg from call to
extract_fixed_bit_field.
* expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
(copy_blkmode_from_reg): Likewise.
(copy_blkmode_to_reg): Likewise.
(read_complex_part): Likewise.
(store_field): Likewise.
(expand_expr_real_1): Likewise.
* calls.c (store_unaligned_arguments_into_pseudos): Adjust call
to extract_bit_field.
* config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
call to extract_bit_field.
* config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
call to extract_bit_field.
* doc/invoke.texi (Code Gen Options): Remove mention of warnings
and special packedp behavior from -fstrict-volatile-bitfields
documentation.

2013-12-11  Bernd Edlinger  bernd.edlin...@hotmail.de

* expr.c (expand_assignment): Remove dependency on 
flag_strict_volatile_bitfields. Always set the memory
access mode.
(expand_expr_real_1): Likewise.

2013-12-11  Sandra Loosemore  san...@codesourcery.com

PR middle-end/23623
PR middle-end/48784
PR middle-end/56341
PR middle-end/56997

gcc/
* expmed.c (strict_volatile_bitfield_p): New function.
(store_bit_field_1): Don't special-case strict volatile
bitfields here.
(store_bit_field): Handle strict volatile bitfields here instead.
(store_fixed_bit_field): Don't special-case strict volatile
bitfields here.
(extract_bit_field_1): Don't special-case strict volatile
bitfields here.
(extract_bit_field): Handle strict volatile bitfields here instead.
(extract_fixed_bit_field): Don't special-case strict volatile
bitfields here.  Simplify surrounding code to resemble that in
store_fixed_bit_field.
* doc/invoke.texi (Code Gen Options): Update
-fstrict-volatile-bitfields description.

gcc/testsuite/
* gcc.dg/pr23623.c: New test.
* gcc.dg/pr48784-1.c: New test.
* gcc.dg/pr48784-2.c: New test.
* gcc.dg/pr56341-1.c: New test.
* gcc.dg/pr56341-2.c: New test.
* gcc.dg/pr56997-1.c: New test.
* gcc.dg/pr56997-2.c: New test.
* gcc.dg/pr56997-3.c: New test.

2013-12-11  Bernd Edlinger  bernd.edlin...@hotmail.de
 Sandra Loosemore  san...@codesourcery.com

PR middle-end/23623
PR middle-end/48784
PR middle-end/56341
PR middle-end/56997
* expmed.c (strict_volatile_bitfield_p): Add bitregion_start
and bitregion_end parameters.  Test for compliance with C++
memory model.
(store_bit_field): Adjust call to strict_volatile_bitfield_p.
Add fallback logic for cases where -fstrict-volatile-bitfields
is supposed to apply, but cannot.
(extract_bit_field): Likewise. Use narrow_bit_field_mem and
extract_fixed_bit_field_1 to do the extraction.
(extract_fixed_bit_field): Revert to previous mode selection
algorithm.
Call extract_fixed_bit_field_1 to do the real work.
(extract_fixed_bit_field_1): New function.

testsuite:
* gcc.dg/pr23623.c: Update to test interaction with C++
memory model.

2013-12-11  Bernd Edlinger  bernd.edlin...@hotmail.de

PR middle-end/59134
* expmed.c (store_bit_field): Use narrow_bit_field_mem and
store_fixed_bit_field_1 for -fstrict-volatile-bitfields.
(store_fixed_bit_field): Split up.  Call store_fixed_bit_field_1
to do the real work.
(store_fixed_bit_field_1): New function. 
(store_split_bit_field): Limit the unit size to the memory mode
size,
to prevent recursion.

testsuite:
* gcc.c-torture/compile/pr59134.c: New test.
* gnat.dg/misaligned_volatile.adb: New test.

Added:
   

  1   2   >