[Bug rtl-optimization/61629] [4.10 regression] FAIL: gcc.dg/20020312-2.c (internal compiler error)

2014-07-15 Thread rsandifo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61629

rsandifo at gcc dot gnu.org  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-07-16
 CC||rsandifo at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |rsandifo at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #2 from rsandifo at gcc dot gnu.org  
---
I see the same thing on MIPS for different testcases (e.g.
gcc.dg/tree-ssa/pr43491.c).  As you probably know, it's caused by:

https://gcc.gnu.org/ml/gcc-patches/2014-06/msg01584.html

Testing a fix.


[Bug c++/47346] access control for nested type is ignored in class template

2014-07-15 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47346

Andrew Pinski  changed:

   What|Removed |Added

 CC||myriachan at gmail dot com

--- Comment #14 from Andrew Pinski  ---
*** Bug 61816 has been marked as a duplicate of this bug. ***


[Bug c++/61816] Member functions of a template class can access private classes without permission

2014-07-15 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61816

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #2 from Andrew Pinski  ---
Dup of bug 47346.

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


[Bug c++/61816] Member functions of a template class can access private classes without permission

2014-07-15 Thread daniel.kruegler at googlemail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61816

Daniel Krügler  changed:

   What|Removed |Added

 CC||daniel.kruegler@googlemail.
   ||com

--- Comment #1 from Daniel Krügler  ---
The problem also exists in gcc trunk version 4.10.0 20140715 (experimental)

[Bug sanitizer/61771] Regressions in ASan testsuite on ARM Linux

2014-07-15 Thread y.gribov at samsung dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61771

--- Comment #4 from Yury Gribov  ---
> It should be possible to detect fp layout on the frame basis -
> there is a slot (don't know which one off the top of my head)
> that is FP in one compiler and return address in the other.
> Comparing its contents with the current stack limits
> (readily available in ASan) should do the trick.

Unless program uses nested functions (and so LR may point to trampoline which
is located on stack).

> Of course, it would be awesome if we could synchronize
> (and document somewhere) FP stack layout between GCC and Clang

Let me ping LLVM list for this.


[Bug bootstrap/61809] [4.10 regression] fold-const.c:14865:47: error: 'DECL_ARGUMENT' was not declared in this scope

2014-07-15 Thread dimhen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61809

--- Comment #5 from Dmitry G. Dyachenko  ---
(In reply to Dominique d'Humieres from comment #2)
> Are you sure that r212549 fails? I'ld rather suspect a typo in r212550,
> i.e., DECL_ARGUMENT instead of DECL_ARGUMENT_FLD.

Oh, for r212549 and r212550 err.messages are different :)


[Bug bootstrap/61809] [4.10 regression] fold-const.c:14865:47: error: 'DECL_ARGUMENT' was not declared in this scope

2014-07-15 Thread dimhen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61809

--- Comment #4 from Dmitry G. Dyachenko  ---
(In reply to Dominique d'Humieres from comment #2)
> Are you sure that r212549 fails? I'ld rather suspect a typo in r212550,
> i.e., DECL_ARGUMENT instead of DECL_ARGUMENT_FLD.

Sorry, err in err.message. Correct error message for r212549

/home/dimhen/src/gcc_r212549/gcc/fold-const.c: In function 'void
fold_checksum_tree(const_tree, md5_ctx*, hash_table >*)':
/home/dimhen/src/gcc_r212549/gcc/fold-const.c:14865:47: error:
'DECL_ARGUMENT_FLD' was not declared in this scope
fold_checksum_tree (DECL_ARGUMENT_FLD (expr), ctx, ht);
   ^


[Bug c++/61015] Stack corruption with templates and pass-by-reference

2014-07-15 Thread myriachan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61015

Melissa  changed:

   What|Removed |Added

 CC||myriachan at gmail dot com

--- Comment #1 from Melissa  ---
Your code is doing something bad - it's retaining a pointer to a temporary
object across a function call.

Although pointers to a derived class are convertible to pointers to a parent
class, that is not true for double-pointers.  For example, the following code
is not legal:

struct Base {};
struct Derived : Base {};

int main()
{
// I don't normally use so-called Hungarian notation, but here it's clearer
Derived *pDerived = new Derived();
Derived **ppDerived = &pDerived;

// This is legal.
Base *pBase = pDerived;

// This is not legal, and will cause a compiler error.
Base **ppBase = ppDerived;
return 0;
}

So back to your code, the problem is visible in this small part:

template
class ArrayRef
{
  private:
const T* data;
ArrayRef( const T& oneElt )  // <--- important
{
  this->data = &oneElt;
  ...
}
};

int main()
{
  SpecialObj specialObj;
  SpecialObj* pSpecialObj = &specialObj;
  ArrayRef arrayRef( pSpecialObj );
...
}

The important thing is the const T & parameter.  T is Obj *, not SpecialObj *,
so the constructor takes Obj *const &.  (The const ends up on the right side of
the asterisk in this notation when expanding out T.)  References are really
pointers in alternate syntax, and just like pointers, it is not legal to have a
double-pointer conversion from derived to base.  Just like how SpecialObj **
can't be assigned to type Obj *const *, it's also the case that SpecialObj *
can't be bound to Obj *const &.

But why does it compile when the double-pointer case didn't?  It's because
const references have another property: they also take temporaries.  If an
object cannot be bound as a const lvalue to the const reference, the compiler
will instead try to create a temporary using an implicit conversion,
constructor call, or similar, then bind the temporary to the const reference.

Here, the temporary it can create is of type Obj *.  And sure enough,
SpecialObj * can be implicitly converted to Obj *.  So the compiler is going to
create a temporary Obj * on the stack containing a copy of the SpecialObj *
cast to Obj *, then pass *that* to to the ArrayRef constructor.  Then you
save a pointer to the passed const Obj * inside the ArrayRef constructor. 
References are really just pointers behind the scenes - and you just saved a
pointer to a temporary object.  Now your ArrayRef class has a pointer to an
arbitrary location in the caller's stack.

I'm going to guess that the compilers that don't crash are actually not
crashing because of the optimizer.  The inlining of the optimizer may actually
cause the temporary to remain in the current stack frame, possibly preventing
the pointer from corrupting anything.  It's when the pointer stored in
ArrayRef points to a temporary whose memory was freed and reused that you
have a problem.


[Bug fortran/61632] Memory corruption on error when writing formatted data

2014-07-15 Thread jvdelisle at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61632

--- Comment #19 from Jerry DeLisle  ---
(In reply to Dominique d'Humieres from comment #15)
> > Its sort of like Steve said earlier.  The coder is choosing to ignore an
> > error condition so anything gfortran does is valid.  In this case the
> > output got writen to buffer before the error occurred.  You are bypassing
> > all of the normal error handling when you do this. The buffer got flushed.
> >
> > Its not worth the time to change any of it really.
> >
> > The program should exit, its invalid.

I simply mean the Fortran code in the test case is invalid Fortran. Fix the
Fortran code.  Now suppose the error is a disk full.  Should the user just
ignore that and keep trying to write to the disk?

> 
> Well, I disagree with this interpretation: I did not find anywhere in the
> standard that the variable set by iostat has to be used. In addition, the
> following code should be valid upon Steve's rules and still prints 'YYY'
---snip---

Regarding the "YYY".  Why not print it? the error occurs after it is written. 
If you do not "catch" the error, the runtime leaves early, out of all the
various processing loops, and exits the program.  Whereas when the error is
caught, we continue execution in the library where we detected the error and
happily proceeds.  The transfer is directed by the format string, it went as
far as it could go. (As opposed to list directed I/O)

> 
> IMO this PR boils down to the fact that the I/O processing is not reset to a
> clean state after an error is handled with ERR, IOSTAT, ... , as it should.

The standard uses the term indeterminate.  You prefer it to be determined. OK

Person A wants the file buffers flushed, the file closed, and reopened with
status="append". Person B wants to grab the file position, clear the buffers,
rewind the file, read it back in, parse it for bad content, and signal an alarm
on the console.  The user can do these things if they want to.

> 
> Along this line, I have found that 'parse_format' is called only once even
> if 'ss' is called twice.

This is by design.  The string is parsed once for efficiency and reused for
performance purposes. Its a choice we made some time ago. The runtime checks
the string for a match to previously parsed strings.  Saves a lot of run time.
The parsed (tokenized) format is saved elsewhere and reused.


[Bug libfortran/59513] [4.8/4.9/4.10 Regression] Fortran runtime error: Sequential READ or WRITE not allowed after EOF marker, possibly use REWIND or BACKSPACE

2014-07-15 Thread jvdelisle at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59513

--- Comment #24 from Jerry DeLisle  ---
(In reply to Manfred Schwarb from comment #22)
--- snip ---

> Jerry, concerning your cited standard:
> "If the file contains an endfile record" suggests that there is some
> special marker in the file to be read/written.
> In this example, we are doing some formatted IO to a plain text file,
> there are no special markers.
> Do I miss something?
> 
> What does/should ftell() report in such a case? That we are one
> character beyond EOF?

I think Dominique has answered as far as the physical aspect.

FTELL just returns the current physical location.


[Bug c++/61816] New: Member functions of a template class can access private classes without permission

2014-07-15 Thread myriachan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61816

Bug ID: 61816
   Summary: Member functions of a template class can access
private classes without permission
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: myriachan at gmail dot com
  Host: x86_64-unknown-linux-gnu
Target: x86_64-unknown-linux-gnu
 Build: x86_64-unknown-linux-gnu

There exists a case in which a member function of a forward-declared template
can access a private inner class without permission.  Possible duplicate of bug
41437.


class ClassWithEverythingPrivate {
class InnerClass {
public:
static int InnerFunction() {
return 123;
}
};
};

template  class TemplateClass {
public:
static int StaticFunction() {
return ClassWithEverythingPrivate::InnerClass::InnerFunction();
}
};

int main() {
return TemplateClass::StaticFunction();
}


[Bug bootstrap/61792] [4.10 Regression] Bootstrap error with undeclared function isl_ast_expr_get_val

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61792

--- Comment #9 from Dominique d'Humieres  ---
> and val_gmp.h only exists in isl-0.13.

I have val_gmp.h for isl-0.12.1 and isl-0.12.2:

[Book15] f90/bug% find /opt/libs -name val_gmp.h
/opt/libs/cloog-0.18.1/isl/include/isl/val_gmp.h
/opt/libs/isl-0.12.1/include/isl/val_gmp.h
/opt/libs/isl-0.12.2/include/isl/val_gmp.h

and they are all the same.


[Bug bootstrap/61792] [4.10 Regression] Bootstrap error with undeclared function isl_ast_expr_get_val

2014-07-15 Thread manfred99 at gmx dot ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61792

--- Comment #8 from Manfred Schwarb  ---
The graphite-isl-ast-to-gimple.c code reads

#ifdef HAVE_cloog
#include 
#include 
#include 
#include 
#if defined(__cplusplus)
extern "C" {
#endif
#include 
#if defined(__cplusplus)
}
#endif
#endif


and val_gmp.h only exists in isl-0.13.
So maybe things work when disabling/not using cloog?
Will have to check tomorrow.


[Bug bootstrap/61792] [4.10 Regression] Bootstrap error with undeclared function isl_ast_expr_get_val

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61792

--- Comment #7 from Dominique d'Humieres  ---
For the record, I have done a clean bootstrap of r212523 on
x86_64-apple-darwin13 with cloog-0.18.1 and isl-0.12.2.


[Bug libfortran/59513] [4.8/4.9/4.10 Regression] Fortran runtime error: Sequential READ or WRITE not allowed after EOF marker, possibly use REWIND or BACKSPACE

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59513

--- Comment #23 from Dominique d'Humieres  ---
> Jerry, concerning your cited standard:
> "If the file contains an endfile record" suggests that there is some
> special marker in the file to be read/written.

>From the standard:

> NOTE 9.2
> An endfile record does not necessarily have any physical embodiment. The
> processor may use a record count or other means to register the position
> of the file at the time an ENDFILE statement is executed, so that it can take
> appropriate action when that position is reached again during a read
> operation. The endfile record, however it is implemented, is considered
> to exist for the BACKSPACE statement (9.8.2).


[Bug libfortran/59513] [4.8/4.9/4.10 Regression] Fortran runtime error: Sequential READ or WRITE not allowed after EOF marker, possibly use REWIND or BACKSPACE

2014-07-15 Thread manfred99 at gmx dot ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59513

Manfred Schwarb  changed:

   What|Removed |Added

 CC||manfred99 at gmx dot ch

--- Comment #22 from Manfred Schwarb  ---
I just encountered the same issue, with some convoluted legacy code.
The scheme seems to be the same:

  READ(lun,END=100) buffer
100   WRITE(lun,*) "whatever"

As the used code definitely was used in practice, mainly before the year
2000, I guess that older compiler supported this.

And yes, the BACKSPACE() trick works. However, common sense suggest
that with END= we are at the end of the file. This sounds a bit like the
old joke, where you have a room with 5 people, you are taking 6 out, so
someone has to go in for the room to be empty. Beyond EOF simply does
not exist.

Jerry, concerning your cited standard:
"If the file contains an endfile record" suggests that there is some
special marker in the file to be read/written.
In this example, we are doing some formatted IO to a plain text file,
there are no special markers.
Do I miss something?

What does/should ftell() report in such a case? That we are one
character beyond EOF?


[Bug c++/61811] [4.10 Regression] Firefox LTO build error due to undefined symbols

2014-07-15 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61811

--- Comment #1 from Jason Merrill  ---
Author: jason
Date: Tue Jul 15 21:38:48 2014
New Revision: 212576

URL: https://gcc.gnu.org/viewcvs?rev=212576&root=gcc&view=rev
Log:
PR c++/61811
* decl2.c (maybe_emit_vtables): Return true for -fuse-all-virtuals.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl2.c


[Bug c++/61723] [C++11] ICE in contains_struct_check

2014-07-15 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61723

--- Comment #7 from Jason Merrill  ---
(In reply to Paul Pluzhnikov from comment #6)
> This appears to be a different ICE.
> Should I reduce it?

Please.  And open a new PR for it.


[Bug c++/61723] [C++11] ICE in contains_struct_check

2014-07-15 Thread ppluzhnikov at google dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61723

--- Comment #6 from Paul Pluzhnikov  ---
It turns out that the original unreduced test case does not error on trunk
@r212277;
it only ICEs on gcc-4.8 and gcc-4.9 branches.

But once I creduced it using 4.9, the reduced test also ICEd on trunk.

I have just verified that the latest 4.9 @r212536 crashes like so on
non-reduced test:

gcc-svn-4_9-r212536/bin/g++ -c -std=c++11 t.ii  -O2
t.cc: In function ‘’:
t.cc:22:24: internal compiler error: Segmentation fault
0xb947ff crash_signal
../../gcc/toplev.c:337
0x952096 fold_comparison
../../gcc/fold-const.c:9074
0x95be35 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
../../gcc/fold-const.c:13563
0xbca30d cleanup_control_expr_graph
../../gcc/tree-cfgcleanup.c:112
0xbca30d cleanup_control_flow_bb
../../gcc/tree-cfgcleanup.c:187
0xbca30d cleanup_tree_cfg_bb
../../gcc/tree-cfgcleanup.c:630
0xbcbd48 cleanup_tree_cfg_1
../../gcc/tree-cfgcleanup.c:675
0xbcbd48 cleanup_tree_cfg_noloop
../../gcc/tree-cfgcleanup.c:731
0xbcbd48 cleanup_tree_cfg()
../../gcc/tree-cfgcleanup.c:786
0xaea194 execute_function_todo
../../gcc/passes.c:1811
0xaeaa83 execute_todo
../../gcc/passes.c:1887
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.


This appears to be a different ICE.
Should I reduce it?

[Bug bootstrap/61792] [4.10 Regression] Bootstrap error with undeclared function isl_ast_expr_get_val

2014-07-15 Thread manfred99 at gmx dot ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61792

--- Comment #6 from Manfred Schwarb  ---
There is ./configure --disable-isl-version-check,
but I doubt that it will help. The thing is, isl-0.13 needs
cloog-0.18.2 (or rather, cloog-0.18.1 needs isl-0.12.2 and does
not build with isl-0.13), which is not yet released.

Now I heard that the goal is to do without cloog, but I guess
the configure machinery (and probably, the rest of the graphite code)
is not yet up to it.

There really needs an immediate solution to this issue,
I think ATM there is no way to build graphite without resorting to
non-released libraries.

I suggest to revert all these isl-0.13 dependencies until cloog-0.18.2
is released, or there is shown some way to build graphite without cloog.

Roman, how is one supposed to build GCC with graphite support?


[Bug c++/50961] Fails to decay template function properly(?)

2014-07-15 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50961

Paolo Carlini  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com

--- Comment #2 from Paolo Carlini  ---
Mine.


[Bug c++/61723] [C++11] ICE in contains_struct_check

2014-07-15 Thread ppluzhnikov at google dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61723

--- Comment #5 from Paul Pluzhnikov  ---
(In reply to Paolo Carlini from comment #1)
> I find this testcase rather weird

It's the result of creduce over a preprocessed original.

> std::initializer_list isn't a random user type

In the non-reduced test (which is 15MB in size), it's the full type.

> OK, now GCC will reject the definition of std::initializer_list rather than 
> ICE.

I'll check whether original test still ICEs, and re-reduce if it still does.


[Bug c++/61754] [C++1y] [[deprecated]] attribute warns annoyingly compared to __attribute__((deprecated))

2014-07-15 Thread 3dw4rd at verizon dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61754

Ed Smith-Rowland <3dw4rd at verizon dot net> changed:

   What|Removed |Added

 CC||3dw4rd at verizon dot net

--- Comment #2 from Ed Smith-Rowland <3dw4rd at verizon dot net> ---
On the ## line is the use of the deprecated *type* that is causing the error.

struct __attribute__((deprecated)) Old1 {};

Old1 old1 __attribute__((deprecated));

struct [[deprecated("deprecated type Old2")]] Old2 {};

Old2 old2 [[deprecated("deprecated global old2")]]; // ##

int
main()
{
 //old1;
 //Old1 newold1 [[gnu::unused]];
 //old2;
 //Old2 newold2 [[gnu::unused]];
}

Gives:
/home/ed/bin/bin/g++ -std=c++14 -Wall -Wextra -pedantic -o test_pr61754
test_pr61754.cpp
test_pr61754.cpp:7:50: warning: ‘Old2’ is deprecated (declared at
test_pr61754.cpp:5): deprecated type Old2 [-Wdeprecated-declarations]
 Old2 old2 [[deprecated("deprecated global old2")]]; // ##

  ^
The [[deprecated]] is parsed and immediately calls the [[gnu::deprecated]]
code.  Which in turn should do __attribute__((deprecated)).  This might
(should) be easy to isolate.

[Bug c++/61807] genautomata.c fails to compile

2014-07-15 Thread daniel.kruegler at googlemail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61807

Daniel Krügler  changed:

   What|Removed |Added

 CC||daniel.kruegler@googlemail.
   ||com

--- Comment #1 from Daniel Krügler  ---
The compiler diagnostics looks right to me. Why do you expect that void* could
be implicitly converted to const char*?

[Bug web/61782] always_inline incorrectly documented

2014-07-15 Thread daniel.santos at pobox dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61782

--- Comment #6 from Daniel Santos  ---
(In reply to Richard Biener from comment #3)
> Note that if such function is called indirectly the compiler may
> or may not inline it dependent on optimization level and a failure
> to inline an indirect call may or may not be diagnosed.

OMG!! Thank you SO much for this clarification! I'm the crazy C metaprogramming
guy and I depend upon -findirect-inline and always_inline to facilitate what
I'm calling "C pseudo-templates." This would explain some odd circumstances
where I've seen such functions not get inlined. I've been able to remedy this
(thus far) by marking the calling function with __attribute__((flatten)), but I
have to take great care to catch this, ensuring that that I check each value
that I expect to be constant with __builtin_constant_p and generate an error
when they aren't.

Portions of these functions (often the majority) I expect to be executed by the
compiler and the result emitted, rather than having the whole of the function
emitted as generated code. As the complexity of such functions grows, the cost
of failing to inline by indirection can be the explosion of the function to 10,
20 times or more of it's size when all inlining happens. (sorry, that's a
little off topic).

I like the verbiage and thank you!


[Bug fortran/56218] [OOP] Segfault with allocatable intent(out) derived type argument having allocatable component

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56218

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bur...@net-b.de
 Resolution|--- |FIXED

--- Comment #5 from Dominique d'Humieres  ---
> Seems to work fine on 4.10 (20140710).

Confirmed for 4.10 and 4.9. Revision r199435 (2013-05-30) segfault, r199960
(2013-06-11) does not. The fix found be related to Tobias' work on finalization
(pr37336, r199643 or r199851). Closing.


[Bug c++/61723] [C++11] ICE in contains_struct_check

2014-07-15 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61723

Jason Merrill  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org
   Target Milestone|--- |4.10.0

--- Comment #4 from Jason Merrill  ---
OK, now GCC will reject the definition of std::initializer_list rather than
ICE.


[Bug c++/61723] [C++11] ICE in contains_struct_check

2014-07-15 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61723

--- Comment #3 from Jason Merrill  ---
Author: jason
Date: Tue Jul 15 19:16:29 2014
New Revision: 212574

URL: https://gcc.gnu.org/viewcvs?rev=212574&root=gcc&view=rev
Log:
PR c++/60848
PR c++/61723
* call.c (is_std_init_list): Don't check CLASSTYPE_TEMPLATE_INFO.
* class.c (finish_struct): Reject invalid definition of
std::initializer_list.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/initlist87.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/class.c
trunk/gcc/testsuite/g++.dg/cpp0x/initlist85.C


[Bug c++/60848] [4.7/4.8/4.9/4.10 Regression] Crash while experimenting with c++-0x initializer lists

2014-07-15 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60848

--- Comment #6 from Jason Merrill  ---
Author: jason
Date: Tue Jul 15 19:16:29 2014
New Revision: 212574

URL: https://gcc.gnu.org/viewcvs?rev=212574&root=gcc&view=rev
Log:
PR c++/60848
PR c++/61723
* call.c (is_std_init_list): Don't check CLASSTYPE_TEMPLATE_INFO.
* class.c (finish_struct): Reject invalid definition of
std::initializer_list.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/initlist87.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/class.c
trunk/gcc/testsuite/g++.dg/cpp0x/initlist85.C


[Bug rtl-optimization/61801] sched2 miscompiles syscall sequence with -g

2014-07-15 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #6 from Jakub Jelinek  ---
It wouldn't be that much of a band-aid, as we can't do anything reasonable with
asm in debug_insn anyway, there is no way to emit it into DWARF4 nor upcoming
DWARF version.


[Bug c/61815] precedence of operators is not being followed

2014-07-15 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61815

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek  ---
Just compile with -Wsequence-point or read the C standard on sequence points.


[Bug c/61815] precedence of operators is not being followed

2014-07-15 Thread saisusheelsunkara at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61815

--- Comment #3 from saisusheelsunkara at hotmail dot com ---
if it is following the precedence then output must have been 216?


[Bug c/61815] precedence of operators is not being followed

2014-07-15 Thread saisusheelsunkara at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61815

--- Comment #2 from saisusheelsunkara at hotmail dot com ---
its from left to right order?
(In reply to Andrew Pinski from comment #1)
> The precedence of operators is being followed but what the C standard does
> not say which side of the * is evaluated first.


[Bug bootstrap/61792] [4.10 Regression] Bootstrap error with undeclared function isl_ast_expr_get_val

2014-07-15 Thread tkoenig at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61792

Thomas Koenig  changed:

   What|Removed |Added

   Severity|normal  |blocker

--- Comment #5 from Thomas Koenig  ---
Installing a more recent (0.1.3) libisl makes configure fail with

checking for version 0.11 of ISL... no  
checking for version 0.12 of ISL... no
configure: error: Unable to find a usable ISL.  See config.log for details.

Is there a way that I can revert bootstrap capability, short of reverting
revision 212455?


[Bug debug/49090] provide a way to recognize defaulted template parameters

2014-07-15 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49090

Jason Merrill  changed:

   What|Removed |Added

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

--- Comment #13 from Jason Merrill  ---
The DWARF attribute was in GCC 4.9.


[Bug c/61815] precedence of operators is not being followed

2014-07-15 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61815

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #1 from Andrew Pinski  ---
The precedence of operators is being followed but what the C standard does not
say which side of the * is evaluated first.


[Bug c/61815] New: precedence of operators is not being followed

2014-07-15 Thread saisusheelsunkara at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61815

Bug ID: 61815
   Summary: precedence of operators is not being followed
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: saisusheelsunkara at hotmail dot com

int i=3,y;
y=++i*++i*++i;
printf("%d",y);


here the output being printed is 150? but as per precedence of operators the
output must have been 216 but instead of considering precedence they are simply
excuting in the order they are to be done in the evaluation of postfix notation
where operands like ++i are treated literaly as a string.

where as on performing
y=++i*++i;
the output i am getting is 25 which is as per precedence of operators in c


[Bug fortran/60898] [4.8/4.9/4.10 Regression] model compile error with gfortran 4.7 and gcc 4.9

2014-07-15 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60898

Harald Anlauf  changed:

   What|Removed |Added

 CC||anlauf at gmx dot de

--- Comment #13 from Harald Anlauf  ---
(In reply to Dominique d'Humieres from comment #11)
> The only revisions that compiles the code without error is 4.5.4 on darwin10
> and 4.5.0 (r157963) on darwin13. I am marking the PR as a regression
> although the bug is probably latent in 4.5. As pointed by Jerry DeLisle in
> comment 9, the tests fail on x86_64-*-linux.

Funny.  I see a failure with -m64 with 4.3.5, 4.4.5 etc.,
but never with -m32 or with i686-pc-linux-gnu.


[Bug c/61812] gcc ICE incorrectly says "The bug is not reproducible, so it is likely a hardware or OS problem."

2014-07-15 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61812

--- Comment #6 from Jakub Jelinek  ---
This is with the original version of the
http://gcc.gnu.org/ml/gcc-patches/2014-07/msg00819.html
As discussed on IRC, the issue is that the RTL includes host address in the
stderr output, which due to stack randomization differs in between runs.

Supposedly either we should append -fdump-noaddr option to cc1/cc1plus when we
retry, or turn off address space randomization for the retries (through
personality syscall on Linux).


[Bug c/61812] gcc ICE incorrectly says "The bug is not reproducible, so it is likely a hardware or OS problem."

2014-07-15 Thread dhowells at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61812

--- Comment #5 from dhowells at redhat dot com  ---
(In reply to Andrew Pinski from comment #4)
> Also even though it might be a true gcc issue, it does not say it is a
> hardware issue, the message says likely. This could also mean a gc or a
> memory issue inside gcc. Except detecting that vs a memory issue is much
> harder.

It's a bug with the code on the redhat/ branch that generates this message. 
The problem is that when it detects an ICE, the gcc driver runs the cc1 binary
twice more and compares the output - but the output contains a userspace
pointer from within gcc itself, eg:

(call (mem:QI (symbol_ref:SI ("abort") [flags 0x41] ) [0 __builtin_abort S1 A8])


and this may legitimately differ due to the kernel mapping things in different
places during execve() and mmap().


[Bug target/61662] Incorrect value calculated for _lrotl on LLP64 systems

2014-07-15 Thread gccbugzilla at limegreensocks dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61662

--- Comment #2 from David  ---
Sent July 9, 2014: https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00604.html


[Bug c/61812] gcc ICE incorrectly says "The bug is not reproducible, so it is likely a hardware or OS problem."

2014-07-15 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61812

--- Comment #4 from Andrew Pinski  ---
Also even though it might be a true gcc issue, it does not say it is a hardware
issue, the message says likely. This could also mean a gc or a memory issue
inside gcc. Except detecting that vs a memory issue is much harder.


[Bug libfortran/59513] [4.8/4.9/4.10 Regression] Fortran runtime error: Sequential READ or WRITE not allowed after EOF marker, possibly use REWIND or BACKSPACE

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59513

--- Comment #21 from Dominique d'Humieres  ---
(In reply to Jerry DeLisle from comment #20)
> Based on this I believe the resolution of this bug is 'INVALID'. ...

I fully agree. If there is no objection before next Wednesday (July 23, 21014),
I'll close the PR.


[Bug c/61812] gcc ICE incorrectly says "The bug is not reproducible, so it is likely a hardware or OS problem."

2014-07-15 Thread dhowells at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61812

--- Comment #3 from dhowells at redhat dot com  ---
Hmmm... It appears you're right.  The 'upstream tarball' in the Fedora gcc SRPM
seems already to be altered from what's upstream - even before the spec file
applies any patches to it.  I wonder where it is coming from.


[Bug fortran/60898] [4.8/4.9/4.10 Regression] model compile error with gfortran 4.7 and gcc 4.9

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60898

--- Comment #12 from Dominique d'Humieres  ---
Created attachment 33126
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33126&action=edit
Session showing erratic behavior of gfortran

gfortran-fsf-4.5 is 4.5.4,
gfortran-fsf-4.6 is 4.6.4,
gfortran-fsf-4.7 is 4.7.3,
/opt/gcc/gcc4.xp-y are 4.x revision y.


[Bug c++/55252] Caret diagnostic doesn't show useful location when macro clashes with name in system header

2014-07-15 Thread tromey at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55252

--- Comment #16 from Tom Tromey  ---
I've tripped across this enough that I've actually filed dups twice now.

I think it would be best to change the ordering here.
That is, the initial error ought to generally be the
location of the outermost expansion.  Then, the remaining
notes ought to delineate the macro expansions.

While it is true that this will yield a sub-optimal result in some
cases, I think that it will have better results in the preponderance
of cases.  That is, there's no way to be perfect here but gcc could be more
useful.


[Bug fortran/60898] [4.8/4.9/4.10 Regression] model compile error with gfortran 4.7 and gcc 4.9

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60898

Dominique d'Humieres  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
Version|unknown |4.10.0
Summary|model compile error with|[4.8/4.9/4.10 Regression]
   |gfortran 4.7 and gcc 4.9 on |model compile error with
   |Mac OS 10.9 |gfortran 4.7 and gcc 4.9

--- Comment #11 from Dominique d'Humieres  ---
I have tried to compile the original and reduced tests with various version on
Mac OS 10.6 and 10.9 in order to bisect the revisions. However I have found
that for a given revision the tests compile or not depending on the "state" of
my computer (I'll attach a "session" showing this behavior). 

The only revisions that compiles the code without error is 4.5.4 on darwin10
and 4.5.0 (r157963) on darwin13. I am marking the PR as a regression although
the bug is probably latent in 4.5. As pointed by Jerry DeLisle in comment 9,
the tests fail on x86_64-*-linux.

>From the reduced test, I am inclined to blame INTERFACE for ENTRY.


[Bug c++/61803] error reports macro location first, but should not

2014-07-15 Thread tromey at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61803

Tom Tromey  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #4 from Tom Tromey  ---
Hah, not only is this a dup, but I've filed a different dup
of 55252 in the past.

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


[Bug c++/55252] Caret diagnostic doesn't show useful location when macro clashes with name in system header

2014-07-15 Thread tromey at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55252

--- Comment #15 from Tom Tromey  ---
*** Bug 61803 has been marked as a duplicate of this bug. ***


[Bug c++/61803] error reports macro location first, but should not

2014-07-15 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61803

--- Comment #3 from Manuel López-Ibáñez  ---
(In reply to Tom Tromey from comment #2)
> > In this case yes, but this is not always the case: See PR5252.
> 
> I think that's the wrong PR number but I couldn't easily find the
> correct one.

Sorry, that should have been PR55252
Another relevant one is PR52998

[Bug sanitizer/61771] Regressions in ASan testsuite on ARM Linux

2014-07-15 Thread eugeni.stepanov at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61771

--- Comment #3 from Evgeniy Stepanov  ---
Yes, FP on ARM is non-standard and differs in GCC and Clang implementations.
Disabling fast unwind is not really an option, as you are looking at 10x, maybe
100x slowdown (depending of the app, of course).
It should be possible to detect fp layout on the frame basis - there is a slot
(don't know which one off the top of my head) that is FP in one compiler and
return address in the other. Comparing its contents with the current stack
limits (readily available in ASan) should do the trick.

Of course, it would be awesome if we could synchronize (and document somewhere)
FP stack layout between GCC and Clang - after all, there is no strong reason to
do it one way or the other.


[Bug fortran/60898] model compile error with gfortran 4.7 and gcc 4.9 on Mac OS 10.9

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60898

--- Comment #10 from Dominique d'Humieres  ---
(In reply to Dominique d'Humieres from comment #4)
> > After providing all the missing 'USE' items:
> 
> Where did you get them?

Adding the following at the beginning of the original test allows to get the
error.

MODULE kinds
integer, parameter :: i_kind = 4, r_single = 4, r_double = 8
END MODULE kinds

MODULE constants
use kinds, only: r_kind => r_double
real(r_kind), parameter :: zero=0.0
real(r_kind), parameter :: one=1.0
real(r_kind), parameter :: two=2.0
real(r_kind), parameter :: three=3.0
real(r_kind), parameter :: four=4.0
real(r_kind), parameter :: five=5.0
real(r_kind), parameter :: half=0.5
END MODULE constants

MODULE MODULE_pmat1
END MODULE MODULE_pmat1


[Bug sanitizer/61771] Regressions in ASan testsuite on ARM Linux

2014-07-15 Thread chefmax at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61771

--- Comment #2 from Maxim Ostapenko  ---
So looks like fast unwinding in libsanitizer is not portable to GCC for ARM
Linux target because of incompatible frame pointer value. But how is
libsanitizer going to identify functions/object files compiled by GCC? Perhaps
we should just disable fast unwind on ARM?

-Maxim


[Bug c++/61814] New: [c++1y] cannot use decltype on captured arg-pack

2014-07-15 Thread tongari95 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61814

Bug ID: 61814
   Summary: [c++1y] cannot use decltype on captured arg-pack
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tongari95 at gmail dot com

The code below has a lambda that captures the outer params t, for forwarding
matter, decltype on t has to be used.
```
auto const pack = [](auto&&... t)
{
return [&](auto&& f)->decltype(auto)
{
return f(static_cast(t)...);
};
};

int main(int argc, char** argv) {
pack(1)([](int){});
return 0;
}
```
It works with clang 3.5, but g++ 4.9.0 complains:
error: 't' was not declared in this scope

The same also applies to `sizeof` or that kind of compile-time thing.


[Bug c/61812] gcc ICE incorrectly says "The bug is not reproducible, so it is likely a hardware or OS problem."

2014-07-15 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61812

Andreas Schwab  changed:

   What|Removed |Added

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

--- Comment #2 from Andreas Schwab  ---
You must be using some distro patch.


[Bug c++/25992] conditional expression and strings literal

2014-07-15 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25992

Paolo Carlini  changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
   Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot 
gnu.org


[Bug c/61813] New: __attribute__((__packed__)) does not pack struct containing uint16_t with uint32_t

2014-07-15 Thread steven.spark at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61813

Bug ID: 61813
   Summary: __attribute__((__packed__)) does not pack struct
containing uint16_t with uint32_t
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: steven.spark at gmail dot com

Created attachment 33125
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33125&action=edit
preprocessed bugreport_packed.c

Test case:
typedef struct __attribute__((__packed__)) {
uint16_t a;///  2
uint32_t b; /// +4
uint32_t c[8];  /// +4*8 = 38
} foo_t;

but the size of foo_t is 40 (instead of the 38 which it should be). (It does
not matter where I put the packed attribute.)


I'm using the latest released mingw to date (4.8.1 rev 5).
I'm compiling on Windows 7 x64 (with mingw).
GCC config:
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-4.8.1/configure --host=x86_64-w64-mingw32
--build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64
--with-sysroot=/tmp/x64-481-win32-seh-r5/mingw64 --enable-shared
--enable-static --disable-multilib
--enable-languages=ada,c,c++,fortran,objc,obj-c++,lto
--enable-libstdcxx-time=yes --enable-threads=win32 --enable-libgomp
--enable-lto --enable-graphite --enable-checking=release
--enable-fully-dynamic-string --enable-version-specific-runtime-libs
--disable-isl-version-check --disable-cloog-version-check
--disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap
--disable-rpath --disable-win32-registry --disable-nls --disable-werror
--disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona
--with-tune=core2 --with-libiconv --with-system-zlib
--with-gmp=/tmp/mingw-prereq/x86_64-w64-mingw32-static
--with-mpfr=/tmp/mingw-prereq/x86_64-w64-mingw32-static
--with-mpc=/tmp/mingw-prereq/x86_64-w64-mingw32-static
--with-isl=/tmp/mingw-prereq/x86_64-w64-mingw32-static
--with-cloog=/tmp/mingw-prereq/x86_64-w64-mingw32-static
--enable-cloog-backend=isl --with-pkgversion='rev5, Built by MinGW-W64 project'
--with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe
-I/tmp/x64-481-win32-seh-r5/libs/include -I/tmp/mingw-prereq/x64-zlib/include
-I/tmp/mingw-prereq/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe
-I/tmp/x64-481-win32-seh-r5/libs/include -I/tmp/mingw-prereq/x64-zlib/include
-I/tmp/mingw-prereq/x86_64-w64-mingw32-static/include' CPPFLAGS= LDFLAGS='-pipe
-L/tmp/x64-481-win32-seh-r5/libs/lib -L/tmp/mingw-prereq/x64-zlib/lib
-L/tmp/mingw-prereq/x86_64-w64-mingw32-static/lib
-L/tmp/x64-481-win32-seh-r5/mingw64/opt/lib '
Thread model: win32
gcc version 4.8.1 (rev5, Built by MinGW-W64 project) 

command line 
gcc bugreport_packed.c
or
gcc -v -save-temps  -Wall -Wextra bugreport_packed.c

complete comiler output:
Using built-in specs.
COLLECT_GCC=C:\MinGW\x64-4.8.1-win32-seh-rev5\mingw64\bin\gcc
COLLECT_LTO_WRAPPER=c:/mingw/x64-4.8.1-win32-seh-rev5/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/4.8.1/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-4.8.1/configure --host=x86_64-w64-mingw32
--build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64
--with-sysroot=/tmp/x64-481-win32-seh-r5/mingw64 --enable-shared
--enable-static --disable-multilib
--enable-languages=ada,c,c++,fortran,objc,obj-c++,lto
--enable-libstdcxx-time=yes --enable-threads=win32 --enable-libgomp
--enable-lto --enable-graphite --enable-checking=release
--enable-fully-dynamic-string --enable-version-specific-runtime-libs
--disable-isl-version-check --disable-cloog-version-check
--disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap
--disable-rpath --disable-win32-registry --disable-nls --disable-werror
--disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona
--with-tune=core2 --with-libiconv --with-system-zlib
--with-gmp=/tmp/mingw-prereq/x86_64-w64-mingw32-static
--with-mpfr=/tmp/mingw-prereq/x86_64-w64-mingw32-static
--with-mpc=/tmp/mingw-prereq/x86_64-w64-mingw32-static
--with-isl=/tmp/mingw-prereq/x86_64-w64-mingw32-static
--with-cloog=/tmp/mingw-prereq/x86_64-w64-mingw32-static
--enable-cloog-backend=isl --with-pkgversion='rev5, Built by MinGW-W64 project'
--with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe
-I/tmp/x64-481-win32-seh-r5/libs/include -I/tmp/mingw-prereq/x64-zlib/include
-I/tmp/mingw-prereq/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe
-I/tmp/x64-481-win32-seh-r5/libs/include -I/tmp/mingw-prereq/x64-zlib/include
-I/tmp/mingw-prereq/x86_64-w64-mingw32-static/include' CPPFLAGS= LDFLAGS='-pipe
-L/tmp/x64-481-win32-seh-r5/libs/lib -L/tmp/mingw-prereq/x64-zlib/lib
-L/tmp/mingw-prereq/x86_64-w64-mingw32-static/lib
-L/tmp/x64-481-win32-seh-r5/mingw64/opt/lib '
Thread model: win32
gcc version 4.8.1 (rev5, Built by MinGW-W64 project) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '

[Bug c++/61723] [C++11] ICE in contains_struct_check

2014-07-15 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61723

Jason Merrill  changed:

   What|Removed |Added

   Keywords|ice-on-valid-code   |ice-on-invalid-code

--- Comment #2 from Jason Merrill  ---
Agreed.


[Bug fortran/61632] Memory corruption on error when writing formatted data

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61632

--- Comment #18 from Dominique d'Humieres  ---
> I did not say that iostat had to be used.  However, one can find 
> things like:
>
> 9.10.1 Error conditions and the ERR= specifier
>
> If an error condition occurs during execution of an input/output
> statement, the position of the file becomes indeterminate.
>
> 9.2.3.3   File position after data transfer
>
> If an error condition (9.10) occurred, the position of the file
> is indeterminate.
>
> If one explicitly uses IOSTAT= in an IO statement, it may be
> prudent to actually check its value.

AFAICT this does not change the problem (see the tests in comments 2, 3, and
15). Now if "the position of the file becomes indeterminate", I believe it
should be restored to a defined state after the error as been processed, either
after the jump to the error label for ERR= or after setting the value of
IOSTAT, see my comment

> Along this line, I have found that 'parse_format' is called only once even
> if 'ss' is called twice.

in comment 15.


[Bug sanitizer/61771] Regressions in ASan testsuite on ARM Linux

2014-07-15 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61771

--- Comment #1 from Richard Earnshaw  ---
The ABI does not document a model for stack chains, so any use of a frame
pointer is, by definition, purely private to that function.


[Bug c/61779] gcc -Og fails with impossible constraint on legal C code

2014-07-15 Thread zeccav at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61779

--- Comment #7 from Vittorio Zecca  ---
I forgot to mention that my code fragment comes from

#include 
void
f(void)
{
 for (;;)
  _SDT_PROBE(0, 0, 1,(0));
}

Maybe you can find intelligent ways to exercise this code and find
more -Og bugs?


[Bug c++/61803] error reports macro location first, but should not

2014-07-15 Thread tromey at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61803

Tom Tromey  changed:

   What|Removed |Added

   Keywords||diagnostic

--- Comment #2 from Tom Tromey  ---
> I would suggest file it against C++, just because there are more regular
> contributors to C++ (Jason and Paolo) than to C (only Joseph and not nearly
> as regular).

I added the "diagnostic" keyword.

> In this case yes, but this is not always the case: See PR5252.

I think that's the wrong PR number but I couldn't easily find the
correct one.

I think the approach in this bug will yield the desired result more
often.  It seems to me that no approach can be perfect as the "real"
location of the bug depends on human judgment and also the way that
the macro is written.  However, I believe the preponderance of macros
are written in such a way that the error is at the point of use.


[Bug fortran/61632] Memory corruption on error when writing formatted data

2014-07-15 Thread sgk at troutmask dot apl.washington.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61632

--- Comment #17 from Steve Kargl  ---
On Tue, Jul 15, 2014 at 09:08:44AM +, dominiq at lps dot ens.fr wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61632
> 
> --- Comment #15 from Dominique d'Humieres  ---
> > Its sort of like Steve said earlier.  The coder is choosing to ignore an
> > error condition so anything gfortran does is valid.  In this case the
> > output got writen to buffer before the error occurred.  You are bypassing
> > all of the normal error handling when you do this. The buffer got flushed.
> >
> > Its not worth the time to change any of it really.
> >
> > The program should exit, its invalid.
> 
> Well, I disagree with this interpretation: I did not find anywhere in the
> standard that the variable set by iostat has to be used.

I did not say that iostat had to be used.  However, one can find 
things like:

9.10.1 Error conditions and the ERR= specifier

If an error condition occurs during execution of an input/output
statement, the position of the file becomes indeterminate.

9.2.3.3   File position after data transfer

If an error condition (9.10) occurred, the position of the file
is indeterminate.

If one explicitly uses IOSTAT= in an IO statement, it may be
prudent to actually check its value.


[Bug target/61737] ICE when building libgcc for cris cross-compiler

2014-07-15 Thread dhowells at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61737

--- Comment #15 from dhowells at redhat dot com  ---
(In reply to Hans-Peter Nilsson from comment #14)
> Could you please consider open a separate PR for the "is not reproducible"
> misdisagnosis?

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61812


[Bug c/61812] gcc ICE incorrectly says "The bug is not reproducible, so it is likely a hardware or OS problem."

2014-07-15 Thread dhowells at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61812

--- Comment #1 from dhowells at redhat dot com  ---
For an example ICE, see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61737

This is easily reproducible, so the line is incorrect.  It might be better
stated conditionally:

"If the bug is not reproducible, it is likely a hardware or OS problem."


[Bug c/61812] New: gcc ICE says "The bug is not reproducible, so it is likely a hardware or OS problem."

2014-07-15 Thread dhowells at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61812

Bug ID: 61812
   Summary: gcc ICE says "The bug is not reproducible, so it is
likely a hardware or OS problem."
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dhowells at redhat dot com

gcc ICE says "The bug is not reproducible, so it is likely a hardware or OS
problem." at the end - even when this isn't true.


[Bug fortran/61632] Memory corruption on error when writing formatted data

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61632

--- Comment #16 from Dominique d'Humieres  ---
> This:
>
> +fmt->format_string_len = strrchr (f->source, ')') - f->source + 1;
>
>Is taking the difference between two string pointers, ie memory addresses
>
> This:
>
> printf("pos 0 =%x, pos ) =%x\n",strchr (f->source, '\0'),strrchr (f->source, 
> ')'));
>
> Is printing the value of the pointers, the addresses.
>
> Are you expecting something different?

Well, I am fully aware that I am C challenged (the kind who can forget two
semicolons while writing a single line!). However the above is more or less
part of what I understand.

To clarify my question, let me summarize what I understand:

(1) This PR occurs iff 'f != NULL',
(2) The beginning of f->source is the unprocessed part of the format when the
error occurs, the last character of it being the closing ')' of the format,
(3) while I was expecting f->source being

unprocessed_part\0garbage

I have examples for which I see


unprocessed_partxxx\0garbage

where xxx are some extra characters (from 1 to ~15). My question was about the
origin of these characters.

Indeed I was not happy with 'strrchr (f->source, ')')' because it could find a
')' in the garbage after '\0'. In addition, valgrind complained about it.

I have regtested and ran my own tests with the following change

   if (f != NULL)
-fmt->format_string = f->source;
+{
+  width = strlen (f->source);
+  for (i = width - 1; i > 0; i--)
+ {
+   if (f->source[i] == ')')
+ break;
+   width--;
+ }
+  fmt->format_string_len = width;
+}

This makes valgrind happy without regression (I know that this will fail if the
extra characters contain a ')', so far I did not crossed this situation).


[Bug target/61737] ICE when building libgcc for cris cross-compiler

2014-07-15 Thread hp at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61737

--- Comment #14 from Hans-Peter Nilsson  ---
(In reply to dhowe...@redhat.com from comment #10)
> (In reply to Hans-Peter Nilsson from comment #7)
> > (In reply to dhowe...@redhat.com from comment #0)
> > > I'm also very intrigued by that last line - I can reproduce it quite 
> > > easily.
> > 
> > This is a RH local patch in your host gcc (by Jakub, IIRC) to help users
> > re-running the actual ICEing command adding -save-temps.  I'm guessing it
> > has a bug and accidentally drops some option required to reproduce the 
> > ICE...
> 
> It's in the gcc-4.9.0-20140702 tarball.

Oh it finally made into the FSF repo, good!
Could you please consider open a separate PR for the "is not reproducible"
misdisagnosis?


[Bug c++/61811] New: [4.10 Regression] Firefox LTO build error due to undefined symbols

2014-07-15 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61811

Bug ID: 61811
   Summary: [4.10 Regression] Firefox LTO build error due to
undefined symbols
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: trippels at gcc dot gnu.org
CC: hubicka at ucw dot cz, jason at gcc dot gnu.org

Firefox doesn't build with -flto on trunk. It fails due to undefined symbols
during linking of libxul. This only happens if -flto, -fno-rtti and
-fuse-all-virtuals are all enabled during the build.

Reduced testcase:

markus@x4 signaling_ecc % cat CC_SIPCCLine.ii
template  class nsRefPtr
{
  T *mRawPtr;

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

namespace CSF
{
class CC_Call
{
public:
  void Release () { delete this; }
  virtual ~CC_Call ();
};
class CC_SIPCCCallMediaData
{
public:
  void Release ();
};
class A : public CC_Call
{
public:
  static nsRefPtr wrap (int);
  nsRefPtr pMediaData;
};
}

using namespace CSF;
void fn1 () { A::wrap (0).get (); }

markus@x4 signaling_ecc % c++filt
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
nsRefPtr::~nsRefPtr()

markus@x4 signaling_ecc % c++ -o CC_SIPCCLine.o -c -fno-rtti -flto -O2
CC_SIPCCLine.ii
markus@x4 signaling_ecc % nm CC_SIPCCLine.o | grep
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
 U _ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
markus@x4 signaling_ecc % c++ -o CC_SIPCCLine.o -c -flto -O2 CC_SIPCCLine.ii
markus@x4 signaling_ecc % nm CC_SIPCCLine.o | grep
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
markus@x4 signaling_ecc % c++ -o CC_SIPCCLine.o -c -O2 CC_SIPCCLine.ii
markus@x4 signaling_ecc % nm CC_SIPCCLine.o | grep
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
markus@x4 signaling_ecc % c++ -o CC_SIPCCLine.o -c -fno-rtti -O2
CC_SIPCCLine.ii
markus@x4 signaling_ecc % nm CC_SIPCCLine.o | grep
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
markus@x4 signaling_ecc % c++ -o CC_SIPCCLine.o -c -fno-use-all-virtuals
-fno-rtti -flto -O2 CC_SIPCCLine.ii
markus@x4 signaling_ecc % nm CC_SIPCCLine.o | grep
_ZN8nsRefPtrIN3CSF21CC_SIPCCCallMediaDataEED1Ev
markus@x4 signaling_ecc %


[Bug lto/61802] [4.10 Regression] AArch64 execute.exp failures with LTO after r212467

2014-07-15 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61802

--- Comment #4 from ktkachov at gcc dot gnu.org ---
(In reply to Jan Hubicka from comment #3)
> how those tests fail?

They seem to hit abort ();
signal 6 in the emulator


[Bug target/61737] ICE when building libgcc for cris cross-compiler

2014-07-15 Thread hp at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61737

--- Comment #13 from Hans-Peter Nilsson  ---
(In reply to dhowe...@redhat.com from comment #12)
> (In reply to Hans-Peter Nilsson from comment #6)
> > Created attachment 33121 [details]
> > Patch to config.gcc
> > 
> > Correct patch to config.gcc required to actually build the compiler proper.
> 
> Okay, I've tried that.  I can't see that it makes any obvious difference. 
> Is there something I should look for?

Oh, it wasn't meant as a fix to the problem at hand, just a replacement for the
prerequisite patch.  The differences to *that* one is that the duplicate
t-slibgcc t-linux are removed and the comment too, after checking why I had it;
likely a libgcc-related issue with headers (and so moot after the libgcc split
years ago).


[Bug lto/61802] [4.10 Regression] AArch64 execute.exp failures with LTO after r212467

2014-07-15 Thread hubicka at ucw dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61802

--- Comment #3 from Jan Hubicka  ---
how those tests fail?


[Bug rtl-optimization/61801] sched2 miscompiles syscall sequence with -g

2014-07-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801

--- Comment #5 from Richard Biener  ---
;;   --- Region Dependences --- b 12 bb 0 
;;  insn  codebb   dep  prio  cost   reservation
;;    --   ---       ---
...
;;  2399012 1 5 1  
athlon-direct,athlon-agu,athlon-store   : 127 123n 122nm 240 
...
;;  122-112 7 0 0   nothing : 124 123nm 243 216m 
;;  2169012 0 5 3   athlon-direct,athlon-load   : 127
123nm 243 
...

which maps to:

(insn 239 116 240 12 (set (mem/c:SI (reg/f:SI 7 sp) [11 %sfp+-16 S4 A32])
(reg:SI 0 ax [orig:127 cmdp_14(D)->syscall_no ] [127]))
bug-887141_pthread_create.1.min.i:77 90 {*movsi_internal}
 (expr_list:REG_DEAD (reg:SI 0 ax [orig:127 cmdp_14(D)->syscall_no ] [127])
(nil)))
...
(debug_insn 122 120 216 12 (var_location:SI resultvar (asm_operands/v:SI
("xchgl %%ebx, %%edi
int $0x80
xchgl %%edi, %%ebx
") ("=a") 0 [
(mem/c:SI (reg/f:SI 7 sp) [11 %sfp+-16 S4 A32])
(reg:SI 5 di [orig:128 cmdp_14(D)->id ] [128])
(reg:SI 2 cx [orig:129 cmdp_14(D)->id+4 ] [129])
(reg:SI 1 dx [orig:130 cmdp_14(D)->id+8 ] [130])
]
 [
(asm_input:SI ("0") bug-887141_pthread_create.1.min.i:77)
(asm_input:SI ("D") bug-887141_pthread_create.1.min.i:77)
(asm_input:SI ("c") bug-887141_pthread_create.1.min.i:77)
(asm_input:SI ("d") bug-887141_pthread_create.1.min.i:77)
]
 [] bug-887141_pthread_create.1.min.i:77))
bug-887141_pthread_create.1.min.i:77 -1
 (nil))
(insn 216 122 243 12 (set (reg/v:SI 4 si [orig:84 result ] [84])
(mem/c:SI (reg/f:SI 7 sp) [11 %sfp+-16 S4 A32]))
bug-887141_pthread_create.1.min.i:77 90 {*movsi_internal}
 (nil))

insn 123 is the real asm.  Not sure if the dependence of 239 via 122 to 216
is supposed to prevent scheduling 216 before 239.  If so, then dependence
information is correct.  The only forward dependence to 216 is really from
the debug insn.

But then:

;;  dependencies resolved: insn 238
;;  tick updated: insn 238 into ready
;;  dependencies resolved: insn 216
;;  tick updated: insn 216 into ready
;;  Advanced a state.
;;  Ready list after queue_to_ready:  216:67:prio=5  238:59:prio=11

what?  216 is already ready?

;;  Ready list (t =   0):216:67:prio=5  238:59:prio=11
;;0--> b  0: i 238 ax=[sp+0x30]   
:athlon-direct,athlon-load
;;  dependencies resolved: insn 116
;;  Ready-->Q: insn 116: queued for 3 cycles (change queue index).
;;  tick updated: insn 116 into queue with cost=3
;;  Ready list after ready_sort:  216:67:prio=5
;;  Ready list (t =   0):216:67:prio=5
;;0--> b  0: i 216 si=[sp]
:athlon-direct,athlon-load
;;  resetting: debug insn 122

yeah, so we reset the debug insn.  But ignored the indirect dependence from
239.

Now, of course I'm lost in the scheduler code, not knowing how it is intended
to work with debug-insns.

As a band-aid fix I'd simply never generate debug_insns with asms ...


[Bug bootstrap/61809] [4.10 regression] fold-const.c:14865:47: error: 'DECL_ARGUMENT' was not declared in this scope

2014-07-15 Thread hubicka at ucw dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61809

--- Comment #3 from Jan Hubicka  ---
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61809
> 
> --- Comment #2 from Dominique d'Humieres  ---
> Are you sure that r212549 fails? I'ld rather suspect a typo in r212550, i.e.,
> DECL_ARGUMENT instead of DECL_ARGUMENT_FLD.

Should be DECL_ARGUMENTS. Will commit the obvious patch.

Honza


[Bug rtl-optimization/61772] RTL if-conversion removes asm volatile goto

2014-07-15 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61772

--- Comment #2 from Michael Matz  ---
Author: matz
Date: Tue Jul 15 14:11:06 2014
New Revision: 212563

URL: https://gcc.gnu.org/viewcvs?rev=212563&root=gcc&view=rev
Log:
PR rtl-optimization/61772
* ifcvt.c (dead_or_predicable): Check jump to be free of side
effects.

testsuite/
* gcc.dg/torture/pr61772.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr61772.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ifcvt.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/61723] [C++11] ICE in contains_struct_check

2014-07-15 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61723

Paolo Carlini  changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #1 from Paolo Carlini  ---
I find this testcase rather weird: std::initializer_list isn't a random user
type: we have non-trivial "magic" in the front-end which *assumes* the actual
definition in our  header. You can see this in the testcase
here too, because the ICEs disappear if _M_len is declared as an (unsigned)
__SIZE_TYPE__ (not as an int) and an additional field _M_array is added too
(see our actual std::initializer_list for details). If you ask me, the Bug
Report seems invalid to me or at least very low priority, unless a version of
it not redefining std::initializer_list exists.


[Bug debug/49090] provide a way to recognize defaulted template parameters

2014-07-15 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49090

--- Comment #12 from Jonathan Wakely  ---
r212555 addresses this issue for certain std::lib types, but not for the
general case


[Bug bootstrap/61809] [4.10 regression] fold-const.c:14865:47: error: 'DECL_ARGUMENT' was not declared in this scope

2014-07-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61809

--- Comment #2 from Dominique d'Humieres  ---
Are you sure that r212549 fails? I'ld rather suspect a typo in r212550, i.e.,
DECL_ARGUMENT instead of DECL_ARGUMENT_FLD.


[Bug bootstrap/61809] [4.10 regression] fold-const.c:14865:47: error: 'DECL_ARGUMENT' was not declared in this scope

2014-07-15 Thread dimhen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61809

Dmitry G. Dyachenko  changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #1 from Dmitry G. Dyachenko  ---
r212549 FAIL
r212540 PASS


[Bug target/61810] New: init-regs.c papers over issues elsewhere

2014-07-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61810

Bug ID: 61810
   Summary: init-regs.c papers over issues elsewhere
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Keywords: missed-optimization, wrong-code
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rguenth at gcc dot gnu.org
Target: x86_64-*-*, i?86-*-*

Earlier this year Uli complained about undefined uses generating
code in the context of implementing _mm_undefined x86 intrinsics
in the "GCC way".  Example:

extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__,
__artificial__))
_mm_undefined_pd (void)
{ 
  __m128d __Y = __Y;
  return __Y;
}

and the culprit was found to be the init-regs pass which initializes
all must-undefined but used pseudos with zero.  That has been
introduced with the dataflow-merge with some big handwaving
comment (and no testcase as far as we could see):

/* Check all of the uses of pseudo variables.  If any use that is MUST
   uninitialized, add a store of 0 immediately before it.  For
   subregs, this makes combine happy.  For full word regs, this makes
   other optimizations, like the register allocator and the reg-stack
   happy as well as papers over some problems on the arm and other
   processors where certain isa constraints cannot be handled by gcc.
   These are of the form where two operands to an insn my not be the
   same.  The ra will only make them the same if they do not
   interfere, and this can only happen if one is not initialized.

   There is also the unfortunate consequence that this may mask some
   buggy programs where people forget to initialize stack variable.
   Any programmer with half a brain would look at the uninitialized
   variable warnings.  */

Of course earlier this year it wasn't the appropriate time to
kill off init-regs (which doesn't run at -O0 btw...).  But now
it is.

All of the issues in the comment at the top of init-regs.c
point to issues elsewhere - papering over them by means
of init-regs.c isn't a correct solution - especially as
passes between init-regs and $issue may expose must-undefined
but used pseudos (if-conversion for example).

Disabling init-regs.c by adjusting its gate to always return 0 causes

FAIL: gcc.dg/vect/vect-strided-a-u8-i8-gap7.c execution test

on x86_64 and

FAIL: gcc.dg/vect/vect-strided-a-u16-i4.c execution test
FAIL: gcc.dg/vect/vect-strided-a-u8-i8-gap7.c execution test
FAIL: gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c execution test
FAIL: gcc.dg/vect/vect-strided-a-u16-i4.c -flto -ffat-lto-objects execution
test
FAIL: gcc.dg/vect/vect-strided-a-u8-i8-gap7.c -flto -ffat-lto-objects execution 
test

on x86_64 -m32

no other FAILs (the comment hints at more issues on other targets).


Patch to disable init-regs (apart from the above bootstraps/tests ok
on x86_64)

Index: gcc/init-regs.c
=== 
--- gcc/init-regs.c (revision 212520)
+++ gcc/init-regs.c (working copy)
@@ -147,7 +147,7 @@ public:
   {}

   /* opt_pass methods: */
-  virtual bool gate (function *) { return optimize > 0; }
+  virtual bool gate (function *) { return 0; }
   virtual unsigned int execute (function *)
 {
   initialize_uninitialized_regs ();


[Bug lto/61802] [4.10 Regression] AArch64 execute.exp failures with LTO after r212467

2014-07-15 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61802

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Target|aarch64-none-elf|aarch64-none-elf, arm*

--- Comment #2 from ktkachov at gcc dot gnu.org ---
Appears on arm as well.
It seems like every execution test with -flto fails


[Bug bootstrap/61809] New: [4.10 regression] fold-const.c:14865:47: error: 'DECL_ARGUMENT' was not declared in this scope

2014-07-15 Thread dimhen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61809

Bug ID: 61809
   Summary: [4.10 regression] fold-const.c:14865:47: error:
'DECL_ARGUMENT' was not declared in this scope
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dimhen at gmail dot com

r212556 FAIL
r212517 PASS

~/src/gcc_current/configure --enable-checking=fold --disable-multilib
make
[...]
make[3]: Entering directory `/home/dimhen/build/gcc_current/gcc'
g++ -c   -g -DIN_GCC-fno-exceptions -fno-rtti -fasynchronous-unwind-tables
-W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format
-Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -I. -I.
-I/home/dimhen/src/gcc_current/gcc -I/home/dimhen/src/gcc_current/gcc/.
-I/home/dimhen/src/gcc_current/gcc/../include
-I/home/dimhen/src/gcc_current/gcc/../libcpp/include
-I/home/dimhen/build/gcc_current/./gmp -I/home/dimhen/src/gcc_current/gmp
-I/home/dimhen/build/gcc_current/./mpfr -I/home/dimhen/src/gcc_current/mpfr
-I/home/dimhen/src/gcc_current/mpc/src 
-I/home/dimhen/src/gcc_current/gcc/../libdecnumber
-I/home/dimhen/src/gcc_current/gcc/../libdecnumber/bid -I../libdecnumber
-I/home/dimhen/src/gcc_current/gcc/../libbacktrace -DCLOOG_INT_GMP
-I/home/dimhen/build/gcc_current/./cloog/include
-I/home/dimhen/src/gcc_current/cloog/include
-I/home/dimhen/build/gcc_current/./isl/include
-I/home/dimhen/src/gcc_current/isl/include  -o fold-const.o -MT fold-const.o
-MMD -MP -MF ./.deps/fold-const.TPo
/home/dimhen/src/gcc_current/gcc/fold-const.c
/home/dimhen/src/gcc_current/gcc/fold-const.c: In function 'void
fold_checksum_tree(const_tree, md5_ctx*, hash_table >*)':
/home/dimhen/src/gcc_current/gcc/fold-const.c:14865:47: error: 'DECL_ARGUMENT'
was not declared in this scope
fold_checksum_tree (DECL_ARGUMENT (expr), ctx, ht);
   ^
make[3]: *** [fold-const.o] Error 1
make[3]: Leaving directory `/home/dimhen/build/gcc_current/gcc'


[Bug c++/25992] conditional expression and strings literal

2014-07-15 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25992

Paolo Carlini  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC|anton.kirillov@rd-software. |
   |com, gcc-bugs at gcc dot gnu.org   |
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com

--- Comment #6 from Paolo Carlini  ---
Mine.


[Bug web/61782] always_inline incorrectly documented

2014-07-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61782

Richard Biener  changed:

   What|Removed |Added

 Status|WAITING |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org

--- Comment #5 from Richard Biener  ---
Patch posted.


[Bug c++/61808] New: Linking error with explicit template instantiation and default template param

2014-07-15 Thread gael.guennebaud at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61808

Bug ID: 61808
   Summary: Linking error with explicit template instantiation and
default template param
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gael.guennebaud at gmail dot com

Created attachment 33124
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33124&action=edit
Tarball of the files to reproduce the issue.

Here is small example which fails to compile with gcc but works well with other
compilers. Compiling the files with:

$ g++ func.cpp main.cpp

produces the following error:

Undefined symbols for architecture x86_64:
  "void foo<2>(Bar::Matrix<2, (2)+((int)((Bar::._1)0))>&)", referenced from:
  _main in ccZW4Wal.o

You can workaround the issue doing either:
1 - In main.cpp, line 3: remove the declaration"enum { fifi = sizeof(int) };" 
2 - In main.cpp, move the above declaration after including func.h
3 - In either func.h or main.cpp, replace one (or both) anonymous enum
declaration with a non-anonymous one.
4 - Move the explicit template declaration from func.cpp to main.cpp.

A real-word use case is described there:
http://stackoverflow.com/questions/24730981/undefined-reference-error-from-gcc-using-a-template-with-a-stdvector-and-an-ei


[Bug rtl-optimization/61801] sched2 miscompiles syscall sequence with -g

2014-07-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801

--- Comment #4 from Richard Biener  ---
Created attachment 33123
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33123&action=edit
more reduced

On trunk reproduces with the following slightly more manual reduced testcase
and -O2 -m32 -g (so even without -fPIC).


[Bug c++/61807] New: genautomata.c fails to compile

2014-07-15 Thread y.rajesh.4683 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61807

Bug ID: 61807
   Summary: genautomata.c fails to compile
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: y.rajesh.4683 at gmail dot com

I am compiling GCC for Octeon board. I keep getting the following errors. 

/mnt/data/archive/GCC/gcc_4.9_1/prev-mips64-octeon-linux-gnu/libstdc++-v3/include/mips64-octeon-linux-gnu/bits/mathcalls.h:364:1:
warning: invoking macro __MATH_PRECNAME argument 2: empty macro arguments are
undefined in ISO C90 and ISO C++98
In file included from .././../gcc-4.9.0/gcc/system.h:642:0,
 from .././../gcc-4.9.0/gcc/genautomata.c:108:
/mnt/data/archive/GCC/gcc_4.9_1/prev-mips64-octeon-linux-gnu/libstdc++-v3/include/mips64-octeon-linux-gnu/dlfcn.h:167:21:
warning: comma at end of enumerator list [-Wpedantic]
 RTLD_DI_MAX = 10,
 ^
.././../gcc-4.9.0/gcc/genautomata.c: In function 'char* next_sep_el(const
char**, int, int)':
.././../gcc-4.9.0/gcc/genautomata.c:1181:11: error: invalid conversion from
'void*' to 'char*' [-fpermissive]
   out_str = obstack_base (&irp);
   ^
In file included from .././../gcc-4.9.0/gcc/genautomata.c:112:0:
.././../gcc-4.9.0/gcc/genautomata.c: In function 'const char*
regexp_representation(regexp_t)':
/mnt/data/archive/GCC/gcc_4.9_1/prev-mips64-octeon-linux-gnu/libstdc++-v3/include/mips64-octeon-linux-gnu/obstack.h:206:51:
error: invalid conversion from 'void*' to 'const char*' [-fpermissive]
 #define obstack_base(h) ((void *) (h)->object_base)
   ^
.././../gcc-4.9.0/gcc/genautomata.c:6876:10: note: in expansion of macro
'obstack_base'
   return obstack_base (&irp);
  ^

Can I case the return value of the obstack_base to avoid this problem.


[Bug web/61782] always_inline incorrectly documented

2014-07-15 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61782

--- Comment #4 from Jonathan Wakely  ---
(In reply to Richard Biener from comment #3)
> Like
> 
> @item always_inline
> @cindex @code{always_inline} function attribute
> Generally, functions are not inlined unless optimization is specified.
> For functions declared inline, this attribute inlines the function 
> independent of any restrictions that otherwise apply to inlining.
> Failure to inline such function is diagnosed as error.

Failure to inline such a function is diagnosed as an error.
   ^  ^^

> Note that if such function is called indirectly the compiler may

Note that if such a function is called indirectly the compiler may
  ^

> or may not inline it dependent on optimization level and a failure

I think I'd say s/dependent/depending/ here.

> to inline an indirect call may or may not be diagnosed.


[Bug c/61779] gcc -Og fails with impossible constraint on legal C code

2014-07-15 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61779

--- Comment #6 from rguenther at suse dot de  ---
On Tue, 15 Jul 2014, zeccav at gmail dot com wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61779
> 
> --- Comment #5 from Vittorio Zecca  ---
> I just applied your fix and now gcc compiles succesfully with -Og.

Thanks for the feedback on -Og btw - it hasn't seen very much
testing coverage yet.  Probably because the advertised fast
compile-time is still much slower than with -O0.


[Bug c/61779] gcc -Og fails with impossible constraint on legal C code

2014-07-15 Thread zeccav at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61779

--- Comment #5 from Vittorio Zecca  ---
I just applied your fix and now gcc compiles succesfully with -Og.


[Bug rtl-optimization/61801] sched2 miscompiles syscall sequence with -g

2014-07-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801

Richard Biener  changed:

   What|Removed |Added

   Keywords||missed-optimization, ra
 CC||aoliva at gcc dot gnu.org,
   ||vmakarov at gcc dot gnu.org
  Known to fail||4.10.0, 4.8.3, 4.9.1

--- Comment #3 from Richard Biener  ---
Reduced testcase also reproduces the bug with 4.9 and trunk (but not 4.7):

movl64(%esp), %eax  # cmdp, tmp206
movl4(%esp), %esi   # %sfp, result
.LVL36:
movl(%eax), %eax# cmdp_30(D)->syscall_no,
cmdp_30(D)->syscall_no
movl%eax, 4(%esp)   # cmdp_30(D)->syscall_no, %sfp
.LVL37:
movl64(%esp), %eax  # cmdp, tmp208
movl4(%eax), %edi   # cmdp_30(D)->id, cmdp_30(D)->id
movl8(%eax), %ecx   # cmdp_30(D)->id, cmdp_30(D)->id
movl12(%eax), %edx  # cmdp_30(D)->id, cmdp_30(D)->id
movl%esi, %eax  # result, result
#APP
# 75 "bug-887141_pthread_create.1.min.i" 1
xchgl %ebx, %edi
int $0x80
xchgl %edi, %ebx

Note that 4.7 doesn't spill %eax but generates

movl0(%ebp), %esi   # cmdp_18(D)->syscall_no, result
.LVL45:
movl4(%ebp), %edi   # cmdp_18(D)->id, cmdp_18(D)->id
movl8(%ebp), %ecx   # cmdp_18(D)->id, cmdp_18(D)->id
movl12(%ebp), %edx  # cmdp_18(D)->id, cmdp_18(D)->id
movl%esi, %eax  # result,
#APP
# 75 "bug-887141_pthread_create.1.min.i" 1
xchgl %ebx, %edi
int $0x80
xchgl %edi, %ebx

which would be an IRA issue?


[Bug rtl-optimization/61801] sched2 miscompiles syscall sequence with -g

2014-07-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801

--- Comment #2 from Richard Biener  ---
Created attachment 33122
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33122&action=edit
autoreduced testcase

Autoreduced testcase.


[Bug target/61737] ICE when building libgcc for cris cross-compiler

2014-07-15 Thread dhowells at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61737

--- Comment #12 from dhowells at redhat dot com  ---
(In reply to Hans-Peter Nilsson from comment #6)
> Created attachment 33121 [details]
> Patch to config.gcc
> 
> Correct patch to config.gcc required to actually build the compiler proper.

Okay, I've tried that.  I can't see that it makes any obvious difference.  Is
there something I should look for?


[Bug target/61737] ICE when building libgcc for cris cross-compiler

2014-07-15 Thread dhowells at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61737

--- Comment #11 from dhowells at redhat dot com  ---
(In reply to Hans-Peter Nilsson from comment #3)
> > libgcc is built with:
> > make -C cris-linux-gnu tooldir=/usr all-target-libgcc
> 
> I'd expect "make all-target-libgcc" to Just Work.

So would I.  However, it doesn't work for all arches that the SRPM builds a
cross-compiler for.  I need the compiler to build the kernel, but not normally
libgcc, however, I've been asked to build libgcc if I can.  The arches for
which I can't build libgcc include: cris, sh, sh64 and tile.


[Bug rtl-optimization/61801] sched2 miscompiles syscall sequence with -g

2014-07-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801

--- Comment #1 from Richard Biener  ---
Auto-reduring (matching the bogus assembler pattern).


[Bug ipa/61671] [4.10 regression] lto1: ICE in types_same_for_odr, at ipa-devirt.c:365

2014-07-15 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61671

Jan Hubicka  changed:

   What|Removed |Added

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

--- Comment #5 from Jan Hubicka  ---
Fixed. I will commit the testcase


[Bug target/61737] ICE when building libgcc for cris cross-compiler

2014-07-15 Thread dhowells at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61737

--- Comment #10 from dhowells at redhat dot com  ---
(In reply to Hans-Peter Nilsson from comment #7)
> (In reply to dhowe...@redhat.com from comment #0)
> > I'm also very intrigued by that last line - I can reproduce it quite easily.
> 
> This is a RH local patch in your host gcc (by Jakub, IIRC) to help users
> re-running the actual ICEing command adding -save-temps.  I'm guessing it
> has a bug and accidentally drops some option required to reproduce the ICE...

It's in the gcc-4.9.0-20140702 tarball.


[Bug lto/61802] [4.10 Regression] AArch64 execute.exp failures with LTO after r212467

2014-07-15 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61802

--- Comment #1 from ktkachov at gcc dot gnu.org ---
There's actually quite a lot of -flto failures (all of them?) besides the ones
posted here all over the gcc testsuite


[Bug lto/61802] [4.10 Regression] AArch64 execute.exp failures with LTO after r212467

2014-07-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61802

Richard Biener  changed:

   What|Removed |Added

   Keywords||lto, wrong-code
   Priority|P3  |P1
   Target Milestone|--- |4.10.0
Summary|AArch64 execute.exp |[4.10 Regression] AArch64
   |failures with LTO after |execute.exp failures with
   |r212467 |LTO after r212467


[Bug web/61782] always_inline incorrectly documented

2014-07-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61782

--- Comment #3 from Richard Biener  ---
Like

@item always_inline
@cindex @code{always_inline} function attribute
Generally, functions are not inlined unless optimization is specified.
For functions declared inline, this attribute inlines the function 
independent of any restrictions that otherwise apply to inlining.
Failure to inline such function is diagnosed as error.
Note that if such function is called indirectly the compiler may
or may not inline it dependent on optimization level and a failure
to inline an indirect call may or may not be diagnosed.

which matches how GCC behaves (last sentence)?

Corrections welcome (I am not a native speaker).


  1   2   >