[Bug libgcj/26483] Wrong parsing of doubles when interpreted on ia64

2006-04-12 Thread wilson at gcc dot gnu dot org


--- Comment #18 from wilson at gcc dot gnu dot org  2006-04-12 22:10 ---
Subject: Bug 26483

Author: wilson
Date: Wed Apr 12 22:10:49 2006
New Revision: 112900

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112900
Log:
Fix IA-64 problems with denorms getting clobbered by type conversions.
PR libgcj/26483
* src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
(hfa_type_load): Call stf_spill.
(hfa_type_store): Call ldf_fill.
(ffi_call): Adjust calls to above routines.  Add local temps for
macro result.

Modified:
trunk/libffi/ChangeLog
trunk/libffi/src/ia64/ffi.c


-- 


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



[Bug libgcj/26483] Wrong parsing of doubles when interpreted on ia64

2006-04-12 Thread wilson at gcc dot gnu dot org


--- Comment #19 from wilson at gcc dot gnu dot org  2006-04-12 22:21 ---
IA-64.  Mine.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-04-12 22:21:46
   date||


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



[Bug libgcj/26483] Wrong parsing of doubles when interpreted on ia64

2006-04-12 Thread wilson at gcc dot gnu dot org


--- Comment #20 from wilson at gcc dot gnu dot org  2006-04-12 22:22 ---
Fixed on mainline.  Testcase added to mainline.  The fix should probably be
backported to one or more active release branches.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|wilson at gcc dot gnu dot   |
   |org |


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



[Bug libgcj/26483] Wrong parsing of doubles when interpreted on ia64

2006-06-01 Thread wilson at gcc dot gnu dot org


--- Comment #22 from wilson at gcc dot gnu dot org  2006-06-01 22:36 ---
Subject: Bug 26483

Author: wilson
Date: Thu Jun  1 22:36:19 2006
New Revision: 114319

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=114319
Log:
Fix broken denorm support.
PR libgcj/26483
* src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
(hfa_type_load): Call stf_spill.
(hfa_type_store): Call ldf_fill.
(ffi_call): Adjust calls to above routines.  Add local temps for
macro result.

Modified:
branches/gcc-4_1-branch/libffi/ChangeLog
branches/gcc-4_1-branch/libffi/src/ia64/ffi.c


-- 


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



[Bug debug/27851] Hour-long segfault with -O1 -g on gcc.dg/parm-impl-decl-1.c

2006-06-09 Thread wilson at gcc dot gnu dot org


--- Comment #3 from wilson at gcc dot gnu dot org  2006-06-10 01:19 ---
This is a C front end bug.  The C front end is creating a circular symbol
table, where the function h is defined both in the external scope and inside
itself.  The dwarf2out.c code then goes into an infinite recursion trying to
tree walk the circular symbol table.

The syntax error is not needed to reproduce the problem.  You just need two
functions with implicit function declarations in their parameter list.  For
instance:
foo (int (*p)[sizeof(j())])
{
}
h (int (*p)[sizeof(i())])
{
}
The C front end problem can be reproduced with only one function, but you need
two to trigger the dwarf2out.c failure.

You also don't need a checking enabled build to reproduce this.

The dwarf code works in the presence of a single circular reference in the
symbol table because there is code in gen_subprogram_die that catches the case
where we try to define a function twice.  This doesn't work when we have two
circular references.  Now the function h is defined in 3 places, externally,
inside itself, and inside foo.  The one inside foo is turned into a
declaration, and now the short circuit code in gen_subprogram_die doesn't work,
and we get the infinite recursion.

The problem occurs in get_parm_info and store_parm_decls_newstyle in c-decl.c. 
The first function tears apart the binding scope for parameters.  When it sees
a function, it puts it on the others list.  Then store_parm_decls_newstyle
reinserts it in the proper place in the proper scope with nested=0 regardless
of what the original value of nested was.  This appears to be the bug.

When the function i, for instance, was inserted into binding scopes, it was put
in two of them.  It was put in the external scope with nested=0, and it was put
in the param scope with nested=1.  If this info was preserved by get_parm_info
and store_parm_decls_newstyle, then the bug would not occur.

The circular refernence is created in pop_scope.  When popping the scope for
the function h, i is inserted into the BLOCK_VARS for the function body because
nested is 0.  When popping the external scope, i is inserted into the
BLOCK_VARS for the external scope, because nested is 0.  Now we have the same
decl in two places in the symbol table.  When we handle the function h for the
external scope, it is chained to i, and now since i is also declared inside the
function h, the function h is also declared inside itself.  When we add foo, h
is now also declared inside foo, and foo inside h.

I don't see an easy way to fix this without adding aanother datastructure.  We
could change the others field to be a structure containing a tree and the
nested info, and then store_parm_decls_newstyle can get the nested value
correct when it reinserts the tree into the symbol table.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|                |wilson at gcc dot gnu dot
   |    |org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-06-10 01:19:03
   date||


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



[Bug rtl-optimization/27761] combine miscompiles

2006-06-09 Thread wilson at gcc dot gnu dot org


--- Comment #5 from wilson at gcc dot gnu dot org  2006-06-10 02:49 ---
If a combination is successful, we will delete i1 and i2, so it doesn't matter
if they changed accidentally.

If a combination fails, then we go through undobuf and revert all changes, so
it doesn't matter if i1 or i2 changed accidentally.  They will be restored to
their original values when we are done.

The only case where it matters is if added_sets_2 or added_sets_1 is true.  In
this case, we will re-add the patterns from i1 and/or i2 after the combination.
 So in this case, we need to make sure we still have the original patterns.  We
already make a copy of the i2 pattern for this purpose.  i2pat is a copy, and
is only used if added_sets_2 is true.  So we just need to do the same for
i1pat.

I agree the comment before the i2pat is a bit confusing.  It looks like the
copy was originally added to fix an obscure problem, but it also happens to fix
this one too.

It looks like there is an unnecessary gen_rtx_SET call, as i2pat will only be
used if added_sets_2 is true.  So the code setting i2pat should be moved inside
the added_sets_2 if statement.  The new i1pat code should work the same way.

The actual modification of the if_then_else rtl happens inside force_to_mode,
as called from simplify_and_const_int.  See the uses of SUBST in the
if_then_else case in force_to_mode.  This problem could be fixed if we
generated new rtl here instead of using SUBST, but I don't think that is
helpful, as there are other places that also call SUBST.  It is safer to make
the i1pat copy.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|            |wilson at gcc dot gnu dot
   |        |org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-06-10 02:49:49
   date||


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



[Bug target/27883] [4.2 regression] in schedule_insns, at sched-rgn.c:3038 on mips

2006-06-26 Thread wilson at gcc dot gnu dot org


--- Comment #4 from wilson at gcc dot gnu dot org  2006-06-27 03:02 ---
This only fails for --enable-checking builds, which is the default for
mainline, but not release branches.  I was able to reproduce this with gcc-4.0,
but not gcc-3.4.  The difference between the two is that gcc-4.0 has the
__builtin_copysign support, which emits the RTL that triggers the error.  The
error has probably been latent for a while.

The insn that causes the problem is
(jump_insn 99 98 113 15 (set (pc)
(if_then_else (ge:SI (subreg:SI (reg:DF 32 $f0) 4)
(const_int 0 [0x0]))
(label_ref 101)
(pc))) 261 {*branch_zerosi} (insn_list:REG_DEP_TRUE 94 (nil))
(expr_list:REG_DEAD (reg:SI 33 $f1)
(expr_list:REG_BR_PROB (const_int 5000 [0x1388])
(nil
On a 32-bit mips target, DFmode $f0 is a register pair $f0/$f1, so technically
this is correct.  There is a corresponding REG_UNUSED for $f0 on the insn that
sets (reg:DF 32 $f0).

However, flow doesn't track individual regs in subregs, it only tracks the
whole subreg.  Note that mark_used_reg ignores subregs.  So when we execute the
second life pass, we end up with
(jump_insn 98 97 112 17 (set (pc)
(if_then_else (ge (subreg:SI (reg:DF 32 $f0) 4)
(const_int 0 [0x0]))
(label_ref 100)
(pc))) 271 {*branch_ordersi} (insn_list:REG_DEP_TRUE 93 (nil))
(expr_list:REG_DEAD (reg:DF 32 $f0)
(expr_list:REG_DEAD (reg:SI 33 $f1)
(expr_list:REG_BR_PROB (const_int 5000 [0x1388])
(nil)
Note that we now have two overlapping REG_DEAD notes plus an overlapping
REG_UNUSED note on a previous insn.  When sched runs, it deletes both REG_DEAD
notes, but only readds one, resulting in the abort for a REG_DEAD note
consistency problem.

A subreg of a hard register is normally not allowed, but it is created in this
case because CANNOT_CHANGE_CLASS_MODE is defined, and HARD_REGNO_MODE_OK says
that an SImode $f1 is not OK.  The result is that simplify_subreg doesn't
simplify this.  The other part is that register_operand says it is OK. 
Eventually, this gets fixed by reload.

Fixing combine to get this right looks complicated.  Combine has to know that
the register was used inside a subreg, and then figure out that the subreg
wasn't simplified because of CANNOT_CHANGE_CLASS_MODE, etc.

I think a simpler solution here is to note that the life2 pass would have
worked correctly if it deleted all prior REG_UNUSED/REG_DEAD notes before it
started.  Incidentally, the comments for the life2 pass say it was explicitly
added to fix REG_UNUSED/REG_DEAD problems with distribute_notes in combine, so
it was apparently added to fix a related problem.  It just isn't working the
way it was originally intended.

It is curious that life2 is running immediately before sched, instead of
immediately after combine.  If we ran it immediately after combine, we could
get rid of the REG_DEAD/REG_UNUSED support in distribute_notes, which is
probably the most complicated, and most buggy, part of combine.  This would
also speed up the compiler a little bit.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|                |wilson at gcc dot gnu dot
   |    |org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-06-27 03:02:40
   date||


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



[Bug target/27883] [4.0/4.1/4.2 regression] in schedule_insns, at sched-rgn.c:3038 on mips

2006-07-10 Thread wilson at gcc dot gnu dot org


--- Comment #5 from wilson at gcc dot gnu dot org  2006-07-11 01:32 ---
This is already fixed on dataflow-branch.  At the end of combine_instructions,
it runs a global dataflow pass that removes all REG_DEAD and REG_UNUSED notes
before creating new ones.


-- 


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



[Bug target/27883] [4.0/4.1/4.2 regression] in schedule_insns, at sched-rgn.c:3038 on mips

2006-07-10 Thread wilson at gcc dot gnu dot org


--- Comment #6 from wilson at gcc dot gnu dot org  2006-07-11 01:41 ---
Created an attachment (id=11857)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11857&action=view)
Delete old REG_DEAD notes before creating new ones.

This works for the testcase, but is otherwise untested.  This just deletes the
old REG_DEAD notes for a local life update before creating new ones.  I believe
this could be made simpler by eliminating UPDATE_LIFE_GLOBAL_RM_NOTES, and then
calling count_or_remove_death_notes if PROP_DEATH_NOTES is set for both global
and local updates.  However, assuming we want what is on dataflow-branch, it
seems better to go with a safer non-conflicting patch for now, and let
dataflow-branch be the long term fix.


-- 


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



[Bug middle-end/27313] Does not emit conditional moves for stores

2009-05-08 Thread wilson at gcc dot gnu dot org


--- Comment #6 from wilson at gcc dot gnu dot org  2009-05-09 01:21 ---
It looks like this was fixed by Michael Matz here:
http://gcc.gnu.org/ml/gcc-patches/2007-08/msg01978.html

This patch was added to gcc-4.3, and the gcc-4.2 branch is closed, so I think
this bug should be closed resolved.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||wilson at gcc dot gnu dot
   ||org


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



[Bug bootstrap/40706] gcc doesn't compile on centos3 64bit

2009-07-18 Thread wilson at gcc dot gnu dot org


--- Comment #4 from wilson at gcc dot gnu dot org  2009-07-18 20:05 ---
> build/genmodes -h>  tmp-modes.h
> /bin/sh: line 1: build/genmodes: No such file or directory
> make: *** [s-modes-h] Error 127

This is the error you can get when a program interpreter does not exist.  More
recent linux versions will print a better error message, but old ones do give
this ambiguous message for this problem.  For an ELF binary linked against
glibc, the program interpreter is ld.so.  Maybe you are missing some library
files?  build/genmodes is incidentally the first binary we will run that was
compiled by the just built gcc, so a configure error sometimes shows up as a
build/genmodes failure.

Try running "ldd build/genmodes".  You might also try "objdump --full-contents
--section .interp build/genmodes".  If either of these list non-existent files
in the output, then that is the problem.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|                        |wilson at gcc dot gnu dot
   ||org


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



[Bug preprocessor/15220] [3.4 regression] "gcc -E -MM -MG" reports missing system headers in source directory

2005-11-07 Thread wilson at gcc dot gnu dot org


--- Comment #17 from wilson at gcc dot gnu dot org  2005-11-07 19:49 ---
Subject: Bug 15220

Author: wilson
Date: Mon Nov  7 19:49:04 2005
New Revision: 106608

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=106608
Log:
Fix problem with -MM -MG and missing system header files.
PR preprocessor/15220
* cppfiles.c (_cpp_find_file): New parameter angle_brackets.  Fix all
callers.  Pass to open_file_failed.
(open_file_failed): New parameter angle_brackets.  Fix
all callers.  use in print_dep assignment.
* cpphash.h (_cpp_find_file): Add new parm to declaration.
* cppinit.c (cpp_read_main_file): Pass another arg to _cpp_find_file.

Modified:
branches/gcc-3_4-branch/gcc/ChangeLog
branches/gcc-3_4-branch/gcc/cppfiles.c
branches/gcc-3_4-branch/gcc/cpphash.h
branches/gcc-3_4-branch/gcc/cppinit.c


-- 


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



[Bug preprocessor/15220] [3.4 regression] "gcc -E -MM -MG" reports missing system headers in source directory

2005-11-07 Thread wilson at gcc dot gnu dot org


--- Comment #18 from wilson at gcc dot gnu dot org  2005-11-07 19:51 ---
Mine.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2004-04-30 12:53:54 |2005-11-07 19:51:09
   date||


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



[Bug preprocessor/15220] [3.4 regression] "gcc -E -MM -MG" reports missing system headers in source directory

2005-11-07 Thread wilson at gcc dot gnu dot org


--- Comment #19 from wilson at gcc dot gnu dot org  2005-11-07 19:52 ---
Fixed on gcc-3.4.x branch, gcc-4.0.x branch, and mainline.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work|4.0.3 4.1.0 |4.0.3 4.1.0 3.4.5
 Resolution||FIXED


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



[Bug target/24718] Shared libgcc not used for linking by default

2005-11-07 Thread wilson at gcc dot gnu dot org


--- Comment #1 from wilson at gcc dot gnu dot org  2005-11-08 01:41 ---
See the thread on the gcc list discussing this bug.
http://gcc.gnu.org/ml/gcc/2005-11/msg00331.html

I suspect this is a bug in patches applied to the gcc-3.4.x sources as I do not
see this problem in the FSF sources.

I do not have an ia64-hpux machine, so I can not easily investigate this.


-- 


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



[Bug target/24718] Shared libgcc not used for linking by default

2005-11-08 Thread wilson at gcc dot gnu dot org


--- Comment #7 from wilson at gcc dot gnu dot org  2005-11-09 01:45 ---
I see the problem now.  It is present in the FSF gcc-3.4.x sources.

The problem is that init_gcc_specs in gcc.c rewrites the LIBGCC_SPEC rule.  It
looks for the first -lgcc, and replaces it with target independent rules for
shared and static libgcc.

The config/ia64/hpux.h file redefines LIBGCC_SPEC as 
#define LIBGCC_SPEC \
  "%{shared-libgcc:%{!mlp64:-lgcc_s}%{mlp64:-lgcc_s_hpux64} -lgcc} \
   %{!shared-libgcc:-lgcc}"

So after the substitution, we now have %{shared-libgcc ... %{static-libgcc
...}} which is obviously wrong.

If the config/ia64/hpux.h file is changed to look something like
#define LIBGCC_SPEC \
  "%{shared-libgcc:%{!mlp64:-lgcc_s}%{mlp64:-lgcc_s_hpux64}} -lgcc"
then it will work much better.  I think this can be simplified further without
loss of functionality to
#define LIBGCC_SPEC \
  "%{shared-libgcc:%{mlp64:-lgcc_s_hpux64}} -lgcc"
The important part here is that -lgcc must not appear inside any braces,
because it will be substituted by init_gcc_specs.

Alternatively, we could try disabling the init_gcc_specs rewriting for the
ia64-hpux target, and then putting the entire rule we want in the
config/ia64/hpux.h file, but I don't think that big of a patch is needed.

A better alternative would be deleting the LIBGCC_SPEC rule in
config/ia64/hpux.h, but I don't know if that will work.  That might result in
the libgcc_s_hpux64 file not being used anymore.  I also don't know whether
that matters.  I would guess that the multilibbing support should find and use
it automatically, so in theory it shouldn't be needed, but I am unable to
check.

gcc-4.0 and later do not have a problem, because they don't define LIBGCC_SPEC
in the config/ia64/hpux.h file.

I can't test the suggested patches, as I don't have an ia64-hpux machine.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added
------------
         CC||wilson at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2005-11-09 01:45:26
   date||


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



[Bug debug/24490] [4.1 Regression] gcc / gdb backtrace problem

2005-11-14 Thread wilson at gcc dot gnu dot org


--- Comment #9 from wilson at gcc dot gnu dot org  2005-11-14 21:09 ---
Not a gcc bug.  This is a gdb bug, and I already have an approved patch for gdb
that will be checked in shortly.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||INVALID


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



[Bug target/24934] [4.1/4.2 Regression] profilebootstrap failure

2005-11-22 Thread wilson at gcc dot gnu dot org


--- Comment #17 from wilson at gcc dot gnu dot org  2005-11-23 00:16 ---
The hot/cold section partitioning stuff has no support for generating unwind
info.

See for instance in opts.c where this is turned off when flag_exceptions is
true, which means it is always turned off by default for C++.  This is because
C++ requires unwind info for the EH support, and we can't generate correct
unwind info when host/cold section partitioning is on.  This is true for all
targets.

The reason why there is an IA-64 issue here is because unwind info is a
required part of the ABI.  We must always generate unwind info, even for C, and
thus this option is never safe on IA-64.  But it will work for all other
targets as they don't require unwind info for C code.

I believe the correct fix here is to turn off the hot/cold partitioning support
when flag_unwind_tables is defined.  This is turned on by default in the IA-64
backend.  This can also be turned on by the user.

There are also some peripheral issues here.  We should reconsider whether
profiledbootstrap should include an option that does not support all targets
and all languages.  This could be trouble later.  Also, the IA-64 assembler
should not be core dumping here.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-11-20 00:38:48 |2005-11-23 00:16:39
   date||


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



[Bug target/24934] [4.1/4.2 Regression] profilebootstrap failure

2005-11-22 Thread wilson at gcc dot gnu dot org


--- Comment #18 from wilson at gcc dot gnu dot org  2005-11-23 00:20 ---
Created an attachment (id=10320)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10320&action=view)
Turn off partitioning optimization when flag_unwind_tables true.

Suggested untested patch.  Gives different message for user requested unwind
info versus target requested unwind info.  This part is optional, and only
affects IA-64 when flag_unwind_tables is the default.


-- 


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



[Bug target/25008] New: problems with "S" constraint in asms

2005-11-23 Thread wilson at gcc dot gnu dot org
The following testcase compiles with gcc-4.0, but generates an error with
optimization with gcc-4.1.

int *
sub (int *i, int k)
{
  int j;
  for (j = 0; j < 16; j++)
{
  asm volatile ("foo %0" : "=S" (*i));
  i += k;
}
  return i;
}

aretha$ ./xgcc -B./ -O2 -S -da tmp.c
tmp.c: In function ‘sub’:
tmp.c:7: error: ‘asm’ operand requires impossible reload

This was broken by my patch that defined EXTRA_MEMORY_CONSTRAINT.
http://gcc.gnu.org/ml/gcc-patches/2005-08/msg00714.html

I didn't have a testcase for that at the time, but now that I've run into
trouble, I went to the effort of creating of creating one.  It required adding
two letters, and deleting one.  The following testcase fails when compiled
without optimization with gcc-4.0.

int *
sub (int *i, int k)
{
  int j;
  for (j = 0; j < 16; j++)
{
  asm volatile ("foo %0" : : "S" (*i));
  i += k;
}
  return i;
}

aretha$ ./xgcc -B./ -S -da tmp2.c
tmp2.c: In function ‘sub’:
tmp2.c:7: error: impossible constraint in ‘asm’

The reason why defining EXTRA_MEMORY_CONSTRAINT fails for the first example is
because asm_operand_ok has code that says any memory operand is OK if
EXTRA_MEMORY_CONSTRAINT is true because it can be reloaded to fit.  This is
true in theory.  Unfortunately, reload doesn't know how to fix a MEM with a
POST_MODIFY address.  It fixes all MEMs that didn't quite match a MEM
constraint where an offsettable address is OK by reloading the address.
else if (goal_alternative_matched[i] == -1
 && goal_alternative_offmemok[i]
 && MEM_P (recog_data.operand[i]))
  {
operand_reloadnum[i]
  = push_reload (XEXP (recog_data.operand[i], 0), NULL_RTX,...
So if we have an operand (MEM (POST_MODIFY ...)) it is fixed by emitting an
insn (set (reg) (POST_MODIFY ...)) which fails to be recognized triggering the
error.  find_reloads_address knows how to fix this, but of course did not do
anything because this address is accepted by GO_IF_LEGITIMATE_ADDRESS.

The second example fails without EXTRA_MEMORY_CONSTRAINT defined because of
parse_input_constraint in stmt.c.  If EXTRA_CONSTRAINT_STR is not defined, then
it decides that no operand is acceptable.  When I posted the earlier patch, I
mentioned that it looked like we had a misplaced #endif, since the default here
should be to just accept all operands if we can't handle the constraint letter.

Unfortunately, taking a second look, I see that a parse_input_constraint change
doesn't work, because gimplify_asm_expr gives me the MEM operand I need only if
!allows_reg.

So it looks like I have to try to fix reload if I want this to work.


-- 
   Summary: problems with "S" constraint in asms
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
     Component: target
    AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: wilson at gcc dot gnu dot org
GCC target triplet: ia64-*-*


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



[Bug target/24961] No constraint letter for destination_operand

2005-11-23 Thread wilson at gcc dot gnu dot org


--- Comment #1 from wilson at gcc dot gnu dot org  2005-11-23 22:05 ---
Confirmed.

I believe 25008 will have to be fixed before we can add a working constraint
letter for this.  It should be possible to generate a testcase for this by
taking the example from 25008, changing the "S" to an "m", and then changing
foo to a valid store instruction syntax so as to get the desired assembler
error.  I'll worry about that later when I need a testcase.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||25008
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2005-11-23 22:05:11
   date||


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



[Bug middle-end/24804] [3.4 Regression] Produces wrong code

2005-11-28 Thread wilson at gcc dot gnu dot org


--- Comment #4 from wilson at gcc dot gnu dot org  2005-11-29 03:39 ---
The failure happens in store_motion in gcse.c.

We have two objects on the stack with disjoint lifetimes that overlap.  They
have different MEM_EXPRS, and some of the mems also have different alias sets. 
They have different MEM_EXPRs as they are from different objects.
(insn 34 3 37 0 (set (mem/s/j:SI (plus:SI (reg/f:SI 20 frame)
(const_int -32 [0xffe0])) [0 .X0+0 S4
A32\])
(const_int 0 [0x0])) 43 {*movsi_1_nointernunit} (nil)
(nil))
(insn 92 89 99 0 (set (mem/s/j:SI (plus:SI (reg/f:SI 20 frame)
(const_int -32 [0xffe0])) [0 .X4+0 S4
A32\])
(const_int 0 [0x0])) 43 {*movsi_1_nointernunit} (nil)
(nil))
(insn 116 162 117 2 (set (mem/s/j:SI (plus:SI (reg/f:SI 20 frame)
(const_int -32 [0xffe0])) [0 f2.X4+0 S4 A128])
(const_int 0 [0x0])) 43 {*movsi_1_nointernunit} (nil)
(nil))

This in itself is fairly harmless.  However, a problem occurs when we try to
keep track of mems.  We call ldst_entry which computes a hash code, which is
identical for the two mems, and then puts them into the same ls_expr structure.
 This ls_expr structure only holds one mem rtx.  Which means the aliasing info
is now wrong for the other mem rtx.  Eventually we call true_dependence with a
read for the other mem, and it decides that they can't alias because of the
differing MEM_EXPRs.

It appears that the solution here is to somehow combine the aliasing info when
putting multiple mems into a single ls_expr structure.  If we put two MEMs with
differing MEM_EXPRs into the same ls_expr structure, then we should create a
new mem with a cleared MEM_EXPR field.  Similarly, if we have two MEMs with
different alias sets, then we may need to say that they can alias anything.

There is a comment that indicates that we are deliberately ignoring the alias
sets when computing the hash codes, as this caused problems for profile
feedback directed optimization.  I haven't looked at the details here.

The testcase doesn't fail with gcc-4.0 and up, because after tree-ssa opts
there isn't anything left for the RTL gcse pass to do.  However, I believe the
bug is still there in the code, it is just very much harder to reproduce now.


-- 


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



[Bug middle-end/24804] [3.4 Regression] Produces wrong code

2005-11-28 Thread wilson at gcc dot gnu dot org


--- Comment #6 from wilson at gcc dot gnu dot org  2005-11-29 05:57 ---
PR 25130 is a gcse problem, and there are some curious similarities.  We have
two objects on the stack with the same address, and gcse is emitting new RTL
referring to the "wrong" one, which means we have mems with bad MEM_EXPR fields
after gcse is finished.  However, the underlying failure is different here.  It
seems to be a problem with the load motion logic.  I will put some details into
that PR.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|        |wilson at gcc dot gnu dot
   |        |org


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



[Bug rtl-optimization/25130] [4.1/4.2 Regression] miscompilation in GCSE

2005-11-28 Thread wilson at gcc dot gnu dot org


--- Comment #3 from wilson at gcc dot gnu dot org  2005-11-29 06:10 ---
This is indeed a gcse problem.  It is a problem with the load motion support.

There are some similarities to PR 24804 here.  We have multiple overlapping
objects on the stack, that have mems with different MEM_EXPR fields, that are
being treated as the same object because they have the same hash code.  This
results in some new RTL being emitted by gcse that has mems with incorrect
MEM_EXPR fields.  This doesn't cause the failure though, and seems to be
harmless for this testcase.  This is potentially a problem for other testcases
though.

The problem happens shortly before the printf call.  We have before gcse
(insn 60 58 61 3 (parallel [
(set (mem/s/j/c:SI (plus:SI (reg/f:SI 20 frame)
(const_int -8 [0xfff8])) [0
clusters.D.1787\._M_impl._M_finish_cur+0 S4 A32])
(plus:SI (mem/s/j/c:SI (plus:SI (reg/f:SI 20 frame)
(const_int -8 [0xfff8])) [0
clusters.D.\1787._M_impl._M_finish_cur+0 S4 A32])
(const_int 4 [0x4])))
(clobber (reg:CC 17 flags))
]) 208 {*addsi_1} (nil)
(nil))
;; End of basic block 3, registers live:
 (nil)

;; Start of basic block 4, registers live: (nil)
(code_label 61 60 62 4 4 "" [1 uses])

(note 62 61 64 4 [bb 4] NOTE_INSN_BASIC_BLOCK)

(insn 64 62 65 4 (set (reg:SI 72 [ clusters.D.1787._M_impl._M_finish_cur ])
(mem/s/j/c:SI (plus:SI (reg/f:SI 20 frame)
(const_int -8 [0xfff8])) [0
clusters.D.1787._M_impl\._M_finish_cur+0 S4 A32])) 40 {*movsi_1} (nil)
(nil))

and after gcse we have
(insn 60 58 124 3 (parallel [
(set (mem/s/j/c:SI (plus:SI (reg/f:SI 20 frame)
(const_int -8 [0xfff8])) [0
clusters.D.1787\._M_impl._M_finish_cur+0 S4 A32])
(plus:SI (mem/s/j/c:SI (plus:SI (reg/f:SI 20 frame)
(const_int -8 [0xfff8])) [0
clusters.D.\1787._M_impl._M_finish_cur+0 S4 A32])
(const_int 4 [0x4])))
(clobber (reg:CC 17 flags))
]) 208 {*addsi_1} (nil)
(nil))

(jump_insn 124 60 125 3 (set (pc)
(label_ref 61)) -1 (nil)
(nil))
;; End of basic block 3, registers live:
 (nil)

(barrier 125 124 127)

;; Start of basic block 4, registers live: (nil)
(code_label 127 125 126 4 12 "" [1 uses])

(note 126 127 121 4 [bb 4] NOTE_INSN_BASIC_BLOCK)

(insn 121 126 61 4 (set (reg:SI 79 [ clusters.D.1787._M_impl._M_finish_cur ])
(mem/s/j:SI (plus:SI (reg/f:SI 20 frame)
(const_int -8 [0xfff8])) [0
._M_impl._M_s\tart_node+0 S4 A32])) 40 {*movsi_1} (nil)
(nil))
;; End of basic block 4, registers live:
 (nil)

;; Start of basic block 5, registers live: (nil)
(code_label 61 121 62 5 4 "" [1 uses])

(note 62 61 65 5 [bb 5] NOTE_INSN_BASIC_BLOCK)

(insn 65 62 66 5 (set (mem:SI (plus:SI (reg/f:SI 7 sp)
(const_int 8 [0x8])) [0 S4 A32])
(reg:SI 79 [ clusters.D.1787._M_impl._M_finish_cur ])) 40 {*movsi_1}
(n\il)
(nil))

For some reason, gcse thought that insn 64 was redundant, and deleted it,
adding a new basic block with a load as compensation code.  This results in reg
79 having the wrong value when we go from the increment to the printf.

I haven't pinpointed an exact cause of the problem.  The gcse algorithmics are
complicated.  I think the underlying failure is that we are adding mems to the
expression table, and adding their load/store insns to the ldst_table.  When we
find a load/store we can't handle, we remove it from the ldst_table.  However,
we never remove entries from the expression table.  Since there are still mems
in the expression table, gcse still tries to optimize them.  And this results
in bad code, because some load/store insns needs fixups when their mems are
optimized, and these fixups do not happen because the load/store insns are no
longer in the ldst_table.  The fixups are supposed to be emitted in
update_ld_motion_stores.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

         CC|            |wilson at gcc dot gnu dot
   ||org


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



[Bug middle-end/21059] Bogus warning about clobbered variable

2005-12-01 Thread wilson at gcc dot gnu dot org


--- Comment #4 from wilson at gcc dot gnu dot org  2005-12-02 02:24 ---
The spurious warning is a problem because binutils is compiled by -Werror by
default now, when compiled by gcc.  This spurious warning thus causes a build
failure for binutils.  This build failure does not show up in a native
ia64-linux build fortunately, it only shows up for cross builds, or if
--enable-targets=all is used.  Still, this means it is a problem for people
trying to do binutils development on an ia64-linux host.  This may also cause
problems with other programs as use of -Werror spreads.

Also, the spurious warning is a problem because the warning is inherently
unportable.  Different targets and/or different optimization options can result
in different sets of warnings.  So what happens is that one person compiles the
code and gets no warning.  Another compiles the code for a different target,
gets a warning, and submits a patch.  Then the first person points out that the
code isn't broken, that the patch shouldn't necessary, and recommends that the
compiler should be fixed.  Hence this PR.

The failure happens for ia64 because of the lack of reg+offset addressing
modes.  We have a parameter info, copied into pseudo-reg 345, that is
dereferenced twice, once for the fprintf_func field and once for the stream
field.  These fields are at offset 0 and 4.  Normally, we would get two mems
one with address (reg 345) and one with address (plus (reg 345) (const_int 4)).
 But IA-64 does not have reg+offset, so we end up with a post-increment of reg
345.  This means reg 345 is now set twice.  Once before the setjmp, and once
afterwards.  This triggers the code in regno_clobbered_at_setjmp which has a
test "REG_N_SETS (regno) > 1" which is now true for IA-64, but not for most
other targets.

The best fix I see is to improve the CFG to include info about which block
after setjmp is the fallthrough and which is the return from longjmp path. 
Once we have the improved CFG, then we can implement a more accurate test, such
as the one tft mentioned in comment #3.  It may be easier and/or more
appropriate to do this work in the tree-ssa part of the compiler.  This is
likely more work than I can do at the moment for this PR.

A more limited solution may be possible by adjusting the setjmp warning code to
take these post-inc sets into account.  We could keep track of sets created by
auto-inc optimizations, and then subtract them in the setjmp warning code. 
This would ensure the same results for all targets, regardless of addressing
modes.  The flaw here is that if auto-inc opts do modify a register, then we
really do have a problem, and really should have emitted a warning.  So this
doesn't seem worth pursuing.

Alternatively, we could disable auto-inc optimization for pseudo regs that live
across setjmp.  Such pseudo regs won't be allocated to hard regs, so use of
auto-inc addressing modes isn't profitable here anyways.  I think this is a
much better idea.  Unfortunately, it can't be easily implemented, as we can
perform auto-inc optimizations before regs_live_at_setjmp is set.  We would
need another  update_life_info call to do this.  Not clear if this is
worthwhile.  I think it is worth investigating though.

Another alternative is to just remove the warning code.  Most warnings emitted
by this code are probably spurious.  This may not be a viable solution though,
since the warnings are actually useful on some occasions, and the lack of
warnings for problematic code could be considered a regression.  This is
probably not feasible.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

         CC|            |wilson at gcc dot gnu dot
       ||org


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



[Bug middle-end/21059] Bogus warning about clobbered variable

2005-12-01 Thread wilson at gcc dot gnu dot org


--- Comment #5 from wilson at gcc dot gnu dot org  2005-12-02 04:12 ---
Created an attachment (id=10387)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10387&action=view)
Delay auto-inc generation until after determining which regs live across
setjmp.

This is my proposed untested patch.

While writing this, I realized that we have an actual optimization bug here, in
addition to the spurious warning problem.  ISO C says that if a variable is not
set in between setjmp and longjmp, then its value is preserved by the longjmp. 
GCC implements this by forcing all such variables into stack slots.  Now
suppose we have code like this, where reg100 is a user variable.
  (set reg100 ...)
  (call setjmp)
  ... (mem reg100) ...
  (set (reg101) (plus (reg100) (const_int 8)))
  ... (mem reg101) ...
  (call longjmp)
The value of reg100 should be unchanged.  On IA-64 however, gcc converts this
code to
  (set reg100 ...)
  (call setjmp)
  ... (mem (post_inc (reg100) (const_int 8)) ...
  ... (mem reg101) ...
  (call longjmp)
and now the value of reg100 is being modified, which violates the ISO C spec. 
If program execution can return to the mems after the longjmp, then the code
will not function correctly.  The wrong values will be read from memory.  This
could be a very hard bug to diagnose if it occured in real programs, and if the
longjmp call was in an exception path that rarely occured.

There is also an addition problem here that performing auto-inc optimization on
variables that are forced to stack slots is a de-optimization, as now we need
an additional memory store that we did not need before.  Without my patch, I
get
ld8 r14 = [r15]
;;
adds r14 = 8, r14
;;
st8 [r15] = r14
adds r14 = -8, r14
;;
ld8 r34 = [r14], 8
;;
ld8 r33 = [r14]
with my patch I get
ld8 r15 = [r15]
;;
ld8 r33 = [r15]
adds r14 = 8, r15
;;
ld8 r34 = [r14]
which is much better.  Not all cases are as lucky as this though.  In some
cases the use of auto-inc addresses would have been better.  Since this only
affects functions that call setjmp, it shouldn't be a serious problem.

One more note, I noticed that we are setting regs_live_at_setjmp, but never
clearing it.  This means it could contain more registers than it should.  But
since this only affects functions that call setjmp, I'm not going to worry
about it.


-- 


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



[Bug middle-end/21059] Bogus warning about clobbered variable

2005-12-02 Thread wilson at gcc dot gnu dot org


--- Comment #6 from wilson at gcc dot gnu dot org  2005-12-02 19:16 ---
Oops.  That patch should have a "| PROP_AUTOINC" in the new update_life_info
call.  That would explain why I was seeing some unexpected de-optimizations
with the patch.


-- 


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



[Bug target/24934] [4.1/4.2 Regression] profilebootstrap failure

2005-12-05 Thread wilson at gcc dot gnu dot org


--- Comment #19 from wilson at gcc dot gnu dot org  2005-12-06 05:31 ---
Subject: Bug 24934

Author: wilson
Date: Tue Dec  6 05:31:39 2005
New Revision: 108103

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108103
Log:
PR target/24934
* opts.c (decode_options): Turn off partitioning if flag_unwind_tables
is set.

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


-- 


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



[Bug target/24934] [4.1/4.2 Regression] profilebootstrap failure

2005-12-05 Thread wilson at gcc dot gnu dot org


--- Comment #20 from wilson at gcc dot gnu dot org  2005-12-06 05:41 ---
Subject: Bug 24934

Author: wilson
Date: Tue Dec  6 05:41:33 2005
New Revision: 108104

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108104
Log:
PR target/24934
* opts.c (decode_options): Turn off partitioning if flag_unwind_tables
is set.

Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/opts.c


-- 


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



[Bug target/24934] [4.1/4.2 Regression] profilebootstrap failure

2005-12-05 Thread wilson at gcc dot gnu dot org


--- Comment #21 from wilson at gcc dot gnu dot org  2005-12-06 05:55 ---
Fixed on mainline and the gcc-4.1 branch.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/28495] [4.2 regression] ICE in final_scan_insn, at final.c:2448

2006-08-03 Thread wilson at gcc dot gnu dot org


--- Comment #10 from wilson at gcc dot gnu dot org  2006-08-04 01:49 ---
This is the same bug as PR 28490.  I verified that my prototype patch for PR
28490 fixes it.

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


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug target/28490] [4.0/4.1/4.2 regression] ICE in ia64_expand_move, at config/ia64/ia64.c:1088

2006-08-03 Thread wilson at gcc dot gnu dot org


--- Comment #13 from wilson at gcc dot gnu dot org  2006-08-04 01:49 ---
*** Bug 28495 has been marked as a duplicate of this bug. ***


-- 


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



[Bug target/28490] [4.0/4.1/4.2 regression] ICE in ia64_expand_move, at config/ia64/ia64.c:1088

2006-08-03 Thread wilson at gcc dot gnu dot org


--- Comment #14 from wilson at gcc dot gnu dot org  2006-08-04 01:55 ---
Steve Ellcey posted a patch here:
http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00016.html
I posted a better patch here:
http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00054.html
This patch has not been tested yet.

There are also some follow up questions raised in this thread that need to be
answered.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||wilson at gcc dot gnu dot
   ||org


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



[Bug target/28490] [4.0/4.1/4.2 regression] ICE in ia64_expand_move, at config/ia64/ia64.c:1088

2006-09-15 Thread wilson at gcc dot gnu dot org


--- Comment #17 from wilson at gcc dot gnu dot org  2006-09-15 23:05 ---
Subject: Bug 28490

Author: wilson
Date: Fri Sep 15 23:05:40 2006
New Revision: 116983

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116983
Log:
Short term fix for PR 28490.
* config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
Handle symbol offsets same as they are handled in ia64_expand_move
and move_operand.

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


-- 


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



[Bug middle-end/18071] [4.0/4.1/4.2 Regression] -Winline does not respect -fno-default-inline

2006-10-02 Thread wilson at gcc dot gnu dot org


--- Comment #24 from wilson at gcc dot gnu dot org  2006-10-02 19:23 ---
Created an attachment (id=12372)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12372&action=view)
improved patch for inline warning

Works for simple testcases.  Needs full bootstrap regression test.


-- 


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



[Bug c/30592] New: -fmudflap and -Wnested-externs conflict

2007-01-25 Thread wilson at gcc dot gnu dot org
Using both -fmudflap and -Wnested-externs generates spurious errors.

localhost$ touch tmp.c
localhost$ gcc -fmudflap -Wnested-externs -S tmp.c
:0: warning: nested extern declaration of ‘__mf_lookup_cache’
:0: warning: nested extern declaration of ‘__mf_lc_shift’
:0: warning: nested extern declaration of ‘__mf_lc_mask’
:0: warning: nested extern declaration of ‘__mf_check’
:0: warning: nested extern declaration of ‘__mf_register’
:0: warning: nested extern declaration of ‘__mf_unregister’
:0: warning: nested extern declaration of ‘__mf_init’
:0: warning: nested extern declaration of ‘__mf_set_options’
cc1: error: mf-runtime.h: No such file or directory

You can ignore the mf-runtime.h error.  The ones I'm concerned about here are
all of the false nested extern warnings.

I can reproduce the problem with all gcc versions from 4.0.x to mainline 4.3.

This problem exists only with the C (and maybe C++) front end because of how
the C front end handles scoping.

The problem here is that the function mudflap_init creates some variables via
pushdecl.  However, the C front end has an implicit assumption that no
variables will be created until after we start parsing, at which time
push_file_scope is called.  Since mudflap creates variables before
push_file_scope is called, they end up being placed in the wrong scope, and the
C front end gets confused and emits the warning.

A possible solution is to add a builtin_variable hook similar to the existing
builtin_function hook.  Note that the C front end builtin_function hook calls
bind directly, instead of calling pushdecl which then calls bind.  A
builtin_variable hook could do something similar which would solve the problem.

There are also other simpler but less elegant ways to solve the problem.  We
could mark these mudflap variables with the DECL_IN_SYSTEM_HEADER bit to
disable the -Wnested-externs warning for them.  Or we could maybe disable the
warning for variables in the external_scope, which I think can only happen in
this case, though I haven't tried to verify that.


-- 
   Summary: -fmudflap and -Wnested-externs conflict
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: wilson at gcc dot gnu dot org


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



[Bug target/30687] undocumented attributes on ia64

2007-02-05 Thread wilson at gcc dot gnu dot org


--- Comment #1 from wilson at gcc dot gnu dot org  2007-02-05 22:10 ---
Model and version_id are already documented.  It is only syscall_linkage that
is undocmented, and that would be my fault.

Meanwhile, you can find info about it in the gcc sources, in the file
gcc/config/ia64/ia64.c.  The overlapping register windows implemented by the
IA-64 architecture can cause kernel internal data to leak out to user processes
if one is not careful.  The syscall_linkage attribute modies the ABI slightly
to prevent this, and it should be used on user entry points to the kernel.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||wilson at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-05 22:10:56
   date||


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



[Bug c/31233] obstack.h typo

2007-03-19 Thread wilson at gcc dot gnu dot org


--- Comment #2 from wilson at gcc dot gnu dot org  2007-03-19 21:32 ---
In theory, obstack.h is imported from the FSF gnulib package, though
unfortunately that isn't documented in our codingconventions.html web page, and
it looks like people have just been modifying it in place.  The parent package
is here
http://savannah.gnu.org/projects/gnulib#options

Looking at the cvs history, it looks like this was broken in revision 1.24 and
fixed in revision 1.32, so we should be able to import a fixed version of this
file to fix this bug report.

Except that we will have to deal with local changes somehow.  They really
should be pushed to the FSF is they aren't already there.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-03-19 21:32:30
   date||


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



[Bug c/31273] Erroneous bitfield conversions to boolean values

2007-03-19 Thread wilson at gcc dot gnu dot org


--- Comment #1 from wilson at gcc dot gnu dot org  2007-03-19 23:49 ---
I'm not a C++ expert, so I'm not the right person to say for sure, but this
looks like an accidental bug to me.  There were patches added to change the
bitfield type representation, the is_bitfield_expr_with_lowered_type change,
which is for PR 26534.  I believe these patches have a bug.

It looks to me like the bug is in standard_conversion in cp/calls.c at these
lines
  if (bitfield_type)
from = strip_top_quals (bitfield_type);
This sets from, but fails to set fcode, resulting in an inconsistency. In this
case, fcode is INTEGER_TYPE and from is now an enumeral type after originally
being an integer type.  This causes a failure further down in the tcode ==
BOOLEAN_TYPE code where we fail to match the conditions due to this
inconsistency.


-- 


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



[Bug c/31273] Erroneous bitfield conversions to boolean values

2007-03-19 Thread wilson at gcc dot gnu dot org


--- Comment #2 from wilson at gcc dot gnu dot org  2007-03-19 23:52 ---
Created an attachment (id=13236)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13236&action=view)
proposed cp/call.c patch for suspected standard_conversion bug

This is the proposed patch I referred to in my analysis.  It works for the
testcase, but has not otherwise been tested.


-- 


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



[Bug debug/31230] debug information depends on gc parameters

2007-03-30 Thread wilson at gcc dot gnu dot org


--- Comment #2 from wilson at gcc dot gnu dot org  2007-03-30 22:44 ---
I can reproduce the problem using the provided testcase.

It looks like all we have to do is mark the array type TYPE_DOMAIN as used, to
prevent it from being garbage collected.  This just requires adding an
equate_type_number_to_die call, which should be harmless by itself, I think. 
This  solves the problem for the provided testcase.  I haven't done a bootstrap
or gdb testsuite run to test the patch yet.

It might be nice to try to reuse this info, via lookup_type_die, now that we
have saved it.  Unfortunately, the dwarf3 standard doesn't have any provision
for this.  


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|        |wilson at gcc dot gnu dot
   |        |org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-03-30 22:44:06
   date||


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



[Bug debug/31230] debug information depends on gc parameters

2007-03-30 Thread wilson at gcc dot gnu dot org


--- Comment #3 from wilson at gcc dot gnu dot org  2007-03-30 22:49 ---
Created an attachment (id=13304)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13304&action=view)
Add equate_type_number_to_die call to prevent garbage collection.

This patch is untested, but works for the testcase in the bug report.


-- 


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



[Bug bootstrap/31235] Bootstrap comparison failure with -gstabs

2007-03-30 Thread wilson at gcc dot gnu dot org


--- Comment #2 from wilson at gcc dot gnu dot org  2007-03-31 02:23 ---
I was able to reproduce this on an x86_64-linux machine following the
instructions.

Assuming this is the same conceptual problem as 31230, I tried the same patch,
in another file.  Just marking the array type domain type as used so it
wouldn't be garbage collected.  It was a little harder here since we didn't
have a convenient subroutine to call, so I had to move some code out of
dbxout_type into a new function, but effectively there is only a one line
actual code change here.

This survived a C-only BOOT_CFLAGS=-gstabs bootstrap, which seems to be good
evidence that it is working.

This patch is otherwise untested.  It needs a full bootstrap, gcc testsuite
run, and gdb testsuite run.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-03-31 02:23:00
   date||


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



[Bug bootstrap/31235] Bootstrap comparison failure with -gstabs

2007-03-30 Thread wilson at gcc dot gnu dot org


--- Comment #3 from wilson at gcc dot gnu dot org  2007-03-31 02:24 ---
Created an attachment (id=13305)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13305&action=view)
Mark array TYPE_DOMAIN as used to prevent garbage collection.

This has been tested with a C only BOOT_CFLAGS=-gstabs bootstrap.  It needs a
full bootstrap, gcc testsuite run, and gdb testsuite run.


-- 


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



[Bug target/33532] bogus escape

2007-09-24 Thread wilson at gcc dot gnu dot org


--- Comment #5 from wilson at gcc dot gnu dot org  2007-09-24 22:53 ---
Echoing what Andrew Pinski already said, this isn't C code, this is RTL code,
the format of which is specified by the read-rtl.c file.  Specifically, see the
read_brace_string function, which accepts backslash quoting exactly the same as
the read_quoted_string function.  Unless you are proposing a change to the
read_brace_string function, there is nothing wrong with this code.  Though I
will admit that the backslashes are unnecessary here and could optionally be
removed without harm.

If you are proposing changes to the read_brace_string function, it would have
been nice to mention that.  If you want to find all such problems, changing
this function is probably the easiest way to do that.  If you want to prevent
such problems from being reintroduced later, then you would definitely have to
change this function.  Maybe add an argument to the read_escape function so
that we can handle calls from read_quoted_string differently than calls from
read_brace_string?

I have no idea at the moment why this matters to you.  A little context might
be helpful.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||wilson at gcc dot gnu dot
   |    |org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-09-24 22:53:17
   date||


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



[Bug tree-optimization/33655] [4.3 Regression] ICE in bitfield_overlaps_p, at tree-sra.c:2901

2007-10-08 Thread wilson at gcc dot gnu dot org


--- Comment #7 from wilson at gcc dot gnu dot org  2007-10-08 22:19 ---
Created an attachment (id=14324)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14324&action=view)
add another conversion to bitsizetype

Here is an patch to fix the IA-64 failure for this testcase.  This makes the
testcase work (i.e. gcc doesn't ICE), but has not been otherwise tested as yet.


-- 


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



[Bug tree-optimization/18977] [4.0 regression] LAPACK test xeigtsts segfaults with optimization

2005-02-18 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-02-18 
20:53 ---
This is a tree-optimization problem not a target problem.

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
  Component|target  |tree-optimization
   Last reconfirmed|2005-02-12 04:00:42 |2005-02-18 20:53:32
   date||


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


[Bug tree-optimization/18977] [4.0 regression] LAPACK test xeigtsts segfaults with optimization

2005-02-18 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-02-18 
23:11 ---
As previously noted, it was fixed by a patch from Zdenek Dvorak which had no
testcase.  This testcase has been added, and this bug report can be closed.


-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to fail|4.0.0   |
 Resolution||FIXED


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


[Bug fortran/5900] [g77 & gfortran] Lapack regressions since g77 2.95.2

2005-02-18 Thread wilson at gcc dot gnu dot org


-- 
Bug 5900 depends on bug 18977, which changed state.

Bug 18977 Summary: [4.0 regression] LAPACK test xeigtsts segfaults with 
optimization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18977

   What|Old Value   |New Value

 Status|NEW |ASSIGNED
 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

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


[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2005-02-18 Thread wilson at gcc dot gnu dot org


-- 
Bug 19292 depends on bug 18977, which changed state.

Bug 18977 Summary: [4.0 regression] LAPACK test xeigtsts segfaults with 
optimization
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18977

   What|Old Value   |New Value

 Status|UNCONFIRMED |NEW
 Status|NEW |ASSIGNED
 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

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


[Bug target/19724] ICE when building a m68hc11 cross-compiler on ia64

2005-02-19 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-02-20 
00:34 ---
I built an m68hc11 cross compiler from mainline, last updated Thursday, without
binutils/newlib, on an IA-64 Debian unstable system whose system compiler is
gcc-3.3.5 (Debian 1:3.3.5-2).  The result can compile your testcase with -S, -O
-S, and -O2 -S.  I do not get any ICE.

There is some ambiguity in this bug report.  It requires building a m68hc11
cross compiler, but does not specify the sources used for this cross compiler. 
It includes a testcase, but does not give the compiler options used to compile
it.  There may also be other things missing that are relvent.

I can't help fix a problem if I can't reproduce it.  I suggest that you try
being more precise about what exactly you did to produce the error.

-- 


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


[Bug middle-end/20364] [3.4 Regression] Segfault with -Xpreprocessor argument

2005-03-08 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-08 
20:53 ---
Hint taken.  I'm testing the patch with gcc-3.4, and then will check it in if
there are no problems.


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-03-07 18:58:59 |2005-03-08 20:53:54
   date||


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


[Bug middle-end/20364] [3.4 Regression] Segfault with -Xpreprocessor argument

2005-03-08 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-09 
01:10 ---
Fix by the patch I just checked in.


-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug middle-end/20217] Switching off the optimization triggers undefined reference at link time when building Linux kernel.

2005-03-09 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-10 
02:48 ---
The linux kernel requires optimization to be correctly compiled.  This is a
deliberate design decision by the linux kernel developers.

Part of the reason is the kernel's use of extern inline as already mentioned. 
If used as intended, extern inline works without -O.  The linux kernel however
slightly abuses the feature in the interest of reducing kernel code size, thus
resulting in code that can't be compiled correctly without -O.

I believe there is also another issue.  I think there is a process creation
routine that takes advantage of the fact that gcc won't create a stack frame
with optimization in a leaf routine, thus allowing them to have C code to set
the initial stack pointer for the new process.  Normally, setting the stack
pointer would cause all kinds of havoc, but it works in this one special case,
and it only works if you compile with optimization.  I don't recall exactly
where I saw this trick, but I think it was in the linux kernel.

Anyways, a linux kernel developer could answer these kinds of questions better
than a gcc developer.  There may be other reasons why they require optimization.

-- 
   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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


[Bug preprocessor/20281] [3.4 Regression] cpp segfaults on directory input

2005-03-09 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-10 
04:47 ---
The segfault is the same problem as PR 20364, which I fixed on the gcc-3.4
branch two days ago.  The error message problem is now PR 20285.  So closing as
a duplicate.

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

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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


[Bug middle-end/20364] [3.4 Regression] Segfault with -Xpreprocessor argument

2005-03-09 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-10 
04:47 ---
*** Bug 20281 has been marked as a duplicate of this bug. ***

-- 
   What|Removed |Added

 CC||marcolz at stack dot nl


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


[Bug driver/13464] -i8 and -r8 not passed correctly to compiler proper. and -d8 does not work

2005-03-10 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-11 
05:31 ---
See
http://gcc.gnu.org/ml/gcc/2005-03/msg00513.html
for relevant comments.

-- 


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


[Bug middle-end/11375] rtl_dump_file problems in rest_of_compilation

2005-03-12 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-13 
01:32 ---
This open_dump_file change looks like a sufficient solution to me.  That
prevents us from accidentally trying to open two dump files at the same time. 
The equivalent problem with close_dump_file is not serious, and unlikely to
happen without triggering the open_dump_file abort, so I don't think it needs a
solution.

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
  Known to work||4.0.0
 Resolution||FIXED


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


[Bug c++/19769] [4.0/4.1 Regression] GCC produces wrong dwarf2 output that breaks gdb

2005-03-12 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-13 
03:11 ---
Dan's example doesn't work because 'int' is a predefined type.  Use a unique
structure type put the function call back in the inline function, and I get a
nice little example (22 lines) that can reproduce the problem.  If I compile it 
with
./xgcc -B./ -O -g tmp.cc
and then run gdb on the a.out file, I get a gdb internal error.

Looking at the debug info, I now have 4 DIEs for the variable i.  There are the
same 3 as Dan's example, plus a fourth one, with global scope, that has the
abstract origin pointing back at the declaration inside the inline function.  It
is this fourth one that confuses gdb.

This is using mainline, last updated Thursday March 10, on an x86-64 linux 
machine.

-- 


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


[Bug c++/19769] [4.0/4.1 Regression] GCC produces wrong dwarf2 output that breaks gdb

2005-03-15 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-16 
03:46 ---
I confirmed that I don't see the problem if I compile with -m32 on a x86-64 
system.

This happens with 32-bit x86 code because update_equiv_regs deletes and
reinserts the instruction that loads the value of the variable i.  This causes
us to lose the block info for this insn, as block info is based on insn uid. 
This does not happen for 64-bit code because CLASS_LIKELY_SPILLED_P is true for
the register destination.  For 32-bit code, the register has a preferred class
of GENERAL_REGS, and for 64-bit code, the register has a preferred class of
DIREG_CLASS.  So the 32-bit x86 case doesn't fail because we lost some debug 
info.

I can make the 32-bit case fail by adding the -fpic option, which prevents
update_equiv_regs from optimizing this instructions.

So
  ./xgcc -B./ -O -g -fpic -m32 tmp.cc
reproduces the problem for me on an x86_64 machine.  It should do likewise on a
32-bit machine, without the -m32 option.

-- 


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


[Bug c++/19769] [4.0/4.1 Regression] GCC produces wrong dwarf2 output that breaks gdb

2005-03-15 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-16 
03:54 ---
Part of the problem here is the way that declare_in_namespace works. 
gen_variable_die, calls declare_in_namespace, which checks to see if the
variable has a namespace, and if so emits it into that namespace. 
declare_in_namespace then returns, and gen_variable_die finishes normally, which
means we end up with DIEs for one variable.  The local one in the current
context, and the one emitted into the namespace.  The variable in question here
has a namespace of "::".

When we process the abstract instance of f, we emit a local die for i into f,
and a namespace one into :: the global context.  This one has line 3.  Then we
see the global redeclaration, and emit another die into the global context. 
This one has line 6.  Then when we handle the function main, we see the inlined
version of f, and we get a decl of i with an abstract origin pointing at the
function f, and emit two more dies, one local one in the inlined version of f
that points at the abstract instance of f, and one global one that also points
at the abstract instance of f.  This last one is very wrong.  Note that there
are 5 dies not 4 as I claimed earlier, I missed the one in 'main' when I was
counting them.

It seems very silly to try to emit a namespace version of a decl with an
abstract origin.  One possible solution is for declare_in_namespace to ignore
any decl with an abstract origin.  If I try this, I get only 4 dies, and gdb is
happy.  We still have two global dies, with different line numbers, but we can
live with that for now.

I haven't yet tried to trace the history of this, to determine what change
caused the problem to appear.  There might be something else wrong here.

-- 


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


[Bug debug/20268] With optimization, generating incomplete debug information

2005-03-17 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-18 
05:11 ---
Created an attachment (id=8414)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8414&action=view)
use DW_AT_ranges in DW_AT_inlined_subroutine

Using -dA will add comments to the debug info in the .s file.  This is easy for
gcc hackers to create and read.

I tried looking at one of the problems with your example.  I picked the
tmp.cc:8 line, which is followed by a line from stl_vector.h:221 which claims
to be in function main.  Looking at the .s file, I see that there are two
LBBX/LBEX block labels around the instruction, but no debug info that refers to
these block labels.

Investigating, I find that the situation is as Dan described earlier.  We have
DW_AT_ranges support, but only for lexical blocks, not for inlined subroutine
blocks.  This is trivial to fix.  The patch I am attaching to the pr does this.


Recompiling, the .s file looks reasonable now, the stray insn now is inside a
block that is in the DW_AT_ranges of a DW_AT_inlined_subroutine which should
give the result we want.

Trying addr2line again, I see no difference, but this turns out to be a bfd
issue.  The scan_unit_for_functions code in bfd/dwarf2.c handles DW_AT_lo_pc
and DW_AT_high_pc, but not DW_AT_ranges, which means it is not able to find
this block when it checks address ranges.  Presumably this is something you can
fix.  Without DW_AT_ranges support here, my patch will likely make things worse
than they already are.  With DW_AT_ranges support here, my patch should make
things better.

There is also the issue of whether gdb will be happy with this.

-- 


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


[Bug c++/19769] [4.0/4.1 Regression] GCC produces wrong dwarf2 output that breaks gdb

2005-03-17 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-18 
06:05 ---
I got four additional gdb testsuite failures with the patch.  I will have to
figure out what went wrong, and then rebuild and retest.

-- 


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


[Bug c++/19769] [4.0 Regression] GCC produces wrong dwarf2 output that breaks gdb

2005-03-22 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-23 
03:15 ---
May as well take it, seeing as how I wrote a patch for it.

The gdb failures do not seem related to my change, and when I reran the gdb
testsuite, they disappeared.  I don't know what happened, but as far as I am
concerned the patch has passed the test and I'm checking it in.

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-02-02 23:50:07 |2005-03-23 03:15:13
   date||


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


[Bug c++/19769] [4.0 Regression] GCC produces wrong dwarf2 output that breaks gdb

2005-03-22 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-23 
03:20 ---
My net connection died when trying to check in the patch, and it was a Friday
evening...

I'm a little surprised that the mainline check in actually worked.  I thought it
hadn't.  I've also added it to the 4.0 branch now.

Fixed on mainline and the gcc-4.0 branch.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug target/20286] [3.3 only] gcc panic with __thread attribute

2005-03-23 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-24 
00:09 ---
That patch that fixed this in gcc-3.4 is too large to backport, particularly
when considering that it depends on other stuff (such as
default_encode_section_info) which is not already present in gcc-3.3.  However,
it can be fixed with a simpler patch.

The underlying problem is that a variable changes state from
TLS_MODEL_INTIAL_EXEC (extern) to TLS_MODEL_LOCAL_EXEC (static).  This is an
allowable transition.  This unfortunately triggers an abort in the ia64.c
backend in ia64_encode_section_info.  The comment next to the abort makes it
clear that this is checking for transitions  between thread data and small data.
 So the fix is to tighten the conditions under which we call the abort to match
the conditions documented in the comments.

The same INITIAL_EXEC to LOCAL_EXEC transition happens in gcc-3.4, there just
isn't a corresponding abort in default_encode_section_info.

Technically, this isn't a regression, as gcc-3.2 did not have TLS support, and
gcc-3.3 is only open for regression fixes, so there is the question of whether
this patch is OK to install on the branch.  A strict interpretation of the rules
says this is not OK, at least not without approval of the branch maintainer, 
Gaby.

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-03-02 16:48:16 |2005-03-24 00:09:55
   date||


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


[Bug middle-end/19225] [3.4/4.0/4.1 regression] g++.dg/eh/omit-frame-pointer2.C fails with -fpic/-fPIC on i686-pc-linux-gnu

2005-03-24 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-24 
20:37 ---
See
http://gcc.gnu.org/ml/gcc/2005-03/msg01081.html

This fails because exception handling and -fdefer-pop don't work well together.
 The easy solution is to disable the defer pop optimization when we have
function calls that can throw.


-- 


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


[Bug target/20286] [3.3 only] gcc panic with __thread attribute

2005-03-28 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-28 
22:40 ---
The patch passed testing, and has been submitted to gcc-patches here:
http://gcc.gnu.org/ml/gcc-patches/2005-03/msg02542.html


-- 


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


[Bug target/20286] [3.3 only] gcc panic with __thread attribute

2005-03-28 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-29 
00:33 ---
Fixed.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work|3.4.0 4.0.0 |3.4.0 4.0.0 3.3.6
 Resolution||FIXED


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


[Bug c++/20505] [4.0/4.1 Regression] internal error when compiling with -ggdb2 and no error with -ggdb1

2005-03-29 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-30 
02:16 ---
See
http://gcc.gnu.org/ml/gcc/2005-03/msg01274.html
for comments.

-- 


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


[Bug target/20670] IA-64 exception mechanism erase $f29

2005-03-29 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-30 
03:40 ---
Egads.  Register corruption when unwinding.  This looks like a serious problem.
 Not a regression, but I'm tempted to try to fix it in every current release.

A work around is to use the libunwind package instead.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-03-30 03:40:37
   date||


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


[Bug debug/20268] With optimization, generating incomplete debug information

2005-03-30 Thread wilson at gcc dot gnu dot org


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-03-30 23:08:11
   date||


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


[Bug debug/20268] With optimization, generating incomplete debug information

2005-03-30 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-03-30 
23:18 ---
Fixed.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug target/20632] GCC should avoid generating F- and B-unit NOPs

2005-03-31 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-04-01 
01:35 ---
IA-64.

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-04-01 01:35:08
   date||


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


[Bug target/20632] GCC should avoid generating F- and B-unit NOPs

2005-03-31 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-04-01 
01:35 ---
Fixed by Vlad's patch.

-- 
   What|Removed |Added

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


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


[Bug c++/20505] [4.0/4.1 Regression] internal error when compiling with -ggdb2 and no error with -ggdb1

2005-03-31 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-04-01 
04:04 ---
Fixed on mainline.  Still needs to be fixed on the gcc-4.0 branch, which I
assume Nathan is doing.

I had to back off a bit from my earlier plans.  Aggregate types and constructor
initializers pose complications that don't appear to be worth fixing, so I only
handle integral types, scalar real types, and STRING_CST.  I commonized the code
in rtl_for_decl_location and tree_add_const_value_attribute so that they both
work the same.

The testcase by the way isn't portable.  It requires that int and pointer be the
same size.  I had to do s/int/long to make it work on my ia64 and x86_64
systems.  But still that assumes long and pointers are the same size which is
not true for all ABIs supported by all targets.  This is why I didn't already
add the testcase to the testsuite on mainline.

-- 


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


[Bug other/19180] How to Add New GCC option

2005-04-04 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-04-04 
21:38 ---
See also a thread on the gcc list
http://gcc.gnu.org/ml/gcc/2005-03/msg00234.html


-- 


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


[Bug target/20717] [4.1 Regression] Many C++ testsuite failures on ia64-hpux

2005-04-04 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-04-05 
04:04 ---
The patch seems to have been incompletely checked in.  The ChangeLog entry
claims to be removing code from final.c, but the code is still there.

I laboriously tracked down the problem to the fact that cgraphunit handles
ADDR_EXPR but not FDESC_ADDR.  Hence, only targets that use function descriptors
are affected.  Like IA-64.


-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-04-05 04:04:14
   date||


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


[Bug target/20670] IA-64 exception mechanism erase $f29

2005-04-04 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-04-05 
04:22 ---
Yes, that is the same patch I independently wrote and started testing over the
weekend.  It has already passed testing for the gcc-3.4 and gcc-4.0 branches.  I
have yet to do mainline and gcc-3.3 testing.  Also, I have yet to seek approval
for older branches, which I will be doing shortly.



-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-03-30 03:40:37 |2005-04-05 04:22:47
   date||


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


[Bug c++/20805] Another debug info emitting bug

2005-04-07 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-04-08 
03:01 ---
The testcase works if the variable declaration is moved after the function. 
This is the case I fixed a few weeks ago, which was breaking java debugging.

The declare_in_namespace design causes us to get two DIEs for one declaration. 
The first DIE is in the variable namespace, and the second one is in the current
context.  When we emit the second one, lookup_decl_die in gen_variable_die will
find the first one.  It is important not to confuse this with a declaration
followed by a definition, which requires DW_AT_specification.

The difference between putting the definition before or after the function is
whether DECL_STATIC is set.  If it is declared before, DECL_STATIC is set.  If
it is declared after, DECL_STATIC is not set.  So in first case we get
DW_AT_specification which is wrong and confuses gdb, and in the second case we
don't get DW_AT_specification, and gdb is happy.

A possible way to resolve this is to add an addition check !declaration before
emitting DW_AT_specification.  The patch I am attaching to the PR does this, and
works for Jakub's last reduced testcase.  I haven't tried this with a bootstrap
or make check or gdb make check yet.

-- 


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


[Bug target/20670] IA-64 exception mechanism erase $f29

2005-04-12 Thread wilson at gcc dot gnu dot org

--- Additional Comments From wilson at gcc dot gnu dot org  2005-04-13 
00:58 ---
Fixed on all active release branches and mainline.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||3.3.6 3.4.4 4.0.0
 Resolution||FIXED


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


[Bug libgcj/28009] libjava cannot be cross-built; X_CFLAGS includes /usr/include

2008-02-01 Thread wilson at gcc dot gnu dot org


--- Comment #6 from wilson at gcc dot gnu dot org  2008-02-01 23:39 ---
Configuring --without-x is a possible workaround.  I haven't tried it.  I also
haven't tried to reproduce the problem.

The problem comes from the AC_PATH_XTRA call in libjava/configure.ac.  This is
a documented autoconf feature to get info about X header files and libraries. 
So now we have to look in the autoconf sources.  AC_PATH_XTRA calls AC_PATH_X. 
If X is enabled, and x_includes/x_libraries have not already been specified,
then _AC_PATH_X is called.  _AC_PATH_X then calls _AC_PATH_X_XMKMF. 
_AC_PATH_X_XMKMF then does something clever.  It creates an Imakefile that just
echos the value of some Imakefile variables, it runs xmkmf to convert the
Imakefile into an X makefile, then it runs make to echo out the expanded values
of the X Imakefile variable values, and uses them to set x_includes and
x_libraries.

The problem here of course is that xmkmf is a host tool, which is being run
directly (i.e. no macro to override), and will always return paths valid on the
host.  Which is wrong for a cross compiler.  Though I suppose we could try
overriding the _AC_PATH_X_XMKMF function itself.

I only took a quick look at this, so I don't know why this is breaking for some
and working for others.  Perhaps it matters whether you have X headers and
libraries in your sysroot.  Perhaps it matters whether you use a sysroot.  It
clearly does matter whether you have xmkmf installed on your host machine.  If
you don't have xmkmf installed (which is part of the imake package), then you
presumably won't have this problem.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|                    |wilson at gcc dot gnu dot
   |    |org


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



[Bug testsuite/35512] [4.4 Regression]: gcc.target/ia64/visibility-1.c

2008-03-17 Thread wilson at gcc dot gnu dot org


--- Comment #2 from wilson at gcc dot gnu dot org  2008-03-18 04:02 ---
Subject: Bug 35512

Author: wilson
Date: Tue Mar 18 04:01:21 2008
New Revision: 133301

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133301
Log:
PR testsuite/35512
* gcc.target/ia64/visibility-1.c (foo): Change return type to void.
Write variables instead of reading them.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/ia64/visibility-1.c


-- 


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



[Bug testsuite/35512] [4.4 Regression]: gcc.target/ia64/visibility-1.c

2008-03-17 Thread wilson at gcc dot gnu dot org


--- Comment #3 from wilson at gcc dot gnu dot org  2008-03-18 04:06 ---
Mine.  IA-64.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED


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



[Bug testsuite/35512] [4.4 Regression]: gcc.target/ia64/visibility-1.c

2008-03-17 Thread wilson at gcc dot gnu dot org


--- Comment #4 from wilson at gcc dot gnu dot org  2008-03-18 04:06 ---
Fixed.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/35695] [4.3/4.4 Regression] -funroll-loops breaks inline float divide

2008-03-26 Thread wilson at gcc dot gnu dot org


--- Comment #3 from wilson at gcc dot gnu dot org  2008-03-27 05:54 ---
Created an attachment (id=15385)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15385&action=view)
Itanium reciprocal approximation bug fix

Untested patch produced with wrong (default) svn diff options.  Should probably
make the same change to the other recip approx patterns in ia64.md.


-- 


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



[Bug target/35695] [4.3/4.4 Regression] -funroll-loops breaks inline float divide

2008-03-31 Thread wilson at gcc dot gnu dot org


--- Comment #6 from wilson at gcc dot gnu dot org  2008-03-31 19:52 ---
Subject: Bug 35695

Author: wilson
Date: Mon Mar 31 19:51:50 2008
New Revision: 133772

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133772
Log:
PR target/35695
* config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
* config/ia64/ia64.c (rtx_needs_barrier): Handle
UNSPEC_FR_RECIP_APPROX_RES.
* config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/ia64/div.md
trunk/gcc/config/ia64/ia64.c
trunk/gcc/config/ia64/ia64.md


-- 


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



[Bug target/35695] [4.3/4.4 Regression] -funroll-loops breaks inline float divide

2008-03-31 Thread wilson at gcc dot gnu dot org


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-31 20:22:40
   date||


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



[Bug middle-end/35781] [4.4 Regression]: Revision 133759 breaks ia64

2008-03-31 Thread wilson at gcc dot gnu dot org


--- Comment #4 from wilson at gcc dot gnu dot org  2008-04-01 02:54 ---
Created an attachment (id=15400)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15400&action=view)
patch for cfun->emit rtl.emit changes

I tested this patch with a C only bootstrap on an ia64-linux system.  The 
bootstrap completed successfully.


-- 


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



[Bug target/35364] ICE on ia64 with vector declaration inside #pragma omp parallel

2008-03-31 Thread wilson at gcc dot gnu dot org


--- Comment #5 from wilson at gcc dot gnu dot org  2008-04-01 06:31 ---
Created an attachment (id=15401)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15401&action=view)
tree-eh.c optimize_double_finally patch

This patch works for the testcase, but is otherwise untested.  My knowledge in
this area is limited, so this needs to be reviewed by someone with more
tree-ssa and tree-eh knowledge than me.


-- 


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



[Bug rtl-optimization/35785] gcc.c-torture/compile/pr11832.c doesn't work for Linux/ia64

2008-04-02 Thread wilson at gcc dot gnu dot org


--- Comment #2 from wilson at gcc dot gnu dot org  2008-04-03 06:27 ---
Created an attachment (id=15418)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15418&action=view)
ia64.h patch to define REGNO_OK_FOR_INDIRECT_JUMP_P

Obvious definition of the REGNO_OK_FOR_INDIRECT_JUMP_P macro.


-- 


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



[Bug rtl-optimization/35785] gcc.c-torture/compile/pr11832.c doesn't work for Linux/ia64

2008-04-02 Thread wilson at gcc dot gnu dot org


--- Comment #3 from wilson at gcc dot gnu dot org  2008-04-03 06:29 ---
Created an attachment (id=15419)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15419&action=view)
rtl-factoring.c patch to allocate second reg for IA-64

This allocates a second register if REGNO_OK_FOR_INDIRECT_JUMP_P is defined,
and then adjusts the code appropriately to use the second reg.  This obviously
needs some cleanup, I didn't give it much thought.  It seems to be working for
the simple testcase though.


-- 


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



[Bug target/35695] [4.3 Regression] -funroll-loops breaks inline float divide

2008-04-07 Thread wilson at gcc dot gnu dot org


--- Comment #7 from wilson at gcc dot gnu dot org  2008-04-07 23:48 ---
Anyone care whether this gets fixed in 4.3?  If so, are you willing to test it?
 I'll approve it for 4.3 with proper testing, which is not easy for me to do.


-- 


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



[Bug target/31684] [4.3 Regression] ICE in get_attr_first_insn, at config/ia64/itanium2.md:1839 at -O2

2007-04-30 Thread wilson at gcc dot gnu dot org


--- Comment #1 from wilson at gcc dot gnu dot org  2007-05-01 01:53 ---
It dies in recog because of an invalid extended asm insn rtl.  In an asm with 2
or more outputs, we end up with 2 or more copies of the input vector.  These
vectors must be shared.  They are not in this case.

The problem occurs in haifa-sched, in the speculative instruction support.  It
uses copy_rtx to make a copy of an insn when speculatively scheduling it. 
However, copy_rtx does not preserve the special sharing semantics of asm
operands, so the result is a corrupted insn.  There exists a special routine
copy_insn to solve this problem.  So the solution here is to just replace the
copy_rtx call with a copy_insn call.  This works on mainline for this testcase
but is not otherwise tested.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||wilson at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-05-01 01:53:27
   date||


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



[Bug target/31684] [4.3 Regression] ICE in get_attr_first_insn, at config/ia64/itanium2.md:1839 at -O2

2007-04-30 Thread wilson at gcc dot gnu dot org


--- Comment #2 from wilson at gcc dot gnu dot org  2007-05-01 01:56 ---
Created an attachment (id=13466)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13466&action=view)
Replace copy_rtx call with copy_insn call.

This works on mainline for the testcase, but has not otherwise been tested.


-- 


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



[Bug target/32552] Runtime failure in SPEC CPU2000 benchmark fma3d and applu

2007-07-02 Thread wilson at gcc dot gnu dot org


--- Comment #7 from wilson at gcc dot gnu dot org  2007-07-02 20:34 ---
Created an attachment (id=13831)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13831&action=view)
enable INCOMING_RETURN_ADDR_RTX for ia64

This is a patch based on Kenny's suggestion.  I think this patch solves the
problem nicely, but it hasn't been tested with an ia64 build yet.


-- 


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



[Bug target/24193] [4.1 Regression] ICE in extract_insn while compiling libgfortran

2005-10-06 Thread wilson at gcc dot gnu dot org


--- Comment #6 from wilson at gcc dot gnu dot org  2005-10-06 17:41 ---
Loads can have post_increment addresses with an immediate or register
increment.  Stores can have post_increment address with only an immediate
increment.  We have a special predicate, destination_operand, that checks for
this.  Unfortunately, we haven't been using it consistently.  And people who
have noticed this problem have fixed only the one pattern that they noticed was
broken, instead of fixing all of them.

Scanning the md file, I see that movbi and movti_internal at least are broken. 
There may be more.  I think gr_spill_internal is also broken.  I'm off to a
meeting and will have to finish this later.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|        |wilson at gcc dot gnu dot
   |        |org


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



[Bug target/24193] [4.1 Regression] ICE in extract_insn while compiling libgfortran

2005-10-07 Thread wilson at gcc dot gnu dot org


--- Comment #10 from wilson at gcc dot gnu dot org  2005-10-07 19:57 ---
Mine.  IA-64.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-10-04 18:17:34 |2005-10-07 19:57:46
   date||


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



[Bug target/24193] [4.1 Regression] ICE in extract_insn while compiling libgfortran

2005-10-07 Thread wilson at gcc dot gnu dot org


--- Comment #11 from wilson at gcc dot gnu dot org  2005-10-07 19:58 ---
Fixed on mainline.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/23644] IA-64 hardware models and configuration options documentation error for 3.4.x and 4.0.x

2005-10-07 Thread wilson at gcc dot gnu dot org


--- Comment #5 from wilson at gcc dot gnu dot org  2005-10-08 00:25 ---
Mine. IA-64.  Confirmed.  A typo in the patch adding docs for this option.


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2005-10-08 00:25:17
   date||


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



  1   2   3   >