[Bug c++/46852] [4.6 Regression] ICE: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in cp_parser_class_specifier, at cp/parser.c:16947

2010-12-17 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46852

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #3 from Nathan Froyd  2010-12-17 
15:14:03 UTC ---
Fixed.


[Bug c++/46890] [4.6 Regression] Failed to compile scummvm's player_v4a.cpp

2010-12-17 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46890

Nathan Froyd  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||froydnj at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |froydnj at gcc dot gnu.org
   |gnu.org |


[Bug target/44606] Wrong SPE floating point during computation

2010-12-30 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44606

--- Comment #11 from Nathan Froyd  2010-12-30 
15:47:46 UTC ---
Author: froydnj
Date: Thu Dec 30 15:47:43 2010
New Revision: 168347

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=168347
Log:
gcc/
PR target/44606
* reload1.c (choose_reload_regs): Don't look for equivalences for
output reloads of constant loads.

gcc/testsuite/
PR target/44606
* gcc.dg/pr44606.c: New test.


Added:
trunk/gcc/testsuite/gcc.dg/pr44606.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/reload1.c
trunk/gcc/testsuite/ChangeLog


[Bug target/44606] Wrong SPE floating point during computation

2011-01-31 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44606

--- Comment #13 from Nathan Froyd  2011-01-31 
21:53:15 UTC ---
Author: froydnj
Date: Mon Jan 31 21:53:12 2011
New Revision: 169452

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=169452
Log:
gcc/
Backport from mainline:
2010-12-30  Nathan Froyd  

PR target/44606
* reload1.c (choose_reload_regs): Don't look for equivalences for
output reloads of constant loads.

gcc/testsuite/
Backport from mainline:
2010-12-30  Nathan Froyd  

PR target/44606
* gcc.dg/pr44606.c: New test.


Added:
branches/gcc-4_5-branch/gcc/testsuite/gcc.dg/pr44606.c
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/reload1.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


[Bug target/44606] Wrong SPE floating point during computation

2011-01-31 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44606

--- Comment #14 from Nathan Froyd  2011-02-01 
02:11:57 UTC ---
Author: froydnj
Date: Tue Feb  1 02:11:54 2011
New Revision: 169465

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=169465
Log:
gcc/
Backport from mainline:
2010-12-30  Nathan Froyd  

PR target/44606
* reload1.c (choose_reload_regs): Don't look for equivalences for
output reloads of constant loads.

gcc/testsuite/
Backport from mainline:
2010-12-30  Nathan Froyd  

PR target/44606
* gcc.dg/pr44606.c: New test.


Added:
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr44606.c
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/reload1.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


[Bug target/44606] Wrong SPE floating point during computation

2011-01-31 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44606

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #15 from Nathan Froyd  2011-02-01 
02:12:33 UTC ---
Fixed everywhere.


[Bug c++/46890] [4.6 Regression] Failed to compile scummvm's player_v4a.cpp

2011-02-03 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46890

--- Comment #10 from Nathan Froyd  2011-02-03 
17:16:21 UTC ---
Author: froydnj
Date: Thu Feb  3 17:16:17 2011
New Revision: 169797

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=169797
Log:
gcc/c-family/
PR c++/46890
* c-common.h (keyword_is_decl_specifier): Declare.
* c-common.c (keyword_is_decl_specifier): Define.
(keyword_is_function_specifier): New function.

gcc/cp/
PR c++/46890
* parser.c (cp_parser_class_specifier): Fix setting of
want_semicolon.

gcc/testsuite/
PR c++/46890
* g++.dg/parser/semicolon3.C: Adjust.
* g++.dg/parser/semicolon4.C: New testcase.
* g++.dg/pr46890.C: New testcase.


Added:
trunk/gcc/testsuite/g++.dg/parse/semicolon4.C
trunk/gcc/testsuite/g++.dg/pr46890.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/c-family/c-common.h
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/parse/semicolon3.C


[Bug c/47786] tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in c_type_hash, at c-family/c-common.c:4066

2011-02-17 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47786

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.02.17 17:05:22
 AssignedTo|unassigned at gcc dot   |froydnj at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #2 from Nathan Froyd  2011-02-17 
17:05:22 UTC ---
Created attachment 23387
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23387
untested fix

Ugh, DECL_CHAIN fallout.  Mine.


[Bug c++/46868] [4.6 Regression] ICE: SIGSEGV splay_tree_splay (splay-tree.c:149) on invalid code

2011-02-23 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46868

--- Comment #5 from Nathan Froyd  2011-02-23 
16:44:25 UTC ---
Author: froydnj
Date: Wed Feb 23 16:44:18 2011
New Revision: 170440

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170440
Log:
fix PR c++/46868
gcc/cp/
PR c++/46868
* parser.c (cp_parser_class_specifier): Require a closing brace
to attempt error recovery.

gcc/testsuite/
PR c++/46868
* g++.dg/pr46868.C: New test.
* g++.dg/parse/parameter-declaration-1.C: Adjust.
* g++.dg/parse/error14.C: Adjust.


Added:
trunk/gcc/testsuite/g++.dg/pr46868.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/parse/error14.C
trunk/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C


[Bug target/43810] [4.5 Regression] linking results in undefined references to _savegpr_* _restgpr_*_x

2011-02-23 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810

--- Comment #17 from Nathan Froyd  2011-02-23 
18:06:38 UTC ---
Author: froydnj
Date: Wed Feb 23 18:06:29 2011
New Revision: 170443

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170443
Log:
PR target/43810

Backport from mainline:
2010-07-23  Nathan Froyd  

* config.host (powerpc*-eabispe*): Set tmake_file.
(powerpc*-eabi*): Likewise.
* config/rs6000/t-ppccomm (EXTRA_PARTS): Add crtbegin, crtend,
crtbeginS, crtendS, crtbeginT.

Modified:
branches/gcc-4_5-branch/libgcc/ChangeLog
branches/gcc-4_5-branch/libgcc/config.host
branches/gcc-4_5-branch/libgcc/config/rs6000/t-ppccomm


[Bug target/43810] [4.5 Regression] linking results in undefined references to _savegpr_* _restgpr_*_x

2011-02-23 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810

Nathan Froyd  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #18 from Nathan Froyd  2011-02-23 
18:10:02 UTC ---
Fixed on the 4.5 branch.

If there are still problems with --enable-target-optspace, please open a
separate bug for those.


[Bug c++/46868] [4.6 Regression] ICE: SIGSEGV splay_tree_splay (splay-tree.c:149) on invalid code

2011-02-23 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46868

Nathan Froyd  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #6 from Nathan Froyd  2011-02-23 
18:10:43 UTC ---
Fixed.


[Bug c++/58272] New: unnecessary vtables emission for pure abstract classes

2013-08-29 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58272

Bug ID: 58272
   Summary: unnecessary vtables emission for pure abstract classes
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: froydnj at gcc dot gnu.org
CC: hubicka at ucw dot cz

Consider the following testcase:

class Interface {
public:
  virtual int f() = 0;
};

class Concrete : public Interface {
public:
  virtual int f();
};

int
Concrete::f()
{
  return 2;
}

Concrete*
do_stuff()
{
  Concrete* c = new Concrete();
  return c;
}

int
call_f()
{
  Interface* i = do_stuff();
  return i->f();
}

compiling this on x86-64 with:

g++ -fno-exceptions -S -o - -O2 vtables.cpp -fno-rtti

produces output with a vtable for Interface, which is completely unused in the
compilation unit.  (Still does it when omitting -fno-rtti, so it's not a
missing check for typeinfo emission or similar.)

Mozilla has a fair number of these and even though one can eliminate them via
--gc-sections, they still take up time to assemble, write to disk, etc. etc. 
Honza and I were talking about them and we did not know whether it was an ABI
requirement that they be emitted or merely a bug in the compiler.  G++ appears
to have some smarts about emitting the vtable for Concrete, so I am somewhat
surprised that it doesn't have similar smarts for the vtable for Interface.


[Bug c++/16189] obfuscated error message for missing semicolon after declaration in C++

2011-09-08 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16189

Nathan Froyd  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #12 from Nathan Froyd  2011-09-08 
15:51:11 UTC ---
Probably.  I think I didn't close it previously because I hadn't tested the
examples in comment 3.

But since those are perverse examples anyway, I'm going to go ahead and close
the bug.  If somebody doesn't like it, they can reopen, preferably with a
real-world example where the compiler doesn't do the preferred thing.


[Bug c++/42129] ICE in pointer difference with sizeof(int)>sizeof(void *)

2011-11-06 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42129

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-11-07
 Ever Confirmed|0   |1

--- Comment #2 from Nathan Froyd  2011-11-07 
00:06:11 UTC ---
I can confirm that the problem still happens with the given options (-mh -mn
-mint32).  I don't know much about this target, but the equivalent C front-end
code has:

  /* Determine integer type to perform computations in.  This will usually
 be the same as the result type (ptrdiff_t), but may need to be a wider
 type if pointers for the address space are wider than ptrdiff_t.  */
  if (TYPE_PRECISION (restype) < TYPE_PRECISION (TREE_TYPE (op0)))
inttype = lang_hooks.types.type_for_size
(TYPE_PRECISION (TREE_TYPE (op0)), 0);
  else
inttype = restype;

and uses that as the result of the division, with a conversion to restype
(ptrdiff_type_node) as in Paolo's patch.

I think it'd be better to try to make the C and C++ front-ends as close as
possible on this; I can try a patch that combines the above and Paolo's, but
I'm not sure I'd get to it before stage 1 closes.


[Bug c++/87494] New: hidden visibility constexpr variables left unevaluated

2018-10-03 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87494

Bug ID: 87494
   Summary: hidden visibility constexpr variables left unevaluated
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: froydnj at gcc dot gnu.org
  Target Milestone: ---

The following testcase, reduced from Firefox:

#pragma GCC visibility push(hidden)
typedef int size_t;
class A;
class B {
  A *m_fn1() const;
  bool mBaseVal;
};
class A {};
class nsStaticAtom : public A {};
namespace mozilla {
namespace detail {
struct GkAtoms {
  enum { F, T, AtomsCount };
  nsStaticAtom mAtoms[AtomsCount];
} extern gGkAtoms;
}
}
class nsGkAtoms {
public:
  static constexpr nsStaticAtom *_false =
  &mozilla::detail::gGkAtoms.mAtoms[size_t(mozilla::detail::GkAtoms::F)];
  static constexpr nsStaticAtom *_true =
  &mozilla::detail::gGkAtoms.mAtoms[size_t(mozilla::detail::GkAtoms::T)];
};
A *B::m_fn1() const { return mBaseVal ? nsGkAtoms::_true : nsGkAtoms::_false; }

when compiled with x86-64 GCC version 8.2, gives:

cmpb$0, (%rdi)
movq_ZN9nsGkAtoms6_falseE(%rip), %rax
je  .L1
movq_ZN9nsGkAtoms5_trueE(%rip), %rax

.L1:
ret

which leads to link failures, because neither symbol is defined.

Removing the #pragma gives correct output:

cmpb$0, (%rdi)
movq_ZN7mozilla6detail8gGkAtomsE@GOTPCREL(%rip), %rax
jne .L3
ret
.L3:
addq$1, %rax
ret

Very curiously, so does changing B::m_fn1() to:

A *B::m_fn1() const { return mBaseVal ? (nsStaticAtom*)nsGkAtoms::_true :
nsGkAtoms::_false; }

which gives slightly different, but still correct, assembly:

leaq1+_ZN7mozilla6detail8gGkAtomsE(%rip), %rax
cmpb$0, (%rdi)
leaq-1(%rax), %rdx
cmove   %rdx, %rax
ret

[Bug c++/87494] hidden visibility constexpr variables left unevaluated

2018-10-03 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87494

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-10-03
 Ever confirmed|0   |1

--- Comment #1 from Nathan Froyd  ---
Giving gGkAtoms default visibility also works to make the bug go away.

[Bug c++/87494] hidden visibility constexpr variables left unevaluated

2018-10-04 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87494

Nathan Froyd  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|INVALID |---

--- Comment #4 from Nathan Froyd  ---
(In reply to Andrew Pinski from comment #2)
> I don't think this is techincally a bug.  It might be a missed optimization
> but not a bug.  You still need a definition even for constexpr if used
> outside of a constexpr usage IIRC.

You can only use `constexpr` on variable definitions, not declarations.  So I
already have a definition, and I can't imagine where another one should be
added.

FWIW, clang and MSVC both accept this code without problems.

[Bug c++/56152] New: explicit template instantiation of protected template function redeclared as public fails

2013-01-30 Thread froydnj at gcc dot gnu.org

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

 Bug #: 56152
   Summary: explicit template instantiation of protected template
function redeclared as public fails
Classification: Unclassified
   Product: gcc
   Version: 4.4.7
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: froy...@gcc.gnu.org


Compiling the following testcase:

enum Flavor {
  A,
  B
};

template
class C
{
protected:
  template
  static T f(T x)
  {
if (F == A)
  return x;
else
  return ~x;
  }
};

class AC : public C
{
private:
  typedef C super;

public:
  using super::f;
};

unsigned int
explicit_variable(unsigned int x)
{
  unsigned int (*func)(unsigned int) = AC::f;

  return func(x);
}

unsigned int
explicit_call_instantiation(unsigned int x)
{
  return AC::f(x);
}

unsigned int
implicit_call_instantiation(unsigned int x)
{
  return AC::f(x);
}

produces:

template-instantiation-bug.cpp: In function ‘unsigned int
explicit_variable(unsigned int)’:
template-instantiation-bug.cpp:11:12: error: ‘static T C::f(T) [with T =
unsigned int, Flavor F = (Flavor)0u]’ is protected
template-instantiation-bug.cpp:32:44: error: within this context
template-instantiation-bug.cpp:11:12: error: ‘static T C::f(T) [with T =
unsigned int, Flavor F = (Flavor)0u]’ is protected
template-instantiation-bug.cpp:32:44: error: within this context
template-instantiation-bug.cpp:11:12: error: ‘static T C::f(T) [with T =
unsigned int, Flavor F = (Flavor)0u]’ is protected
template-instantiation-bug.cpp:32:44: error: within this context

It is not obvious to me that this is the right answer, given that both
explicit_call_instantiation and implicit_call_instantiation work.

All versions of GCC that I've tested reject the testcase (4.4 - 4.8).  Clang
(2.8 - 3.2) accepts the testcase.  MSVC version 9 rejects it.  My MSVC version
10 installation appears to be busted, or I'd test it there too.


[Bug libstdc++/71073] New: debug-mode headers should include #pragma GCC system_header directives

2016-05-11 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71073

Bug ID: 71073
   Summary: debug-mode headers should include #pragma GCC
system_header directives
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: froydnj at gcc dot gnu.org
  Target Milestone: ---

This change would help analysis tools cope with the code in the debug-mode
headers, usually by ignoring it.

[Bug rtl-optimization/79148] New: stack addresses are spilled to stack slots on x86-64 at -Os instead of rematerializing the addresses

2017-01-19 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79148

Bug ID: 79148
   Summary: stack addresses are spilled to stack slots on x86-64
at -Os instead of rematerializing the addresses
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: froydnj at gcc dot gnu.org
  Target Milestone: ---

Noticed this while browsing around Firefox source code compiled with GCC 5.4; a
colleague confirms that this happens with 6.3 as well.  Compiling:

https://people.mozilla.org/~nfroyd/Unified_cpp_widget0.ii.gz

(Tried to get it under the attachment limit with xz, didn't happen)

with options:

-mtune=generic -march=x86-64 -g -Os -std=gnu++11 -fPIC -fno-strict-aliasing
-fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno
-freorder-blocks -fno-omit-frame-pointer -fstack-protector-strong

gives, for the function
_ZN7mozilla6widget11GfxInfoBase20GetFeatureStatusImplEiPiR18nsAString_internalRK8nsTArrayINS0_13GfxDriverInfoEER19nsACString_internalPNS0_15OperatingSystemE
a bit of code that looks like:

.LVL3402:
leaq-784(%rbp), %rax  [1a]
.LVL3403:
movq%rax, %rdi
.LVL3404:
movq%rax, -816(%rbp)  [1b]
call_ZN12nsAutoStringC1Ev
.LVL3405:
.loc 14 887 0
leaq-624(%rbp), %rax  [2a]
movq%rax, %rdi
movq%rax, -824(%rbp)  [2b]
call_ZN12nsAutoStringC1Ev
.LVL3406:
.loc 14 888 0
leaq-464(%rbp), %rax  [3a]
movq%rax, %rdi
movq%rax, -800(%rbp)  [3b]
call_ZN12nsAutoStringC1Ev
.LVL3407:
.loc 14 889 0
movq(%r12), %rax
movq-816(%rbp), %rsi  [1c]
movq%r12, %rdi
call*104(%rax)
.LVL3408:
.loc 14 890 0
testl   %eax, %eax
js  .L2479
movq(%r12), %rax
movq-824(%rbp), %rsi  [2c]
movq%r12, %rdi
call*120(%rax)
.LVL3409:
.loc 14 889 0
testl   %eax, %eax
js  .L2479
.loc 14 891 0
movq(%r12), %rax
movq-800(%rbp), %rsi  [3c]
movq%r12, %rdi
call*168(%rax)

The problem here, for each of the trio of instructions marked [1], [2], and
[3], is that the instructions [1b], [2b], and [3b] that store the stack
addresses are really unnecessary; replacing [1c], [2c], and [3c] with the `lea`
instructions from [1a], [2a], and [3a] is the same size and doesn't require the
stack slot storage, so we could eliminate those instructions ([1b], [2b], and
[3b]) and (possibly) make the stack frame smaller as well.

I think rematerializing the stack addresses on x86/x86-64 ought always to be a
win in terms of size (I don't know whether you'd want to make the same choices
when compiling for speed); I think it'd be a similar win for RISC-y chips, at
least so long as the stack frame sizes are reasonably small.

[Bug libstdc++/69388] Allow functexcept.cc definitions to be replaced

2017-01-24 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69388

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-01-24
 CC||froydnj at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #2 from Nathan Froyd  ---
Firefox's custom implementation of the __throw_* functions also wound up biting
us when libc++ started defining functions with identical names:

https://bugzilla.mozilla.org/show_bug.cgi?id=1329520

[Bug c++/82888] New: terrible code generation for initialization of POD array members vs. clang

2017-11-07 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82888

Bug ID: 82888
   Summary: terrible code generation for initialization of POD
array members vs. clang
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: froydnj at gcc dot gnu.org
CC: jseward at acm dot org, mh+gcc at glandium dot org
  Target Milestone: ---

Consider the testcase:

class A
{
public:
  A();

private:
  unsigned char mStorage[4096];
};

A::A()
  : mStorage()
{}

gcc -O2 generates a loop that looks like:

.L2:
movb$0, (%rdi)
addq$1, %rdi
cmpq%rdi, %rax
jne .L2

which is terribly slow.  (The original motivation for this bug report came from
an -Og compilation, where you get:

movl$4095, %eax
.L3:
testq   %rax, %rax
js  .L1
movb$0, (%rdi)
addq$1, %rdi
subq$1, %rax
jmp .L3

which is even worse.)

clang -O2 (or -O1), on the other hand, generates:

xorl%esi, %esi
movl$4096, %edx # imm = 0x1000
jmp memset  # TAILCALL

which is ideal, and opens up opportunities for the backend to lower the memset
to something intelligent (e.g. rep stos)

[Bug c++/82888] terrible code generation for initialization of POD array members vs. clang

2017-11-07 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82888

--- Comment #3 from Nathan Froyd  ---
Thanks, I didn't think to test -O3.  Do we get the memset at -O3 because loop
idiom recognition is enabled?

Producing the memset upfront probably generates better code for all cases, even
if the frontend code is a little more complicated.

[Bug c++/78323] New: pathological code generation for long logical expression with temporary objects

2016-11-11 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78323

Bug ID: 78323
   Summary: pathological code generation for long logical
expression with temporary objects
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: froydnj at gcc dot gnu.org
  Target Milestone: ---

Created attachment 40030
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40030&action=edit
logical-or.cpp

Compiling the attached testcase -O2 -std=c++11 reveals a significant disparity
in the code GCC produces versus clang:

froydnj@thor:~$ gcc -O2 -std=c++11 -c logical-or-gcc.cpp 
froydnj@thor:~$ clang -O2 -std=c++11 -c logical-or.cpp  -o logical-or-clang.o
froydnj@thor:~$ size logical-or*.o
   textdata bss dec hex filename
 633354   0   0  633354   9aa0a logical-or-gcc.o
  17628   0   0   1762844dc logical-or-clang.o

That was with GCC 4.9; a colleague tried it with GCC 6.2.0 and got:

   textdata  bss   dechex filename
 591843   80591851  907eb logical-or.o 

which is some kind of improvement, but not enough of one.

I gone over the assembly with a fine-toothed comb or looked at the tree dumps,
but I think GCC is falling into some kind of O(n^2) situation where it sets a
flag for the constructed status of every temporary object after each exit from
the chained condition.

[Bug middle-end/65111] New: null checks on pointers created from references not optimized away

2015-02-18 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65111

Bug ID: 65111
   Summary: null checks on pointers created from references not
optimized away
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: froydnj at gcc dot gnu.org

Compiling the C++ code:

#include 

void init(int& p)
{
  new (&p) float(3.14f);
}

yields (GCC 4.9.1):

_Z4initRi:
testq%rdi, %rdi
je.L1
movl$0x4048f5c3, (%rdi)
.L1:
rep ret

Compiling the equivalent code with clang (3.5 and 3.6-prerelease) yields:

_Z4initRi:  # @_Z4initRi
movl$1078523331, (%rdi) # imm = 0x4048F5C3
retq

because clang has determined that &p cannot be null.


[Bug c++/52231] [missed optimization/diagnostics] address-of-reference

2015-02-18 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52231

--- Comment #5 from Nathan Froyd  ---
FWIW, clang (>= 3.5) understands how to optimize the original testcase in
comment 0; it even issues a -Wtautological-undefined-compare warning.

This also showed up in the context of trying to hint to the compiler that
placement new didn't need null checks:

#include 

void init(int& p) { new (&p) float(3.14f); }

which clang understands how to optimize and GCC does not.


[Bug c++/52231] [missed optimization/diagnostics] address-of-reference

2015-02-18 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52231

--- Comment #7 from Nathan Froyd  ---
(In reply to Jonathan Wakely from comment #6)
> (In reply to Nathan Froyd from comment #5)
> > This also showed up in the context of trying to hint to the compiler that
> > placement new didn't need null checks:
> 
> That's only become true quite recently:
> http://open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1748

Ah, thanks for the pointer.  I assumed that the compiler would be able to infer
that |&reference| would be non-null and eliminate the mandatory check
regardless, but it's nice to have spec language to back this up.

> See also PR 35878

Again, thanks for the pointer.  If we can do this in the frontend now, that
might be simple enough that I could take a look at it myself (assuming it
hasn't been done and that PR simply didn't get referenced).


[Bug middle-end/61762] New: failure to optimize memcpy from constant string

2014-07-09 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61762

Bug ID: 61762
   Summary: failure to optimize memcpy from constant string
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: froydnj at gcc dot gnu.org

There's probably a duplicate of this, but GCC HEAD on the following testcase:

unsigned int f()
{
  static const char string[] = "Private";

  unsigned int priv;
  __builtin_memcpy(&priv, &string[0], sizeof(priv));
  return priv;
}

produces for x86-64:

f:
.LFB0:
.cfi_startproc
movl_ZZ1fvE6string(%rip), %eax
ret
.cfi_endproc

Compare clang (~3.0) for x86-64:

f:
.Ltmp0:
.cfi_startproc
# BB#0:
movl$1986622032, %eax   # imm = 0x76697250
ret


[Bug middle-end/61762] failure to optimize memcpy from constant string

2014-08-01 Thread froydnj at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61762

--- Comment #17 from Nathan Froyd  ---
(In reply to Richard Biener from comment #15)
> Instead aligned the string.

This is kind of unfortunate, as the motivating testcase was something more
like:

...
  static const char string[] = "Private";
  unsigned int priv, riva, ivat, vate;
  memcpy(&priv, &string[0], sizeof(priv));
  memcpy(&riva, &string[1], sizeof(riva))
  memcpy(&ivat, &string[2], sizeof(ivat));
  memcpy(&vate, &string[3], sizeof(vate));
  /* proceed to use priv, riva, ivate, vate for comparisons */

So on strict-align targets, even if the source string was aligned (and that has
to be by user-declaration?) we wouldn't catch the latter three?


[Bug c/47786] tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in c_type_hash, at c-family/c-common.c:4066

2011-03-07 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47786

--- Comment #4 from Nathan Froyd  2011-03-07 
15:32:29 UTC ---
Author: froydnj
Date: Mon Mar  7 15:32:25 2011
New Revision: 170739

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170739
Log:
PR c/47786
* c-common.c (c_type_hash): Call list_length instead of iterating
through DECL_CHAIN.  Rename 'i' to 'n_elements'.

Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c


[Bug c/47786] tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in c_type_hash, at c-family/c-common.c:4066

2011-03-07 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47786

Nathan Froyd  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #5 from Nathan Froyd  2011-03-07 
15:34:17 UTC ---
Fixed.


[Bug middle-end/14840] fold tree_code_type[CST] and tree_code_length[CST] in GCC itself

2011-03-21 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14840

Nathan Froyd  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||WONTFIX

--- Comment #10 from Nathan Froyd  2011-03-22 
00:29:53 UTC ---
This bug has been open for almost five years.  When I tried Andrew's posted
patch, I think bootstrap slowed down slightly--possibly because of the extra
parsing and logic in TREE_CODE_CLASS?

Anyway, LTO should take care of this.  I'm going to close this; if somebody
wants to keep the bug around for posterity, feel free to reopen.


[Bug target/4828] can't install gcc for h8300-hms target

2011-03-25 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4828

--- Comment #5 from Nathan Froyd  2011-03-25 
11:47:17 UTC ---
Author: froydnj
Date: Fri Mar 25 11:47:13 2011
New Revision: 171447

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=171447
Log:
PR bootstrap/4828
Revert:
2011-03-24  Nathan Froyd  

* function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
(pass_instantiate_virtual_regs): Require PROP_cfglayout.
* passes.c (init_optimization_passes): Move
pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/function.c
trunk/gcc/passes.c


[Bug bootstrap/48282] [4.7 Regression] Bootstrap failure

2011-03-25 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48282

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #3 from Nathan Froyd  2011-03-25 
11:49:29 UTC ---
Patch reverted in r171447; I botched the ChangeLog entry, so it didn't show up
automagically here.


[Bug target/46548] Build arm gcc failure after patch 165463

2011-04-05 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46548

--- Comment #5 from Nathan Froyd  2011-04-05 
16:33:00 UTC ---
I believe this was fixed by the fix for PR 46040.


[Bug bootstrap/48469] [4.7 Regression] bootstrap failure

2011-04-05 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48469

--- Comment #2 from Nathan Froyd  2011-04-05 
19:33:52 UTC ---
Author: froydnj
Date: Tue Apr  5 19:33:49 2011
New Revision: 171998

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=171998
Log:
PR bootstrap/48469
* combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
declaration.

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


[Bug bootstrap/48469] [4.7 Regression] bootstrap failure

2011-04-05 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48469

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #4 from Nathan Froyd  2011-04-05 
20:36:15 UTC ---
No, it's not the same change.  If you like, you could open a different PR and I
could attach a patch I think works.


[Bug bootstrap/48471] ia64-*-* does not bootstrap due to unused variables in dbxout.c

2011-04-05 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48471

--- Comment #2 from Nathan Froyd  2011-04-05 
20:45:20 UTC ---
Created attachment 23888
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23888
untested patch


[Bug bootstrap/48471] ia64-*-* does not bootstrap due to unused variables in dbxout.c

2011-04-05 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48471

Nathan Froyd  changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu.org

--- Comment #3 from Nathan Froyd  2011-04-05 
20:45:38 UTC ---
Does the attached patch solve things?


[Bug bootstrap/48471] [4.7 Regression] ia64-*-* does not bootstrap due to unused variables in dbxout.c

2011-04-05 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48471

--- Comment #6 from Nathan Froyd  2011-04-06 
01:06:44 UTC ---
Author: froydnj
Date: Wed Apr  6 01:06:42 2011
New Revision: 172016

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=172016
Log:
PR bootstrap/48471
* dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
Move these...
(symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
(DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
#ifdef DBX_DEBUGGING_INFO.

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


[Bug bootstrap/48471] [4.7 Regression] ia64-*-* does not bootstrap due to unused variables in dbxout.c

2011-04-05 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48471

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #7 from Nathan Froyd  2011-04-06 
01:07:14 UTC ---
Fixed on trunk.


[Bug objc++/48479] [4.7 Regression] Many ICEs in the obj-c++.dg test suite on *-apple-darwin*

2011-04-06 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48479

Nathan Froyd  changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu.org

--- Comment #1 from Nathan Froyd  2011-04-06 
13:39:29 UTC ---
Bleh, that would be my change.  I think what's required is making the
CONST_DECL its own case there.


[Bug objc++/48479] [4.7 Regression] Many ICEs in the obj-c++.dg test suite on *-apple-darwin*

2011-04-06 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48479

--- Comment #2 from Nathan Froyd  2011-04-06 
13:41:01 UTC ---
Created attachment 23900
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23900
untested patch


[Bug objc++/48479] [4.7 Regression] Many ICEs in the obj-c++.dg test suite on *-apple-darwin*

2011-04-14 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48479

--- Comment #5 from Nathan Froyd  2011-04-14 
18:46:48 UTC ---
Author: froydnj
Date: Thu Apr 14 18:46:34 2011
New Revision: 172441

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=172441
Log:
PR objc++/48479
* typeck.c (cxx_mark_addressable) [CONST_DECL]: Mark addressable
and return immediately.

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


[Bug objc++/48479] [4.7 Regression] Many ICEs in the obj-c++.dg test suite on *-apple-darwin*

2011-04-14 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48479

Nathan Froyd  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #6 from Nathan Froyd  2011-04-14 
18:48:23 UTC ---
Fixed.


[Bug c/48797] GCC does inline variadic function, crashing on i386, when non-GNU stdarg.h is used

2011-04-27 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48797

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||INVALID

--- Comment #5 from Nathan Froyd  2011-04-28 
03:12:58 UTC ---
According to
http://git.etalabs.net/cgi-bin/gitweb.cgi?p=musl;a=blob;f=arch/i386/bits/stdarg.h;h=6b1830d210cfb78ce307bc0a5d0e685f22a3d09c;hb=HEAD
, va_foo is being defined with casting games.  Therefore, as Andrew has already
said, this bug report is invalid.


[Bug lto/48851] lto-plugin.c:224:7: error: missing sentinel in function call [-Werror=format]

2011-05-03 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48851

Nathan Froyd  changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu.org

--- Comment #3 from Nathan Froyd  2011-05-03 
14:19:37 UTC ---
Can you attach preprocessed source to the issue (use the -save-temps option)? 
I wonder if OpenBSD's headers are defining NULL in some odd way.  It's also
possible that recent refactorings to __attribute__((sentinel)) broke
something...


[Bug c++/48934] no rejection reason given for SFINAE

2011-05-09 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48934

Nathan Froyd  changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #9 from Nathan Froyd  2011-05-09 
17:10:31 UTC ---
(In reply to comment #8)
> The point of that example is that even clang's "substitution failed" could be
> improved, because T is substituted successfully into the return type
> "S1::type" but not into the parameter type "S1::typo" (in the general
> case they wouldn't both use S1 and there could be several parameters)
> 
> So a better reason would be "substitution failed for parameter 1" but I don't
> know how easy that is, if it's even possible in the current G++ codebase

It is possible; it's just a bit tedious, since you'd need to thread the
unification_info all the way through template substitution, not just function
type deduction.  I don't know how Jason would feel about the extra parameter
and corresponding call overhead to tsubst, though.  Jason?

(IIUC, doing this would also enable you to precisely report which
sub-expression substitution failed in.)

The hackish way of doing this would be to notice during deduction that
substitution of a function type failed, then go back and substitute piece-wise
into return type and argument types until you find the failing type.  That
could be done without the changes above, but it'd be a bit gross.


[Bug middle-end/48965] [4.7 Regression] FAIL: gcc.dg/pr45055.c

2011-05-11 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48965

--- Comment #5 from Nathan Froyd  2011-05-11 
17:12:57 UTC ---
No.  The list is sorted by UID, but the numbers printed out are not the UID;
they are the order in which things were pushed on to the list.  Full diff, with
duplicate entries and UID information:

--- pr45055.gkd2011-05-11 13:07:54.424168821 -0400
+++ pr45055.gk.gkd2011-05-11 13:07:54.600692860 -0400
@@ -1,30 +1,36 @@

 Declarations used by foo, sorted by DECL_UID:
-8, uid 1559:   static int colormap[10];
 11, uid 1559:   static int colormap[10];
-6, uid 1560:   extern int bar ();
-7, uid 1560:   extern int bar ();
+14, uid 1559:   static int colormap[10];
 9, uid 1560:   extern int bar ();
 10, uid 1560:   extern int bar ();
-19, uid 1560:   extern int bar ();
-21, uid 1560:   extern int bar ();
-23, uid 1560:   extern int bar ();
-4, uid 1577:   void ;
-16, uid 1577:   void ;
-18, uid 1577:   void ;
+12, uid 1560:   extern int bar ();
+13, uid 1560:   extern int bar ();
+25, uid 1560:   extern int bar ();
+27, uid 1560:   extern int bar ();
+29, uid 1560:   extern int bar ();
+5, uid 1577:   void ;
+20, uid 1577:   void ;
+24, uid 1577:   void ;
 2, uid 1578:   void ;
 3, uid 1578:   void ;
-5, uid 1578:   void ;
-14, uid 1578:   void ;
-15, uid 1578:   void ;
+4, uid 1578:   void ;
+6, uid 1578:   void ;
+7, uid 1578:   void ;
+8, uid 1578:   void ;
 17, uid 1578:   void ;
-20, uid 1578:   void ;
+18, uid 1578:   void ;
+19, uid 1578:   void ;
+21, uid 1578:   void ;
+22, uid 1578:   void ;
+23, uid 1578:   void ;
+26, uid 1578:   void ;
 1, uid 1581:   void ;
-13, uid 1581:   void ;
-22, uid 1581:   void ;
+16, uid 1581:   void ;
+28, uid 1581:   void ;
 0, uid 2680:   void ;
-12, uid 2680:   void ;
-24, uid 2680:   void ;
+15, uid 2680:   void ;
+30, uid 2680:   void ;

 ;; Function (foo)


[Bug c++/2288] Variable declared in for-loop-header is in wrong scope

2011-05-20 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2288

Nathan Froyd  changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu.org

--- Comment #18 from Nathan Froyd  2011-05-20 
18:34:08 UTC ---
Peter, can you apply Janis's patch now that we're in 4.7 stage 1?


[Bug tree-optimization/45950] [4.6 Regression] ICE segmentation fault compiling __udivdi3

2010-10-09 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45950

--- Comment #5 from Nathan Froyd  2010-10-09 
11:44:05 UTC ---
Author: froydnj
Date: Sat Oct  9 11:44:00 2010
New Revision: 165220

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=165220
Log:
PR tree-optimization/45950
* tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
before initializing vno->op.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-sccvn.c


[Bug c++/46065] [4.6 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in poplevel_named_label_1, at cp/decl.c:477

2010-10-20 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46065

Nathan Froyd  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |froydnj at gcc dot gnu.org
   |gnu.org |

--- Comment #2 from Nathan Froyd  2010-10-20 
13:46:08 UTC ---
I will fix this shortly after stage 3 starts.


[Bug c/45062] [4.6 Regression] Revision 162223 caused ICE at c-decl.c:4064

2010-10-20 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45062

Nathan Froyd  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||froydnj at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |froydnj at gcc dot gnu.org
   |gnu.org |

--- Comment #3 from Nathan Froyd  2010-10-20 
13:47:51 UTC ---
I will fix this shortly after stage 3 starts.


[Bug tree-optimization/46259] [4.6 Regression] Revision 166102 failed 416.gamess in SPEC CPU 2006

2010-11-01 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46259

--- Comment #8 from Nathan Froyd  2010-11-01 
18:58:35 UTC ---
Author: froydnj
Date: Mon Nov  1 18:58:30 2010
New Revision: 166139

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166139
Log:
gcc/
2010-11-01  Nathan Froyd  

PR tree-optimization/46259

Revert:

2010-10-30  Nathan Froyd  

* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
build_vector_from_val.

gcc/testsuite/
2010-11-01  H.J. Lu  
Nathan Froyd  

PR tree-optimization/46259
* gfortran.dg/pr46259.f: New testcase.

Added:
trunk/gcc/testsuite/gfortran.dg/pr46259.f
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-stmts.c


[Bug c/41206] Segmentation fault from two "#pragma GCC optimize" lines

2010-11-05 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41206

Nathan Froyd  changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu.org

--- Comment #5 from Nathan Froyd  2010-11-05 
17:46:18 UTC ---
I no longer see this error with current mainline.


[Bug c++/45332] Generate clear diagnostics when a terminating semicolon is missing from a class member declaration.

2010-11-06 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45332

--- Comment #1 from Nathan Froyd  2010-11-06 
18:42:08 UTC ---
Author: froydnj
Date: Sat Nov  6 18:41:57 2010
New Revision: 166406

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166406
Log:
gcc/cp/
PR c++/45332
* parser.c (cp_lexer_previous_token): New function.
(cp_parser_member_declaration): Use previous token for error
messages.  Assume semicolon presence rather than grovelling for
the next one.

gcc/testsuite/
PR c++/45332
* g++.dg/parse/semicolon2.C: New testcase.
* g++.dg/ext/asmspec1.C: Adjust.
* g++.dg/init/new13.C: Adjust.
* g++.dg/parse/ctor5.C: Adjust.


Added:
trunk/gcc/testsuite/g++.dg/parse/semicolon2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/ext/asmspec1.C
trunk/gcc/testsuite/g++.dg/init/new13.C
trunk/gcc/testsuite/g++.dg/parse/ctor5.C


[Bug c++/46065] [4.6 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in poplevel_named_label_1, at cp/decl.c:477

2010-11-10 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46065

--- Comment #3 from Nathan Froyd  2010-11-10 
21:05:55 UTC ---
Author: froydnj
Date: Wed Nov 10 21:05:50 2010
New Revision: 166558

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166558
Log:
gcc/cp/
PR c++/46065
* decl.c (poplevel_named_label_1): Use TREE_CHAIN if necessary.

gcc/testsuite/
PR c++/46065
* g++.dg/pr46065.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/pr46065.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/46065] [4.6 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in poplevel_named_label_1, at cp/decl.c:477

2010-11-10 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46065

Nathan Froyd  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #4 from Nathan Froyd  2010-11-11 
02:09:01 UTC ---
Fixed.


[Bug c/44782] implement -ferror-limit=

2010-11-11 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44782

--- Comment #2 from Nathan Froyd  2010-11-12 
03:38:19 UTC ---
Author: froydnj
Date: Fri Nov 12 03:38:15 2010
New Revision: 166644

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166644
Log:
gcc/
PR c/44782
* common.opt (fmax-errors=): New option.
* opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
* diagnostic.h (struct diagnostic_context): Add max_errors field.
* diagnostic.c (diagnostic_initialize): Initialize it.
(diagnostic_action_after_output): Exit if more than max_errors
have been output.
* doc/invoke.texi (Warning Options): Add -fmax-errors.
(-fmax-errors): Document.

gcc/fortran/
PR c/44782
* options.c (gfc_post_options): Initialize gfc_option.max_errors.
(gfc_handle_option) [OPT_fmax_errors_]: Remove.
* lang.opt (fmax-errors=): Remove.

gcc/testsuite/
PR c/44782
* c-c++-common/fmax-errors.c: New test.


Added:
trunk/gcc/testsuite/c-c++-common/fmax-errors.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/common.opt
trunk/gcc/diagnostic.c
trunk/gcc/diagnostic.h
trunk/gcc/doc/invoke.texi
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/lang.opt
trunk/gcc/fortran/options.c
trunk/gcc/opts.c
trunk/gcc/testsuite/ChangeLog


[Bug c/44782] implement -ferror-limit=

2010-11-11 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44782

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #3 from Nathan Froyd  2010-11-12 
03:40:11 UTC ---
Fixed.


[Bug preprocessor/45038] __DBL_MIN__ result in old-style-cast

2010-11-15 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45038

--- Comment #2 from Nathan Froyd  2010-11-15 
15:24:38 UTC ---
Author: froydnj
Date: Mon Nov 15 15:24:31 2010
New Revision: 166756

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166756
Log:
gcc/c-family/
PR preprocessor/45038
* c-cppbuiltin.c (c_cpp_builtins): Use different format for C++
dialects.

gcc/testsuite/
PR preprocessor/45038
* g++.dg/pr45038.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/pr45038.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-cppbuiltin.c
trunk/gcc/testsuite/ChangeLog


[Bug preprocessor/45038] __DBL_MIN__ result in old-style-cast

2010-11-15 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45038

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #3 from Nathan Froyd  2010-11-15 
15:26:35 UTC ---
Fixed on trunk.


[Bug target/46512] [4.6 Regression] crtstuff.c:563:1: internal compiler error: Segmentation fault

2010-11-16 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46512

--- Comment #2 from Nathan Froyd  2010-11-17 
01:41:16 UTC ---
Author: froydnj
Date: Wed Nov 17 01:41:13 2010
New Revision: 166849

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166849
Log:
PR target/46512
* config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
under check for type.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/pa/pa.c


[Bug c/33193] slopiness in __real/__imag

2010-11-18 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33193

--- Comment #4 from Nathan Froyd  2010-11-18 
16:25:04 UTC ---
Author: froydnj
Date: Thu Nov 18 16:24:56 2010
New Revision: 166909

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166909
Log:
gcc/
PR c/33193
* c-typeck.c (build_unary_op): Call build_real_imag_expr for
REALPART_EXPR and IMAGPART_EXPR.

gcc/c-family/
PR c/33193
* c-common.h (build_real_imag_expr): Declare.
* c-semantics.c (build_real_imag_expr): Define.

gcc/cp/
PR c/33193
* typeck.c (cp_build_unary_op): Call build_real_imag_expr for
REALPART_EXPR and IMAGPART_EXPR.

gcc/testsuite/
PR c/33193
* c-c++-common/pr33193.c: New test.


Added:
trunk/gcc/testsuite/c-c++-common/pr33193.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.h
trunk/gcc/c-family/c-semantics.c
trunk/gcc/c-typeck.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


[Bug c/33193] slopiness in __real/__imag

2010-11-18 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33193

Nathan Froyd  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #5 from Nathan Froyd  2010-11-18 
16:26:07 UTC ---
Fixed on trunk.


[Bug target/46548] Build arm gcc failure after patch 165463

2010-11-18 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46548

Nathan Froyd  changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu.org,
   ||pbrook at gcc dot gnu.org

--- Comment #1 from Nathan Froyd  2010-11-18 
23:49:26 UTC ---
Paul had mentioned that he saw similar failures and was working on a better
patch.  Paul, did you ever get things into a workable state?


[Bug c++/45331] Generate clear diagnostics when a semicolon is missing at the end of a class definition

2010-11-20 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45331

--- Comment #2 from Nathan Froyd  2010-11-20 
18:50:05 UTC ---
Author: froydnj
Date: Sat Nov 20 18:50:00 2010
New Revision: 166977

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166977
Log:
gcc/c-family/
PR c++/16189
PR c++/36888
PR c++/45331
* c-common.h (keyword_begins_type_specifier): Declare.
(keyword_is_storage_class_specifier): Declare.
(keyword_is_type_qualifier): Declare.
* c-common.c (keyword_begins_type_specifier): New function.
(keyword_is_storage_class_specifier): New function.
(keyword_is_type_qualifier): Declare.

gcc/cp/
PR c++/16189
PR c++/36888
PR c++/45331
* parser.c (cp_lexer_set_token_position): New function.
(cp_lexer_previous_token_position): New function.
(cp_lexer_previous_token): Call it.
(cp_parser_class_specifier): Try to gracefully handle a missing
semicolon.

gcc/testsuite/
PR c++/16189
PR c++/36888
PR c++/45331
* g++.dg/parse/semicolon3.C: New test.
* g++.dg/debug/pr22514.C: Adjust.
* g++.dg/init/error1.C: Adjust.
* g++.dg/other/bitfield3.C: Adjust.
* g++.dg/other/semicolon.C: Adjust.
* g++.dg/parse/error14.C: Adjust.
* g++.dg/parse/error5.C: Adjust.
* g++.dg/parse/parameter-declaration-1.C: Adjust.
* g++.dg/template/pr23510.C: Adjust.
* g++.dg/template/pr39425.C: Adjust.
* g++.old-deja/g++.robertl/eb125.C: Adjust.


Added:
trunk/gcc/testsuite/g++.dg/parse/semicolon3.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/c-family/c-common.h
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/debug/pr22514.C
trunk/gcc/testsuite/g++.dg/init/error1.C
trunk/gcc/testsuite/g++.dg/other/bitfield3.C
trunk/gcc/testsuite/g++.dg/other/semicolon.C
trunk/gcc/testsuite/g++.dg/parse/error14.C
trunk/gcc/testsuite/g++.dg/parse/error5.C
trunk/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C
trunk/gcc/testsuite/g++.dg/template/pr23510.C
trunk/gcc/testsuite/g++.dg/template/pr39425.C
trunk/gcc/testsuite/g++.old-deja/g++.robertl/eb125.C


[Bug c++/16189] obfuscated error message for missing semicolon after declaration in C++

2010-11-20 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16189

--- Comment #10 from Nathan Froyd  2010-11-20 
18:50:05 UTC ---
Author: froydnj
Date: Sat Nov 20 18:50:00 2010
New Revision: 166977

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166977
Log:
gcc/c-family/
PR c++/16189
PR c++/36888
PR c++/45331
* c-common.h (keyword_begins_type_specifier): Declare.
(keyword_is_storage_class_specifier): Declare.
(keyword_is_type_qualifier): Declare.
* c-common.c (keyword_begins_type_specifier): New function.
(keyword_is_storage_class_specifier): New function.
(keyword_is_type_qualifier): Declare.

gcc/cp/
PR c++/16189
PR c++/36888
PR c++/45331
* parser.c (cp_lexer_set_token_position): New function.
(cp_lexer_previous_token_position): New function.
(cp_lexer_previous_token): Call it.
(cp_parser_class_specifier): Try to gracefully handle a missing
semicolon.

gcc/testsuite/
PR c++/16189
PR c++/36888
PR c++/45331
* g++.dg/parse/semicolon3.C: New test.
* g++.dg/debug/pr22514.C: Adjust.
* g++.dg/init/error1.C: Adjust.
* g++.dg/other/bitfield3.C: Adjust.
* g++.dg/other/semicolon.C: Adjust.
* g++.dg/parse/error14.C: Adjust.
* g++.dg/parse/error5.C: Adjust.
* g++.dg/parse/parameter-declaration-1.C: Adjust.
* g++.dg/template/pr23510.C: Adjust.
* g++.dg/template/pr39425.C: Adjust.
* g++.old-deja/g++.robertl/eb125.C: Adjust.


Added:
trunk/gcc/testsuite/g++.dg/parse/semicolon3.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/c-family/c-common.h
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/debug/pr22514.C
trunk/gcc/testsuite/g++.dg/init/error1.C
trunk/gcc/testsuite/g++.dg/other/bitfield3.C
trunk/gcc/testsuite/g++.dg/other/semicolon.C
trunk/gcc/testsuite/g++.dg/parse/error14.C
trunk/gcc/testsuite/g++.dg/parse/error5.C
trunk/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C
trunk/gcc/testsuite/g++.dg/template/pr23510.C
trunk/gcc/testsuite/g++.dg/template/pr39425.C
trunk/gcc/testsuite/g++.old-deja/g++.robertl/eb125.C


[Bug c++/36888] Error message when forgetting a semicolon after a class definition should be better

2010-11-20 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36888

--- Comment #4 from Nathan Froyd  2010-11-20 
18:50:06 UTC ---
Author: froydnj
Date: Sat Nov 20 18:50:00 2010
New Revision: 166977

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166977
Log:
gcc/c-family/
PR c++/16189
PR c++/36888
PR c++/45331
* c-common.h (keyword_begins_type_specifier): Declare.
(keyword_is_storage_class_specifier): Declare.
(keyword_is_type_qualifier): Declare.
* c-common.c (keyword_begins_type_specifier): New function.
(keyword_is_storage_class_specifier): New function.
(keyword_is_type_qualifier): Declare.

gcc/cp/
PR c++/16189
PR c++/36888
PR c++/45331
* parser.c (cp_lexer_set_token_position): New function.
(cp_lexer_previous_token_position): New function.
(cp_lexer_previous_token): Call it.
(cp_parser_class_specifier): Try to gracefully handle a missing
semicolon.

gcc/testsuite/
PR c++/16189
PR c++/36888
PR c++/45331
* g++.dg/parse/semicolon3.C: New test.
* g++.dg/debug/pr22514.C: Adjust.
* g++.dg/init/error1.C: Adjust.
* g++.dg/other/bitfield3.C: Adjust.
* g++.dg/other/semicolon.C: Adjust.
* g++.dg/parse/error14.C: Adjust.
* g++.dg/parse/error5.C: Adjust.
* g++.dg/parse/parameter-declaration-1.C: Adjust.
* g++.dg/template/pr23510.C: Adjust.
* g++.dg/template/pr39425.C: Adjust.
* g++.old-deja/g++.robertl/eb125.C: Adjust.


Added:
trunk/gcc/testsuite/g++.dg/parse/semicolon3.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/c-family/c-common.h
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/debug/pr22514.C
trunk/gcc/testsuite/g++.dg/init/error1.C
trunk/gcc/testsuite/g++.dg/other/bitfield3.C
trunk/gcc/testsuite/g++.dg/other/semicolon.C
trunk/gcc/testsuite/g++.dg/parse/error14.C
trunk/gcc/testsuite/g++.dg/parse/error5.C
trunk/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C
trunk/gcc/testsuite/g++.dg/template/pr23510.C
trunk/gcc/testsuite/g++.dg/template/pr39425.C
trunk/gcc/testsuite/g++.old-deja/g++.robertl/eb125.C


[Bug c/45062] [4.6 Regression] Revision 162223 caused ICE at c-decl.c:4064

2010-12-02 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45062

--- Comment #7 from Nathan Froyd  2010-12-02 
18:00:26 UTC ---
Author: froydnj
Date: Thu Dec  2 18:00:21 2010
New Revision: 167381

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167381
Log:
PR c/45062
* c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
!funcdef_flag.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-decl.c


[Bug c/45062] [4.6 Regression] Revision 162223 caused ICE at c-decl.c:4064

2010-12-02 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45062

Nathan Froyd  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #8 from Nathan Froyd  2010-12-02 
18:00:57 UTC ---
Fixed.


[Bug c++/45330] Suggest likely nested-name-specifiers for undeclared identifiers.

2010-12-07 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45330

--- Comment #1 from Nathan Froyd  2010-12-07 
13:46:32 UTC ---
Author: froydnj
Date: Tue Dec  7 13:46:29 2010
New Revision: 167536

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167536
Log:
gcc/
PR c++/45330
* params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
* doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.

gcc/cp/
PR c++/45330
* cp-tree.h (suggest_alternatives_for, location_of): Declare.
* error.c (dump_expr): Handle TYPE_DECL.
(location_of): Unstaticize.
* name-lookup.c (suggest_alternatives_for): New function.
* lex.c (unqualified_name_lookup_error): Call it.

gcc/testsuite/
PR c++/45330
* g++.dg/pr45330.C: New test.
* g++.dg/ext/builtin3.C: Adjust.
* g++.dg/lookup/error1.C: Adjust.
* g++.dg/lookup/koenig5.C: Adjust.
* g++.dg/overload/koenig1.C: Adjust.
* g++.dg/parse/decl-specifier-1.C: Adjust.
* g++.dg/template/static10.C: Adjust.
* g++.old-deja/g++.mike/ns5.C: Adjust.
* g++.old-deja/g++.mike/ns7.C: Adjust.
* g++.old-deja/g++.ns/koenig5.C: Adjust.
* g++.old-deja/g++.ns/koenig9.C: Adjust.
* g++.old-deja/g++.other/lineno5.C: Adjust.


Added:
trunk/gcc/testsuite/g++.dg/pr45330.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/error.c
trunk/gcc/cp/lex.c
trunk/gcc/cp/name-lookup.c
trunk/gcc/doc/invoke.texi
trunk/gcc/params.def
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/ext/builtin3.C
trunk/gcc/testsuite/g++.dg/lookup/error1.C
trunk/gcc/testsuite/g++.dg/lookup/koenig5.C
trunk/gcc/testsuite/g++.dg/overload/koenig1.C
trunk/gcc/testsuite/g++.dg/parse/decl-specifier-1.C
trunk/gcc/testsuite/g++.dg/template/static10.C
trunk/gcc/testsuite/g++.old-deja/g++.mike/ns5.C
trunk/gcc/testsuite/g++.old-deja/g++.mike/ns7.C
trunk/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C
trunk/gcc/testsuite/g++.old-deja/g++.ns/koenig9.C
trunk/gcc/testsuite/g++.old-deja/g++.other/lineno5.C


[Bug c++/45330] Suggest likely nested-name-specifiers for undeclared identifiers.

2010-12-07 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45330

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #2 from Nathan Froyd  2010-12-07 
14:32:30 UTC ---
Fixed.


[Bug c++/45332] Generate clear diagnostics when a terminating semicolon is missing from a class member declaration.

2010-12-07 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45332

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #2 from Nathan Froyd  2010-12-07 
14:37:03 UTC ---
Fixed.


[Bug c++/45331] Generate clear diagnostics when a semicolon is missing at the end of a class definition

2010-12-07 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45331

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #3 from Nathan Froyd  2010-12-07 
14:37:57 UTC ---
Fixed.


[Bug c++/36888] Error message when forgetting a semicolon after a class definition should be better

2010-12-07 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36888

Nathan Froyd  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #5 from Nathan Froyd  2010-12-07 
14:40:11 UTC ---
Fixed.


[Bug c++/44514] bad error recovery with forgotten ; after class definition

2010-12-07 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44514

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||froydnj at gcc dot gnu.org
  Component|c   |c++
 Resolution||FIXED

--- Comment #1 from Nathan Froyd  2010-12-07 
14:46:05 UTC ---
This has been fixed by the fix for PR 45331.  We now say:

/home/froydnj/src/x.C:2:10: error: expected ';' after class definition
/home/froydnj/src/x.C:6:1: error: expected ';' after struct definition


[Bug c++/46836] New: reporting locations for names in std namespace could be improved

2010-12-07 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46836

   Summary: reporting locations for names in std namespace could
be improved
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: froy...@gcc.gnu.org


As suggested in http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00530.html , if we
have to issue diagnostics about names in standard headers, it would be better
if we said something like:

: ...std::count...

rather than:

/some/ugly/path/the/user/didn't/include: ...std::count...


[Bug c++/46852] ICE: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in cp_parser_class_specifier, at cp/parser.c:16947

2010-12-08 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46852

Nathan Froyd  changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |froydnj at gcc dot gnu.org
   |gnu.org |
   Target Milestone|--- |4.6.0

--- Comment #1 from Nathan Froyd  2010-12-08 
16:56:46 UTC ---
This is due to my changes to detect missing semicolons.  I will fix it.


[Bug c++/45329] When printing a list of candidate functions, explain why each function failed to match.

2010-12-08 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45329

--- Comment #4 from Nathan Froyd  2010-12-08 
21:37:54 UTC ---
Author: froydnj
Date: Wed Dec  8 21:37:51 2010
New Revision: 167607

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167607
Log:
gcc/cp/
PR c++/45329
* call.c (struct conversion): Document bad_p field.
(enum rejection_reason_code): Define.
(struct conversion_info): Define.
(struct rejection_reason): Define.
(struct z_candidate): Add `reason' field.
(add_candidate): Add `reason' parameter.  Store it in CAND.
(alloc_rejection, arity_rejection, arg_conversion_rejection):
New functions.
(bad_arg_conversion_rejection): New function.
(convert_class_to_reference): Add comment.
(remaining_arguments): New function.
(add_function_candidate): Record rejection reason and pass it to
add_candidate.
(add_conv_candidate, build_builtin_candidate): Likewise.
(add_template_candidate_real): Likewise.
(print_conversion_rejection): New function.
(print_z_candidate): Print CAND->REASON if it exists.  Adjust
diagnostic strings.
(print_z_candidates): Add location_t argument.  Adjust calling
sequence for print_z_candidate. Print header line directly.
(build_user_type_conversion_1): Add reason for rejection to
CAND.  Adjust call to print_z_candidates.
(print_error_for_call_failure): New function.
(build_new_function_call): Call it.  Adjust call to
print_z_candidates.
(build_operator_new_call): Likewise.
(build_op_call): Likewise.
(build_conditional_expr): Likewise.
(build_new_op): Likewise.
(build_new_method_call): Likewise.

gcc/testsuite/
PR c++/45329
* testsuite/g++.dg/conversion/ambig1.C: Adjust.
* testsuite/g++.dg/conversion/op1.C: Adjust.
* testsuite/g++.dg/conversion/simd1.C: Adjust.
* testsuite/g++.dg/cpp0x/defaulted14.C: Adjust.
* testsuite/g++.dg/cpp0x/defaulted18.C: Adjust.
* testsuite/g++.dg/cpp0x/defaulted20.C: Adjust.
* testsuite/g++.dg/cpp0x/explicit3.C: Adjust.
* testsuite/g++.dg/cpp0x/explicit4.C: Adjust.
* testsuite/g++.dg/cpp0x/implicit4.C: Adjust.
* testsuite/g++.dg/cpp0x/nullptr15.C: Adjust.
* testsuite/g++.dg/cpp0x/nullptr19.C: Adjust.
* testsuite/g++.dg/cpp0x/pr31431-2.C: Adjust.
* testsuite/g++.dg/cpp0x/pr31431.C: Adjust.
* testsuite/g++.dg/cpp0x/pr31434.C: Adjust.
* testsuite/g++.dg/cpp0x/pr31437.C: Adjust.
* testsuite/g++.dg/cpp0x/rv2n.C: Adjust.
* testsuite/g++.dg/cpp0x/rv3n.C: Adjust.
* testsuite/g++.dg/cpp0x/rv4n.C: Adjust.
* testsuite/g++.dg/cpp0x/rv5n.C: Adjust.
* testsuite/g++.dg/cpp0x/rv6n.C: Adjust.
* testsuite/g++.dg/cpp0x/rv7n.C: Adjust.
* testsuite/g++.dg/cpp0x/temp_default2.C: Adjust.
* testsuite/g++.dg/cpp0x/trailing4.C: Adjust.
* testsuite/g++.dg/cpp0x/variadic-ex3.C: Adjust.
* testsuite/g++.dg/cpp0x/variadic-ex4.C: Adjust.
* testsuite/g++.dg/cpp0x/variadic35.C: Adjust.
* testsuite/g++.dg/cpp0x/vt-35147.C: Adjust.
* testsuite/g++.dg/cpp0x/vt-37737-2.C: Adjust.
* testsuite/g++.dg/expr/cond9.C: Adjust.
* testsuite/g++.dg/expr/pmf-1.C: Adjust.
* testsuite/g++.dg/ext/label5.C: Adjust.
* testsuite/g++.dg/ext/visibility/anon8.C: Adjust.
* testsuite/g++.dg/ext/vla2.C: Adjust.
* testsuite/g++.dg/gomp/pr26690-1.C: Adjust.
* testsuite/g++.dg/gomp/pr26690-2.C: Adjust.
* testsuite/g++.dg/init/synth2.C: Adjust.
* testsuite/g++.dg/lookup/conv-1.C: Adjust.
* testsuite/g++.dg/lookup/new1.C: Adjust.
* testsuite/g++.dg/lookup/using9.C: Adjust.
* testsuite/g++.dg/other/error13.C: Adjust.
* testsuite/g++.dg/other/error20.C: Adjust.
* testsuite/g++.dg/other/error31.C: Adjust.
* testsuite/g++.dg/other/pr28114.C: Adjust.
* testsuite/g++.dg/other/ptrmem10.C: Adjust.
* testsuite/g++.dg/other/ptrmem11.C: Adjust.
* testsuite/g++.dg/overload/ambig1.C: Adjust.
* testsuite/g++.dg/overload/arg3.C: Adjust.
* testsuite/g++.dg/overload/builtin1.C: Adjust.
* testsuite/g++.dg/overload/copy1.C: Adjust.
* testsuite/g++.dg/overload/new1.C: Adjust.
* testsuite/g++.dg/overload/template4.C: Adjust.
* testsuite/g++.dg/overload/unknown1.C: Adjust.
* testsuite/g++.dg/overload/using2.C: Adjust.
* testsuite/g++.dg/parse/crash5.C: Adjust.
* testsuite/g++.dg/parse/error19.C: Adjust.
* testsuite/g++.dg/parse/error28.C: Adjust.
* testsuite/g++.dg/parse/template7.C: Adjust.
* testsuite/g++.dg/parse/typename7.C: Adjust.
* testsuite/g++.dg/rtti/typeid6.C: Adjust.
* testsuite/g++.dg/tc1/dr152.C: Adjust.
* testsuite/g++.dg/template/conv11.C: Adjust.
* testsuite/g++.dg/template/copy1.C: Adjust.
* testsuite/g++.dg/template/crash37.C: Adjust.
* testsuite/g++.dg/template/deduce3.C: Adjust.
* testsuite/g++.dg/template/dependent-expr5.C: Adjust.
* testsuite/g++.dg/template/error38.C: Adjust.
* testsuite/g++.dg/template/error40.C: Adjust.
* test

[Bug c++/45329] When printing a list of candidate functions, explain why each function failed to match.

2010-12-08 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45329

Nathan Froyd  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #5 from Nathan Froyd  2010-12-08 
21:41:32 UTC ---
Fixed.


[Bug testsuite/46860] [4.6 Regression] New libstdc++ failures

2010-12-08 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46860

--- Comment #1 from Nathan Froyd  2010-12-09 
04:34:26 UTC ---
Author: froydnj
Date: Thu Dec  9 04:34:20 2010
New Revision: 167625

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167625
Log:
PR testsuite/46860
* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust.
* testsuite/20_util/unique_ptr/assign/assign_neg.cc: Adjust.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc


[Bug testsuite/46860] [4.6 Regression] New libstdc++ failures

2010-12-08 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46860

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #2 from Nathan Froyd  2010-12-09 
04:34:58 UTC ---
Fixed.


[Bug target/46040] crtstuff.c:308:26: error: '__DTOR_LIST__' undeclared

2010-12-13 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46040

--- Comment #10 from Nathan Froyd  2010-12-13 
16:23:55 UTC ---
Author: froydnj
Date: Mon Dec 13 16:23:50 2010
New Revision: 167751

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167751
Log:
gcc/
PR target/46040
* config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
(arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.

libgcc/
PR target/46040
* config/arm/bpabi.h: Rename to...
* config/arm/bpabi-lib.h: ...this.


Added:
trunk/libgcc/config/arm/bpabi-lib.h
  - copied unchanged from r167749, trunk/libgcc/config/arm/bpabi.h
Removed:
trunk/libgcc/config/arm/bpabi.h
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config.gcc
trunk/libgcc/ChangeLog


[Bug c++/45330] Suggest likely nested-name-specifiers for undeclared identifiers.

2010-12-14 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45330

--- Comment #3 from Nathan Froyd  2010-12-14 
20:31:30 UTC ---
Author: froydnj
Date: Tue Dec 14 20:31:22 2010
New Revision: 167814

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167814
Log:
gcc/cp/
PR c++/45330
* cp-tree.h (suggest_alternatives_for): Add location_t parameter.
* name-lookup.c (suggest_alternatives_for): Likewise.  Adjust.
* lex.c (unqualified_name_lookup_error): Adjust call to it.
* semantics.c (qualified_name_lookup_error): Move to...
* error.c (qualified_name_lookup_error): ...here.  Call.
suggest_alternatives_for.

gcc/testsuite/
PR c++/45330
* g++.dg/lookup/suggestions1.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/lookup/suggestions1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/error.c
trunk/gcc/cp/lex.c
trunk/gcc/cp/name-lookup.c
trunk/gcc/cp/semantics.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/46868] [4.6 Regression] ICE: SIGSEGV splay_tree_splay (splay-tree.c:149) on invalid code

2010-12-15 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46868

Nathan Froyd  changed:

   What|Removed |Added

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

--- Comment #4 from Nathan Froyd  2010-12-16 
00:10:01 UTC ---
Will fix later this week.


[Bug c++/46852] [4.6 Regression] ICE: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in cp_parser_class_specifier, at cp/parser.c:16947

2010-12-15 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46852

--- Comment #2 from Nathan Froyd  2010-12-16 
01:33:07 UTC ---
Author: froydnj
Date: Thu Dec 16 01:33:03 2010
New Revision: 167894

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167894
Log:
gcc/cp/
PR c++/46852
* parser.c (cp_parser_class_specifier): Check for TYPE_P.

gcc/testsuite/
PR c++/46852
* g++.dg/pr46852.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/pr46852.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/39859] duplicated and unhelpful error for "c:n" (parser)

2010-12-15 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39859

--- Comment #2 from Nathan Froyd  2010-12-16 
01:36:15 UTC ---
Author: froydnj
Date: Thu Dec 16 01:36:09 2010
New Revision: 167895

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167895
Log:
gcc/cp/
PR c++/39859
PR c++/44522
PR c++/44523
* parser.c (struct cp_parser): Add colon_corrects_to_scope_p field.
(cp_parser_new): Initialize it.
(cp_parser_nested_name_specifier_opt): Auto-correct colons to
scopes if we are able to.
(cp_parser_question_colon_clause): Disallow colon correction.
(cp_parser_label_for_labeled_statement): Likewise.
(cp_parser_range_for): Likewise.
(cp_parser_enum_specifier): Likewise.
(cp_parser_class_head): Likewise.
(cp_parser_member_declaration): Likewise.

gcc/testsuite/
PR c++/39859
PR c++/44522
PR c++/44523
* g++.dg/parse/colon-autocorrect-1.C: New testcase.
* g++.dg/parse/colon-autocorrect-2.C: New testcase.


Added:
trunk/gcc/testsuite/g++.dg/parse/colon-autocorrect-1.C
trunk/gcc/testsuite/g++.dg/parse/colon-autocorrect-2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/44522] improve diagnostic for :: vs : typo

2010-12-15 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44522

--- Comment #1 from Nathan Froyd  2010-12-16 
01:36:13 UTC ---
Author: froydnj
Date: Thu Dec 16 01:36:09 2010
New Revision: 167895

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167895
Log:
gcc/cp/
PR c++/39859
PR c++/44522
PR c++/44523
* parser.c (struct cp_parser): Add colon_corrects_to_scope_p field.
(cp_parser_new): Initialize it.
(cp_parser_nested_name_specifier_opt): Auto-correct colons to
scopes if we are able to.
(cp_parser_question_colon_clause): Disallow colon correction.
(cp_parser_label_for_labeled_statement): Likewise.
(cp_parser_range_for): Likewise.
(cp_parser_enum_specifier): Likewise.
(cp_parser_class_head): Likewise.
(cp_parser_member_declaration): Likewise.

gcc/testsuite/
PR c++/39859
PR c++/44522
PR c++/44523
* g++.dg/parse/colon-autocorrect-1.C: New testcase.
* g++.dg/parse/colon-autocorrect-2.C: New testcase.


Added:
trunk/gcc/testsuite/g++.dg/parse/colon-autocorrect-1.C
trunk/gcc/testsuite/g++.dg/parse/colon-autocorrect-2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/44523] improve diagnostic for :: vs : typo (complex case)

2010-12-15 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44523

--- Comment #1 from Nathan Froyd  2010-12-16 
01:36:14 UTC ---
Author: froydnj
Date: Thu Dec 16 01:36:09 2010
New Revision: 167895

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167895
Log:
gcc/cp/
PR c++/39859
PR c++/44522
PR c++/44523
* parser.c (struct cp_parser): Add colon_corrects_to_scope_p field.
(cp_parser_new): Initialize it.
(cp_parser_nested_name_specifier_opt): Auto-correct colons to
scopes if we are able to.
(cp_parser_question_colon_clause): Disallow colon correction.
(cp_parser_label_for_labeled_statement): Likewise.
(cp_parser_range_for): Likewise.
(cp_parser_enum_specifier): Likewise.
(cp_parser_class_head): Likewise.
(cp_parser_member_declaration): Likewise.

gcc/testsuite/
PR c++/39859
PR c++/44522
PR c++/44523
* g++.dg/parse/colon-autocorrect-1.C: New testcase.
* g++.dg/parse/colon-autocorrect-2.C: New testcase.


Added:
trunk/gcc/testsuite/g++.dg/parse/colon-autocorrect-1.C
trunk/gcc/testsuite/g++.dg/parse/colon-autocorrect-2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/44523] improve diagnostic for :: vs : typo (complex case)

2010-12-15 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44523

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #2 from Nathan Froyd  2010-12-16 
01:43:42 UTC ---
Fixed.


[Bug c++/44522] improve diagnostic for :: vs : typo

2010-12-15 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44522

Nathan Froyd  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||froydnj at gcc dot gnu.org
 Resolution||FIXED

--- Comment #2 from Nathan Froyd  2010-12-16 
01:44:09 UTC ---
Fixed.


[Bug c++/49129] confusing diagnostic for missing semi-colon after member template

2011-05-24 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49129

--- Comment #1 from Nathan Froyd  2011-05-24 
13:30:16 UTC ---
I believe I tried to do that at one point; you can see the comment in
cp/parser.c:class_specifier_1 about handling user-defined types.  I might not
have been clever enough, though.  It'd certainly be helpful.


[Bug bootstrap/49190] [4.7 Regression] Bootstrap failure at revision 174286 on x86_64-apple-darwin10

2011-05-27 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49190

Nathan Froyd  changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu.org

--- Comment #3 from Nathan Froyd  2011-05-27 
17:57:44 UTC ---
Ugh.  I do not have time to deal with this problem at the moment.

But I don't understand how ASM_OUTPUT_WEAKREF isn't defined at that point.  We
have a perfectly fine default definition in defaults.h.


[Bug bootstrap/49190] [4.7 Regression] Bootstrap failure at revision 174286 on x86_64-apple-darwin10

2011-05-27 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49190

Nathan Froyd  changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #5 from Nathan Froyd  2011-05-27 
18:57:23 UTC ---
That's what I get for not actually *looking* at the definition.

The only quick non-reverting way I see of fixing this is to use TREE_TYPE
instead of TREE_CHAIN...which is gross.  CC'ing Honza to see if he has good
ideas.


[Bug bootstrap/49190] [4.7 Regression] Bootstrap failure at revision 174286 on several platforms

2011-05-30 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49190

--- Comment #14 from Nathan Froyd  2011-05-30 
16:42:12 UTC ---
Author: froydnj
Date: Mon May 30 16:42:05 2011
New Revision: 174445

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=174445
Log:
fix PR bootstrap/4910
gcc/
PR bootstrap/49190

Revert:
2011-05-26  Nathan Froyd  

* tree.h (struct tree_identifier): Inherit from tree_typed, not
tree_common.
(HT_IDENT_TO_GCC_IDENT): Adjust for said change.
* tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
TS_BASE instead of TS_COMMON.
* varasm.c (assemble_name): Remove assert.

gcc/c-family/
PR bootstrap/49190

Revert:
2011-05-26  Nathan Froyd  

* c-common.h (struct c_common_identifier): Inherit from tree_typed,
not tree_common.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.h
trunk/gcc/tree.c
trunk/gcc/tree.h
trunk/gcc/varasm.c


[Bug c/4910] imacat

2011-05-30 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4910

--- Comment #4 from Nathan Froyd  2011-05-30 
16:42:10 UTC ---
Author: froydnj
Date: Mon May 30 16:42:05 2011
New Revision: 174445

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=174445
Log:
fix PR bootstrap/4910
gcc/
PR bootstrap/49190

Revert:
2011-05-26  Nathan Froyd  

* tree.h (struct tree_identifier): Inherit from tree_typed, not
tree_common.
(HT_IDENT_TO_GCC_IDENT): Adjust for said change.
* tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
TS_BASE instead of TS_COMMON.
* varasm.c (assemble_name): Remove assert.

gcc/c-family/
PR bootstrap/49190

Revert:
2011-05-26  Nathan Froyd  

* c-common.h (struct c_common_identifier): Inherit from tree_typed,
not tree_common.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.h
trunk/gcc/tree.c
trunk/gcc/tree.h
trunk/gcc/varasm.c


[Bug bootstrap/49190] [4.7 Regression] Bootstrap failure at revision 174286 on several platforms

2011-05-30 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49190

--- Comment #15 from Nathan Froyd  2011-05-30 
16:43:01 UTC ---
I've reverted the offending commit.  If somebody could confirm that the
failures are gone, this PR can be closed.


[Bug objc++/49221] [4.7 Regression] Several ICEs in the obj-c++ test suite after revision 174307

2011-06-01 Thread froydnj at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49221

Nathan Froyd  changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #6 from Nathan Froyd  2011-06-01 
12:01:06 UTC ---
I'm not sure what to do in this case; maybe Jason has an opinion.  Jason,
should we be push_stmt'ing somewhere in the objc code (objc_eh_runtime_type,
perhaps)?


  1   2   >