[Bug middle-end/36902] Array bound warning with dead code after optimization

2008-08-25 Thread mueller at gcc dot gnu dot org


--- Comment #22 from mueller at gcc dot gnu dot org  2008-08-25 07:59 
---
there is currently no good way to detect if a block is dead during the VRP
pass, as the VRP information is used for *determining* wether or not a block is
dead. 

Is there a general warning-queuing implementation that I could make use of or
is there some other warning that does that already? Iirc the is used/ might be
used uninitialized type of warnings do not use something like that. 


-- 


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



[Bug target/36745] [4.4 Regression] ICE in gen_reg_rtx, at emit-rtl.c:868

2008-07-07 Thread mueller at gcc dot gnu dot org


--- Comment #2 from mueller at gcc dot gnu dot org  2008-07-07 09:00 ---
Created an attachment (id=15868)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15868action=view)
slightly shorter (different testcase, same bug)


-- 


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



[Bug preprocessor/36453] PR36320 breaks boost

2008-07-07 Thread mueller at gcc dot gnu dot org


--- Comment #4 from mueller at gcc dot gnu dot org  2008-07-07 09:25 ---
well, lets keep it at that for now


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID


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



[Bug preprocessor/36453] PR36320 breaks boost

2008-06-10 Thread mueller at gcc dot gnu dot org


--- Comment #2 from mueller at gcc dot gnu dot org  2008-06-10 22:14 ---
so the code should be changed to

#elif defined(BOOST_PP_ITERATION_DEPTH)  BOOST_PP_ITERATION_DEPTH() == 1

?

it is confusing that #elif behaves more like #if and not like #else\n#if


-- 


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



[Bug preprocessor/36453] New: PR36320 breaks boost

2008-06-06 Thread mueller at gcc dot gnu dot org
testcase:

=== Cut ===
#if !defined(BOOST_PP_IS_ITERATING)

#elif BOOST_PP_ITERATION_DEPTH() == 1
#endif
=== Cut ===

error: missing binary operator before token (


from reading the PR36320, this behaviour doesn't seem to be intended. It was
intended to only add a check for non-null argument.


-- 
   Summary: PR36320 breaks boost
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org


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



[Bug c++/31775] static object mangling conflicts with extern object

2008-02-29 Thread mueller at gcc dot gnu dot org


--- Comment #7 from mueller at gcc dot gnu dot org  2008-02-29 13:57 ---
how about 

extern C void abort();
extern C { static int i; }
int *p = i;
int main()
{ 
  int i;
  { 
extern int i;
i = 1;
*p = 2;
if (i == 2)
  abort ();
  }
  return 0;
}

in this case, the i name should not be mangled, right?


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||mueller at gcc dot gnu dot
   ||org


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



[Bug target/35135] unable to find a register to spill in class �GENERAL_REGS� with global registers

2008-02-12 Thread mueller at gcc dot gnu dot org


--- Comment #4 from mueller at gcc dot gnu dot org  2008-02-12 17:18 ---
new testcase:

-O2 -fno-gcse -fomit-frame-pointer

=== Cut ===
__extension__ typedef unsigned long long int uint64_t;
typedef unsigned int target_ulong;
register struct CPUX86State *env asm (ebp);
register target_ulong T0 asm (ebx);
register target_ulong T1 asm (esi);
register target_ulong T2 asm (edi);
typedef union
{
  uint64_t _q[2];
}
XMMReg;
typedef struct CPUX86State
{
  XMMReg xmm_regs[8];
}
CPUX86State;
save_raw_fp_state (CPUX86State * env, char * ptr)
{
  int i, fpus, fptag, nb_xmm_regs;
  char *addr;
  nb_xmm_regs = 8  0;
  addr = ptr + 0xa0;
  for (i = 0; i  nb_xmm_regs; i++)
  {
  env-xmm_regs[i]._q[0] = *(uint64_t *) (addr);
  addr += 16;
  }
}

=== Cut ===


-- 


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



[Bug target/35135] unable to find a register to spill in class �GENERAL_REGS� with global registers

2008-02-12 Thread mueller at gcc dot gnu dot org


--- Comment #3 from mueller at gcc dot gnu dot org  2008-02-12 16:31 ---
the original code uses -fomit-frame-pointer -fno-gcse -O2. I can verify that
-O3 fixes the issue. 


-- 


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



[Bug target/35135] New: [4.3 regression] unable to find a register to spill in class �GENERAL_REGS�

2008-02-07 Thread mueller at gcc dot gnu dot org
gcc -v -O2 -c test.c

=== Cut ===
extension__ typedef unsigned long long int uint64_t;
typedef unsigned target_ulong;
register target_ulong T0 asm (ebx);
register target_ulong T1 asm (esi);
register target_ulong T2 asm (edi);
typedef struct CPUX86State
{
  uint64_t xmm_regs[8];
}
CPUX86State;

save_raw_fp_state (CPUX86State * env)
{
  int i;
  char *addr;
  for (i = 0; i  8; i++)
env-xmm_regs[i] = *(uint64_t *) (addr);
}
=== Cut ===

GNU C (SUSE Linux) version 4.3.0 20080131 (experimental) [trunk revision
131976] (i586-suse-linux)
compiled by GNU C version 4.3.0 20080131 (experimental) [trunk revision
131976], GMP version 4.2.2, MPFR version 2.3.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 86307befc2a0b2e7a5d9beb62be4b74e
test.c: In function ‘save_raw_fp_state’:
test.c:18: error: unable to find a register to spill in class ‘GENERAL_REGS’
test.c:18: error: this is the insn:
(insn:HI 14 13 15 3 test.c:17 (set (mem/s:DI (plus:SI (mult:SI (reg/v:SI 64 [ i
])
(const_int 8 [0x8]))
(reg/v/f:SI 66 [ env ])) [2 variable.xmm_regs S8 A8])
(reg:DI 67)) 63 {*movdi_2} (expr_list:REG_DEAD (reg:DI 67)
(nil)))
test.c:18: confused by earlier errors, bailing out


-- 
   Summary: [4.3 regression] unable to find a register to spill in
class ‘GENERAL_REGS’
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org
  GCC host triplet: i686-suse-linux


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



[Bug middle-end/34386] -Wstrict-aliasing=3 ineffective (tree-ssa-alias-warnings.c)

2007-12-08 Thread mueller at gcc dot gnu dot org


--- Comment #5 from mueller at gcc dot gnu dot org  2007-12-08 12:55 ---
this seems to be readding the warning with relatively low false positive rate
(e.g. didn't find a false one yet). 

--- cp/typeck.c (revision 130658)
+++ cp/typeck.c (working copy)
@@ -5269,11 +5268,16 @@ build_reinterpret_cast_1 (tree type, tre

   expr = build_unary_op (ADDR_EXPR, expr, 0);
   if (expr != error_mark_node)
-   expr = build_reinterpret_cast_1
- (build_pointer_type (TREE_TYPE (type)), expr, c_cast_p,
-  valid_p);
-  if (expr != error_mark_node)
-   expr = build_indirect_ref (expr, 0);
+{
+ if (strict_aliasing_warning (intype, type, expr))
+   TREE_NO_WARNING (expr) = 1;
+
+ expr = build_reinterpret_cast_1
+   (build_pointer_type (TREE_TYPE (type)), expr, c_cast_p,
+valid_p);
+  if (expr != error_mark_node)
+   expr = build_indirect_ref (expr, 0);
+}
   return expr;
 }


-- 


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



[Bug middle-end/34386] -Wstrict-aliasing=3 ineffective (tree-ssa-alias-warnings.c)

2007-12-07 Thread mueller at gcc dot gnu dot org


--- Comment #4 from mueller at gcc dot gnu dot org  2007-12-08 02:23 ---
testing patch for pointer_set conversion


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |mueller at gcc dot gnu dot
   |dot org |org


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



[Bug middle-end/34386] -Wstrict-aliasing=3 ineffective (tree-ssa-alias-warnings.c)

2007-12-07 Thread mueller at gcc dot gnu dot org


--- Comment #3 from mueller at gcc dot gnu dot org  2007-12-08 02:07 ---
this patch seems to be an alternative way of making -Wstrict-aliasing=3 work
again for the testcase: 

--- c-common.c  (revision 130658)
+++ c-common.c  (working copy)
@@ -1035,7 +1035,8 @@ strict_aliasing_warning (tree otype, tre
  POINTER_TYPE_P (otype)  !VOID_TYPE_P (TREE_TYPE (type
 return false;

-  if ((warn_strict_aliasing  1)  TREE_CODE (expr) == ADDR_EXPR
+  if ((warn_strict_aliasing  1)
+   (TREE_CODE (expr) == CONVERT_EXPR || TREE_CODE (expr) == ADDR_EXPR)
(DECL_P (TREE_OPERAND (expr, 0))
   || handled_component_p (TREE_OPERAND (expr, 0
 {


-- 


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



[Bug tree-optimization/34385] new miscompilation after PR34148 fix

2007-12-07 Thread mueller at gcc dot gnu dot org


--- Comment #1 from mueller at gcc dot gnu dot org  2007-12-07 22:46 ---
Created an attachment (id=14710)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14710action=view)
testcase

compile with g++ -ansi -O2 


-- 


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



[Bug middle-end/34386] -Wstrict-aliasing=3 ineffective (tree-ssa-alias-warnings.c)

2007-12-07 Thread mueller at gcc dot gnu dot org


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Last reconfirmed|2007-12-08 02:23:39 |2007-12-08 02:23:50
   date||


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



[Bug tree-optimization/34385] New: new miscompilation after PR34148 fix

2007-12-07 Thread mueller at gcc dot gnu dot org
the patch in PR34148 uncovered a new bug, avoidable with -fno-strict-aliasing


-- 
   Summary: new miscompilation after PR34148 fix
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org


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



[Bug middle-end/34386] -Wstrict-aliasing=3 ineffective (tree-ssa-alias-warnings.c)

2007-12-07 Thread mueller at gcc dot gnu dot org


-- 

mueller 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-12-08 02:23:39
   date||


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



[Bug tree-optimization/34385] new miscompilation after PR34148 fix

2007-12-07 Thread mueller at gcc dot gnu dot org


--- Comment #2 from mueller at gcc dot gnu dot org  2007-12-07 22:47 ---
diff between broken -fdump-tree-optimized and working one is really small:

--- out.cc.optimized.broken 2007-12-07 23:35:37.460943000 +0100
+++ out.cc.optimized.works  2007-12-07 23:35:53.641747000 +0100
@@ -40,6 +40,7 @@
   D.1626 = (struct QHashNode *) D.1625;
   D.1626-key.d = 0B;
   D.1626-key = *str;
+  D.1628.i = (struct Node *) D.1626;
   return ((struct QHashNode *) ((const struct const_iterator *)
D.1628)-i)-key;

 }


-- 


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



[Bug middle-end/34285] [4.3 Regression] buffer overflow incorrectly detected

2007-11-29 Thread mueller at gcc dot gnu dot org


--- Comment #3 from mueller at gcc dot gnu dot org  2007-11-29 10:47 ---
fortify_source=2 is supposed to reject it (only sizeof the struct member, not
the whole struct is allowed). 

use fortify_source=1 or fix your broken code. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug middle-end/34285] [4.3 Regression] buffer overflow incorrectly detected

2007-11-29 Thread mueller at gcc dot gnu dot org


--- Comment #7 from mueller at gcc dot gnu dot org  2007-11-29 11:47 ---
Andrew, read the comments or stop reopening. the behaviour is documented that
way even. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug middle-end/34241] New: ICE in forward_propagate_into_cond

2007-11-26 Thread mueller at gcc dot gnu dot org
inline void *operator  new (unsigned int, void *__p) throw ()
{
  return __p;
}
struct A
{
  A(int, double);
  inline explicit A (int pattern, bool cs)
  {
new (this) A (pattern, double(cs));
  }
};
A test ()
{
  const A a (42, true);
}

(gdb) bt
#0  get_prop_source_stmt (name=0xb7c5d478, single_use_only=0 '\0',
single_use_p=0xbfdc018b )
at ../../gcc/tree-ssa-forwprop.c:221
#1  0x08328d58 in forward_propagate_into_cond (cond_expr=0xb7bca7d0,
stmt=0xb7bca7d0)
at ../../gcc/tree-ssa-forwprop.c:378
#2  0x0832b5be in tree_ssa_forward_propagate_single_use_vars ()
at ../../gcc/tree-ssa-forwprop.c:1021
#3  0x0824a963 in execute_one_pass (pass=0x8727e80) at ../../gcc/passes.c:1118
#4  0x0824aaff in execute_pass_list (pass=0x8727e80) at ../../gcc/passes.c:1171
#5  0x0824ab12 in execute_pass_list (pass=0x8727840) at ../../gcc/passes.c:1172
#6  0x0824aeec in execute_ipa_pass_list (pass=0x8727800) at
../../gcc/passes.c:856
#7  0x083e6d25 in cgraph_optimize () at ../../gcc/cgraphunit.c:1339
#8  0x0809198d in cp_write_global_declarations () at ../../gcc/cp/decl2.c:3442
#9  0x082bf163 in toplev_main (argc=4, argv=0xbfdc0424) at
../../gcc/toplev.c:1055
#10 0x08121b7f in main (argc=Cannot access memory at address 0x7
) at ../../gcc/main.c:35


the stmt where the def is NULL is:

 ssa_name 0xb7c5d478 nothrow var var_decl 0xb7bc9bb0 iftmp.0
version 3 in-free-list


-- 
   Summary: ICE in forward_propagate_into_cond
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: critical
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org


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



[Bug middle-end/34197] array overflow warning without line number

2007-11-23 Thread mueller at gcc dot gnu dot org


--- Comment #6 from mueller at gcc dot gnu dot org  2007-11-23 23:02 ---
Subject: Bug 34197

Author: mueller
Date: Fri Nov 23 23:02:21 2007
New Revision: 130385

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=130385
Log:
2007-11-23  Dirk Mueller  [EMAIL PROTECTED]
   Richard Guenther [EMAIL PROTECTED]

   PR middle-end/34197
   * tree-vrp.c (check_array_ref): Move check for valid location..
   (check_array_bounds) here. Use EXPR_HAS_LOCATION().


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-vrp.c


-- 


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



[Bug middle-end/34197] array overflow warning without line number

2007-11-23 Thread mueller at gcc dot gnu dot org


--- Comment #7 from mueller at gcc dot gnu dot org  2007-11-23 23:11 ---
Fixed for 4.3


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug middle-end/34197] array overflow warning without line number

2007-11-22 Thread mueller at gcc dot gnu dot org


--- Comment #4 from mueller at gcc dot gnu dot org  2007-11-22 22:34 ---
thanks for the analysis. I would go for a slightly more verbose version of the
same patch: 

--- gcc/tree-vrp.c  (revision 130297)
+++ gcc/tree-vrp.c  (working copy)
@@ -4339,7 +4339,7 @@ check_array_ref (tree ref, location_t* l

   low_sub = up_sub = TREE_OPERAND (ref, 1);

-  if (!up_bound || !locus || TREE_NO_WARNING (ref)
+  if (!up_bound || TREE_NO_WARNING (ref)
   || TREE_CODE (up_bound) != INTEGER_CST
   /* Can not check flexible arrays.  */
   || (TYPE_SIZE (TREE_TYPE (ref)) == NULL_TREE
@@ -4441,6 +4441,11 @@ check_array_bounds (tree *tp, int *walk_
   tree stmt = (tree)data;
   location_t *location = EXPR_LOCUS (stmt);

+  if (!EXPR_HAS_LOCATION (stmt)) {
+  *walk_subtree = FALSE;
+  return NULL_TREE;
+  }
+
   *walk_subtree = TRUE;

   if (TREE_CODE (t) == ARRAY_REF)


-- 


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



[Bug middle-end/32546] [4.3 Regression] 'warning: array subscript is above/below array bounds' on delete[]

2007-11-22 Thread mueller at gcc dot gnu dot org


--- Comment #6 from mueller at gcc dot gnu dot org  2007-11-22 22:40 ---


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


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug middle-end/34197] array overflow warning without line number

2007-11-22 Thread mueller at gcc dot gnu dot org


--- Comment #5 from mueller at gcc dot gnu dot org  2007-11-22 22:40 ---
*** Bug 32546 has been marked as a duplicate of this bug. ***


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||gcc at abeckmann dot de


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



[Bug bootstrap/34110] gcc fails to build on i686

2007-11-16 Thread mueller at gcc dot gnu dot org


--- Comment #2 from mueller at gcc dot gnu dot org  2007-11-16 11:37 ---
workaround:

--- reg-stack.c (revision 130198)
+++ reg-stack.c (working copy)
@@ -925,7 +925,7 @@ swap_to_top (rtx insn, stack regstack, r
   /* Place operand 1 at the top of stack.  */
   regno = get_hard_regnum (temp_stack, src1);
   gcc_assert (regno = 0);
-  if (regno != FIRST_STACK_REG)
+  if (regno = 0  regno != FIRST_STACK_REG)
 {
   k = temp_stack.top - (regno - FIRST_STACK_REG);
   j = temp_stack.top;
@@ -938,7 +938,7 @@ swap_to_top (rtx insn, stack regstack, r
   /* Place operand 2 next on the stack.  */
   regno = get_hard_regnum (temp_stack, src2);
   gcc_assert (regno = 0);
-  if (regno != FIRST_STACK_REG + 1)
+  if (regno = 0  regno != FIRST_STACK_REG + 1)
 {
   k = temp_stack.top - (regno - FIRST_STACK_REG);
   j = temp_stack.top - 1;


-- 


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



[Bug c++/34111] New: new oveload resolution error

2007-11-15 Thread mueller at gcc dot gnu dot org
this used to work a few days ago still:


-- 
   Summary: new oveload resolution error
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org


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



[Bug c++/34111] new oveload resolution error

2007-11-15 Thread mueller at gcc dot gnu dot org


--- Comment #1 from mueller at gcc dot gnu dot org  2007-11-15 16:55 ---
Created an attachment (id=14559)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14559action=view)
the preprocessed source

.ii file


-- 


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



[Bug bootstrap/34110] gcc fails to build on i686

2007-11-15 Thread mueller at gcc dot gnu dot org


--- Comment #1 from mueller at gcc dot gnu dot org  2007-11-15 18:21 ---
temp_stack.reg[i_90] is the access, compare_for_stack_reg is the function,
and i_90 has the VRP determined range [-1, 2147483646]. 

it shouldn't warn for that. I'll work on a patch. 


-- 

mueller 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-11-15 18:21:40
   date||


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



[Bug c++/34111] new overload resolution error

2007-11-15 Thread mueller at gcc dot gnu dot org


--- Comment #2 from mueller at gcc dot gnu dot org  2007-11-15 23:17 ---
reduced testcase:

class QChar
{
};
struct QString
{
  QString(QChar);
};
struct QPainter
{
  void drawText (int x, int y, const QString );
};

  class KHEChar:public QChar
  {
  public:KHEChar (QChar C);
  };

void
drawByte (QPainter * P, char, KHEChar B)
{
  P-drawText (0, 0, B);
}


-- 

mueller 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-11-15 23:17:52
   date||


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



[Bug c++/33399] New: [4.2 regression] -fvisibility=hidden not working after including STL headers

2007-09-11 Thread mueller at gcc dot gnu dot org
Hi, 

g++ 4.2.1 doesn't seem to apply hidden visibility to classes after including
e.g. ostream. 

the following testcase was reduced: 

=== Cut ===
namespace std  __attribute__ ((__visibility__ (default)))
{
  template  typename A  class C;
  template  typename A  int foo (C  A  *);

  template  typename A  class C
  {
  public:
friend int foo(C A  *);
  };
  extern template class C  char ;
}

struct TestClass
{
  void hidden();
};
void TestClass::hidden() {}
=== cut ===
g++ -O1 -fvisibility=hidden -fvisibility-inlines-hidden -fPIC testcase.cc -c -o
nostl.o
g++ -shared -o libnostl.so nostl.o
nm -CD libnostl.so | grep TestClass 

gives

048c T TestClass::hidden()


the symbol is properly hidden if I put the namespace std into default
visibility or otherwise try to reduce the code further.


-- 
   Summary: [4.2 regression] -fvisibility=hidden not working after
including STL headers
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org
  GCC host triplet: i686-suse-linux


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



[Bug c++/32470] fvisibility=hidden without effect in some cases

2007-09-11 Thread mueller at gcc dot gnu dot org


--- Comment #4 from mueller at gcc dot gnu dot org  2007-09-11 22:37 ---
I can confirm it as well


-- 

mueller 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-09-11 22:37:55
   date||


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



[Bug c++/33399] [4.2 regression] -fvisibility=hidden not working after including STL headers

2007-09-11 Thread mueller at gcc dot gnu dot org


--- Comment #2 from mueller at gcc dot gnu dot org  2007-09-11 22:39 ---


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


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/32470] [4.2 regression] fvisibility=hidden without effect in some cases

2007-09-11 Thread mueller at gcc dot gnu dot org


--- Comment #5 from mueller at gcc dot gnu dot org  2007-09-11 22:39 ---
*** Bug 33399 has been marked as a duplicate of this bug. ***


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||mueller at gcc dot gnu dot
   ||org


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



[Bug c++/32756] [4.3 Regression] wrong ambiguous overload error?

2007-08-20 Thread mueller at gcc dot gnu dot org


--- Comment #4 from mueller at gcc dot gnu dot org  2007-08-20 11:13 ---
ping.. any results?


-- 


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



[Bug c++/32756] [4.3 Regression] wrong ambiguous overload error?

2007-08-20 Thread mueller at gcc dot gnu dot org


--- Comment #6 from mueller at gcc dot gnu dot org  2007-08-20 12:43 ---
I`d be happy to help with testing :)


-- 


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



[Bug c++/32756] [4.3 Regression] wrong ambiguous overload error?

2007-07-14 Thread mueller at gcc dot gnu dot org


--- Comment #1 from mueller at gcc dot gnu dot org  2007-07-14 07:33 ---
this was introduced by the following patch:

2007-05-30  Russell Yanofsky [EMAIL PROTECTED]
Douglas Gregor [EMAIL PROTECTED]
Pedro Lamarao [EMAIL PROTECTED]
Howard Hinnant [EMAIL PROTECTED]

PR c++/7412
PR c++/29939


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||doug dot gregor at gmail dot
   ||com


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



[Bug c++/32756] [4.3 Regression] wrong ambiguous overload error?

2007-07-14 Thread mueller at gcc dot gnu dot org


--- Comment #2 from mueller at gcc dot gnu dot org  2007-07-14 10:00 ---
Created an attachment (id=13914)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13914action=view)
patch

the following patch moves the change of ranking described in the working draft
under a dialect check, which hot-fixes this bug


-- 


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



[Bug middle-end/32546] 'warning: array subscript is above/below array bounds' on delete[]

2007-07-13 Thread mueller at gcc dot gnu dot org


--- Comment #2 from mueller at gcc dot gnu dot org  2007-07-13 11:10 ---
unfortunately setting TREE_NO_WARNING on the synthesized delete[] parameters
does not help because it is lost during middle end folding


-- 


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



[Bug middle-end/32546] 'warning: array subscript is above/below array bounds' on delete[]

2007-07-13 Thread mueller at gcc dot gnu dot org


--- Comment #1 from mueller at gcc dot gnu dot org  2007-07-13 11:05 ---
this is yet another case of the middle end folding memory arithmetics back into
an array ref that is out of bounds: 

 operator delete [] ((void *) A + 0xfffc);

(from orig dump)

later it is:

  D.2607_30 = (*D.2517_7)[-4];
  operator delete [] (D.2607_30);

which will then trigger this warning (because -4 is clearly out of bounds). 


-- 

mueller 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-07-13 11:05:25
   date||


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



[Bug c++/32756] New: wrong ambiguous overload error?

2007-07-13 Thread mueller at gcc dot gnu dot org
Hi, 

this might be invalid, needs verification. starting with gcc 4.3, the following
testcase is rejected: 

=== Cut ===

class QString;

struct QByteArray
{
  QByteArray ();
  bool operator!= (const QString  s2) const;
};

bool operator!= (const QByteArray  a1, const QByteArray  a2);

struct QString
{
  QString ();
  QString (const QByteArray  a);
};

QByteArray abbreviation ();

void
fromString ()
{
  QByteArray zoneAbbrev;
  if (abbreviation () != zoneAbbrev)
{
}
}
=== Cut ===
ambiguity.cc:23: error: ISO C++ says that these are ambiguous, even though the
worst conversion for the first is better than the worst conversion for the
second:
ambiguity.cc:9: note: candidate 1: bool operator!=(const QByteArray, const
QByteArray)
ambiguity.cc:6: note: candidate 2: bool QByteArray::operator!=(const QString)
const


-- 
   Summary: wrong ambiguous overload error?
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org


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



[Bug c++/31806] [4.1 Regression] miscompilation with -fschedule-insns2 -fno-threadsafe-statics

2007-06-20 Thread mueller at gcc dot gnu dot org


--- Comment #11 from mueller at gcc dot gnu dot org  2007-06-20 16:27 
---
Subject: Bug 31806

Author: mueller
Date: Wed Jun 20 16:27:23 2007
New Revision: 125887

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125887
Log:
2007-06-20  Dirk Mueller  [EMAIL PROTECTED]

   PR c++/31809
   PR c++/31806
   Backport from mainline:
   2007-05-31  Jakub Jelinek  [EMAIL PROTECTED]

   * decl.c (cp_finish_decl): Also clear was_readonly if a static var
   needs runtime initialization.

   2007-05-30  Jakub Jelinek  [EMAIL PROTECTED]

   * decl.c (cp_finish_decl): Clear TREE_READONLY flag on TREE_STATIC
   variables that need runtime initialization.

   * g++.dg/opt/static5.C: New testcase
   * g++.dg/opt/static6.C: Likewise


Added:
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/opt/static5.C
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/opt/static6.C
Modified:
branches/gcc-4_1-branch/gcc/cp/ChangeLog
branches/gcc-4_1-branch/gcc/cp/decl.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/31809] [4.1 Regression] sometimes TREE_READONLY is still set for non read only variables causing wrong code

2007-06-20 Thread mueller at gcc dot gnu dot org


--- Comment #11 from mueller at gcc dot gnu dot org  2007-06-20 16:27 
---
Subject: Bug 31809

Author: mueller
Date: Wed Jun 20 16:27:23 2007
New Revision: 125887

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125887
Log:
2007-06-20  Dirk Mueller  [EMAIL PROTECTED]

   PR c++/31809
   PR c++/31806
   Backport from mainline:
   2007-05-31  Jakub Jelinek  [EMAIL PROTECTED]

   * decl.c (cp_finish_decl): Also clear was_readonly if a static var
   needs runtime initialization.

   2007-05-30  Jakub Jelinek  [EMAIL PROTECTED]

   * decl.c (cp_finish_decl): Clear TREE_READONLY flag on TREE_STATIC
   variables that need runtime initialization.

   * g++.dg/opt/static5.C: New testcase
   * g++.dg/opt/static6.C: Likewise


Added:
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/opt/static5.C
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/opt/static6.C
Modified:
branches/gcc-4_1-branch/gcc/cp/ChangeLog
branches/gcc-4_1-branch/gcc/cp/decl.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/31809] [4.1 Regression] sometimes TREE_READONLY is still set for non read only variables causing wrong code

2007-06-20 Thread mueller at gcc dot gnu dot org


--- Comment #12 from mueller at gcc dot gnu dot org  2007-06-20 16:28 
---
Fixed.


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/31806] [4.1 Regression] miscompilation with -fschedule-insns2 -fno-threadsafe-statics

2007-06-20 Thread mueller at gcc dot gnu dot org


--- Comment #12 from mueller at gcc dot gnu dot org  2007-06-20 16:28 
---
Fixed


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug c++/31806] [4.1 Regression] miscompilation with -fschedule-insns2 -fno-threadsafe-statics

2007-06-14 Thread mueller at gcc dot gnu dot org


--- Comment #10 from mueller at gcc dot gnu dot org  2007-06-14 23:12 
---
Subject: Bug 31806

Author: mueller
Date: Thu Jun 14 23:12:25 2007
New Revision: 125726

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125726
Log:
2007-06-14  Dirk Mueller  [EMAIL PROTECTED]

   PR c++/31806
   * g++.dg/opt/static6.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/opt/static6.C
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/31806] [4.1/4.2 Regression] miscompilation with -fschedule-insns2 -fno-threadsafe-statics

2007-06-08 Thread mueller at gcc dot gnu dot org


--- Comment #9 from mueller at gcc dot gnu dot org  2007-06-08 21:48 ---
Subject: Bug 31806

Author: mueller
Date: Fri Jun  8 21:48:34 2007
New Revision: 125580

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125580
Log:
2007-06-08  Dirk Mueller  [EMAIL PROTECTED]

   PR c++/31809
   PR c++/31806
   Backport from mainline:
   2007-05-31  Jakub Jelinek  [EMAIL PROTECTED]

   * decl.c (cp_finish_decl): Also clear was_readonly if a static var
   needs runtime initialization.

   2007-05-30  Jakub Jelinek  [EMAIL PROTECTED]

   * decl.c (cp_finish_decl): Clear TREE_READONLY flag on TREE_STATIC
   variables that need runtime initialization.

   PR c++/31809
   Backport from mainline:
   2007-05-30  Jakub Jelinek  [EMAIL PROTECTED]

   * g++.dg/opt/static5.C: New test.

Added:
branches/gcc-4_2-branch/gcc/testsuite/g++.dg/opt/static5.C
  - copied unchanged from r125201, trunk/gcc/testsuite/g++.dg/opt/static5.C
Modified:
branches/gcc-4_2-branch/gcc/cp/ChangeLog
branches/gcc-4_2-branch/gcc/cp/decl.c
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/31809] [4.1/4.2 Regression] sometimes TREE_READONLY is still set for non read only variables causing wrong code

2007-06-08 Thread mueller at gcc dot gnu dot org


--- Comment #10 from mueller at gcc dot gnu dot org  2007-06-08 21:48 
---
Subject: Bug 31809

Author: mueller
Date: Fri Jun  8 21:48:34 2007
New Revision: 125580

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125580
Log:
2007-06-08  Dirk Mueller  [EMAIL PROTECTED]

   PR c++/31809
   PR c++/31806
   Backport from mainline:
   2007-05-31  Jakub Jelinek  [EMAIL PROTECTED]

   * decl.c (cp_finish_decl): Also clear was_readonly if a static var
   needs runtime initialization.

   2007-05-30  Jakub Jelinek  [EMAIL PROTECTED]

   * decl.c (cp_finish_decl): Clear TREE_READONLY flag on TREE_STATIC
   variables that need runtime initialization.

   PR c++/31809
   Backport from mainline:
   2007-05-30  Jakub Jelinek  [EMAIL PROTECTED]

   * g++.dg/opt/static5.C: New test.

Added:
branches/gcc-4_2-branch/gcc/testsuite/g++.dg/opt/static5.C
  - copied unchanged from r125201, trunk/gcc/testsuite/g++.dg/opt/static5.C
Modified:
branches/gcc-4_2-branch/gcc/cp/ChangeLog
branches/gcc-4_2-branch/gcc/cp/decl.c
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/31806] [4.0/4.1/4.2 Regression] miscompilation with -fschedule-insns2 -fno-threadsafe-statics

2007-06-06 Thread mueller at gcc dot gnu dot org


--- Comment #8 from mueller at gcc dot gnu dot org  2007-06-06 15:02 ---
testcase works with gcc 3.4 and gcc 3.3


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail|4.1.3   |4.1.3 4.0.4
  Known to work|4.3.0 4.2.0 |
Summary|miscompilation with -   |[4.0/4.1/4.2 Regression]
   |fschedule-insns2 -fno-  |miscompilation with -
   |threadsafe-statics  |fschedule-insns2 -fno-
   ||threadsafe-statics


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



[Bug c++/31809] [4.1/4.2/4.3 Regression] sometimes TREE_READONLY is still set for non read only variables causing wrong code

2007-05-31 Thread mueller at gcc dot gnu dot org


--- Comment #7 from mueller at gcc dot gnu dot org  2007-05-31 09:06 ---
PR 31806 is not fixed by this, and it contains a reference type. 


-- 


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



[Bug c++/31809] [4.1/4.2/4.3 Regression] sometimes TREE_READONLY is still set for non read only variables causing wrong code

2007-05-30 Thread mueller at gcc dot gnu dot org


--- Comment #5 from mueller at gcc dot gnu dot org  2007-05-30 22:46 ---
is it okay that was_readonly will eventually turn on TREE_READONLY()
afterwards?


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||mueller at gcc dot gnu dot
   ||org


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



[Bug c/32135] New: bogus array-ref fold triggering array overflow warning

2007-05-28 Thread mueller at gcc dot gnu dot org
Hi, 

-O2 Warray-bounds:

=== Cut ===
struct PhaseEntryType
{
  char raw_field[50 + 1];
};
int
ParsePhase (char in_cols[15][250], struct PhaseEntryType *P)
{
  __builtin_strncpy (P-raw_field, in_cols[2], 50);
}
~
=== Cut ===

triggered by 

  __builtin_strncpy ((char *) P-raw_field, (const char *) (char *) in_cols +
500B, 50);

being gimplified to:
  D.1970 = (*in_cols)[500];
  D.1971 = P-raw_field[0];
  __builtin_strncpy (D.1971, D.1970, 50)


-- 
   Summary: bogus array-ref fold triggering array overflow warning
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org
  GCC host triplet: i686-suse-linux


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



[Bug rtl-optimization/31806] New: miscompilation with -fschedule-insns2 -fthreadsafe-statics and static variables

2007-05-03 Thread mueller at gcc dot gnu dot org
Hi, 

the testcase below aborts with gcc 4.1.3 compiled with:
g++ -O2 -fno-threadsafe-statics

=== Cut ===
extern C void abort(void);

struct A
{
void *d;
};

static const A staticA()
{
static A s_static;
return s_static;
}

void assert_failed()
{
abort();
}

A testMethod()
{
static const A s = staticA( );
if (s == 0)
assert_failed();
return s;
}

int main()
{
testMethod();
return 0;
}

// g++ -O2 -fno-inline -fno-threadsafe-statics -o kglobaltest kglobaltest.cpp
=== Cut ===

The testcase was extracted from a KDE miscompilation. -fno-schedule-insns2
seems to work around it. 

the bug is visible in assembler:

·   call·   _Z7staticAv·#
·   movl·   _ZZ10testMethodvE1s, %ebx·  # s, s.1
·   movb·   $1, _ZGVZ10testMethodvE1s·  #,
·   testl·  %ebx, %ebx· # s.1
·   movl·   %eax, _ZZ10testMethodvE1s·  # tmp61, s

the movl %eax,_ZZ10testMethodvE1s is moved below the movl·  
_ZZ10testMethodvE1s, %ebx, which causes the bug.


-- 
   Summary: miscompilation with -fschedule-insns2 -fthreadsafe-
statics and static variables
   Product: gcc
   Version: 4.1.3
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org
  GCC host triplet: i686-suse-linux


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



[Bug tree-optimization/31227] [4.3 Regression] -Warray-bounds doesn't play together with loop optimizations

2007-04-18 Thread mueller at gcc dot gnu dot org


--- Comment #6 from mueller at gcc dot gnu dot org  2007-04-18 21:09 ---
Subject: Bug 31227

Author: mueller
Date: Wed Apr 18 21:09:21 2007
New Revision: 123958

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=123958
Log:
2007-04-18  Dirk Mueller  [EMAIL PROTECTED]

   PR diagnostic/31227
   * tree-vrp.c (search_for_addr_array): New.
   (check_array_bounds): Suppress warning about
   address taken of array refs if its not de-referenced.

   * gcc.dg/Warray-bounds-3.c: New.

Added:
trunk/gcc/testsuite/gcc.dg/Warray-bounds-3.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vrp.c


-- 


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



[Bug tree-optimization/31227] [4.3 Regression] -Warray-bounds doesn't play together with loop optimizations

2007-04-18 Thread mueller at gcc dot gnu dot org


--- Comment #7 from mueller at gcc dot gnu dot org  2007-04-18 21:10 ---
Fixed in 4.3.


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/31227] [4.3 Regression] -Warray-bounds doesn't play together with loop optimizations

2007-03-21 Thread mueller at gcc dot gnu dot org


--- Comment #3 from mueller at gcc dot gnu dot org  2007-03-21 09:05 ---
both are caused by our well known offender -fivopts. 

the problem why the existing workarounds don't work is because the adress is
first converted to unsigned int before +/- modification is done. the traversal
stops at the type conversion. I'm currently working on fixing that. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug tree-optimization/31227] [4.3 Regression] -Warray-bounds doesn't play together with loop optimizations

2007-03-21 Thread mueller at gcc dot gnu dot org


--- Comment #4 from mueller at gcc dot gnu dot org  2007-03-21 14:16 ---
Created an attachment (id=13242)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13242action=view)
patch

this is the patch I'm currently testing. would be nice if you could confirm
that this is also fixing your obj-c++ bootstrap problem (which I cannot
reproduce). 

Thanks.


-- 


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



[Bug tree-optimization/31227] [4.3 Regression] -Warray-bounds doesn't play together with loop optimizations

2007-03-21 Thread mueller at gcc dot gnu dot org


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|WAITING


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



[Bug middle-end/30864] [4.3 Regression] ice for legal code with -O2

2007-03-20 Thread mueller at gcc dot gnu dot org


--- Comment #7 from mueller at gcc dot gnu dot org  2007-03-20 12:48 ---
testcase works after PR31146 fix

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


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug tree-optimization/31146] forwprop does not look through casts

2007-03-20 Thread mueller at gcc dot gnu dot org


--- Comment #8 from mueller at gcc dot gnu dot org  2007-03-20 12:48 ---
*** Bug 30864 has been marked as a duplicate of this bug. ***


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dcb314 at hotmail dot com


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



[Bug middle-end/30864] [4.3 Regression] ice for legal code with -O2

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


--- Comment #6 from mueller at gcc dot gnu dot org  2007-03-19 13:21 ---
it seems to be caused by -r121780


-- 


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



[Bug c++/30860] Should warn about boolean constant false used in pointer context

2007-03-14 Thread mueller at gcc dot gnu dot org


--- Comment #10 from mueller at gcc dot gnu dot org  2007-03-14 23:17 
---
Subject: Bug 30860

Author: mueller
Date: Wed Mar 14 23:17:03 2007
New Revision: 122934

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122934
Log:
2007-03-15  Dirk Mueller  [EMAIL PROTECTED]

PR c++/30860
* call.c (convert_conversion_warnings): New..
(convert_like_real): .. factored out from here.
(convert_conversion_warnings): Add warning about
false being converted to NULL in argument passing.

* g++.dg/warn/Wconversion2.C: New.


Added:
trunk/gcc/testsuite/g++.dg/warn/Wconversion2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/30860] Should warn about boolean constant false used in pointer context

2007-03-14 Thread mueller at gcc dot gnu dot org


--- Comment #11 from mueller at gcc dot gnu dot org  2007-03-14 23:20 
---
Fixed for 4.3.


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c/17946] wanted: warning for a MASK when a MASK was probably intended

2007-03-10 Thread mueller at gcc dot gnu dot org


--- Comment #17 from mueller at gcc dot gnu dot org  2007-03-10 17:26 
---
Subject: Bug 17946

Author: mueller
Date: Sat Mar 10 17:26:33 2007
New Revision: 122798

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122798
Log:
2007-03-10  Dirk Mueller  [EMAIL PROTECTED]

   PR c++/17946
   * gcc.dg/Wlogical-op-1.c: Remove duplicated part.
   * g++.dg/warn/Wlogical-op-1.C: Remove duplicated part.

Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c/17946] wanted: warning for a MASK when a MASK was probably intended

2007-03-09 Thread mueller at gcc dot gnu dot org


--- Comment #13 from mueller at gcc dot gnu dot org  2007-03-09 16:16 
---
Subject: Bug 17946

Author: mueller
Date: Fri Mar  9 16:16:35 2007
New Revision: 122751

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122751
Log:
2007-03-09  Dirk Mueller  [EMAIL PROTECTED]

   PR c++/17946
   * doc/invoke.texi (-Wlogical-op): Document.
   * common.opt (-Wlogical-op): New.
   * c-common.h (warn_logical_operator): Declare.
   * c-common.c (warn_logical_operator): Define.
   * c-typeck.c (parser_build_binary_op): Call
   warn_logical_operator.

   * cp/call.c (build_new_op): Call warn_logical_operator.

   * testsuite/gcc.dg/Wlogical-op-1.c: New.
   * testsuite/g++.dg/warn/Wlogical-op-1.C: New.

Added:
trunk/gcc/testsuite/g++.dg/warn/Wlogical-op-1.C
trunk/gcc/testsuite/gcc.dg/Wlogical-op-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-common.c
trunk/gcc/c-common.h
trunk/gcc/c-typeck.c
trunk/gcc/common.opt
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/doc/invoke.texi
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c/17946] wanted: warning for a MASK when a MASK was probably intended

2007-03-09 Thread mueller at gcc dot gnu dot org


--- Comment #14 from mueller at gcc dot gnu dot org  2007-03-09 16:17 
---
Fixed for 4.3.


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug middle-end/31058] overflow warnings should not be enabled with -Wall

2007-03-08 Thread mueller at gcc dot gnu dot org


--- Comment #23 from mueller at gcc dot gnu dot org  2007-03-08 21:32 
---
Great, this patch makes a -fprefetch-loop-arrays bootstrap succeed. I think
LSHIFT_EXPR should be handled similar. 


-- 


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



[Bug middle-end/31058] bogus array overflow warnings in unrolled loops

2007-03-07 Thread mueller at gcc dot gnu dot org


--- Comment #7 from mueller at gcc dot gnu dot org  2007-03-07 10:59 ---
I don't think this is the same testcase. you will get any warning in this case,
because the compiler cannot determine that it is supposed to be dead code. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|bogus array overflow|bogus array overflow
   |warnings in unreachable code|warnings in unrolled loops


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



[Bug middle-end/31058] bogus array overflow warnings in unrolled loops

2007-03-07 Thread mueller at gcc dot gnu dot org


--- Comment #9 from mueller at gcc dot gnu dot org  2007-03-07 11:34 ---
well, the unrolled body is generated code, it could set TREE_NO_WARNING (for
example). or it could avoid unrolling if its not a flex array. 


-- 


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



[Bug middle-end/31058] overflow warnings should not be enabled with -Wall

2007-03-07 Thread mueller at gcc dot gnu dot org


-- 

mueller 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-07 21:55:36
   date||


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



[Bug middle-end/31058] overflow warnings should not be enabled with -Wall

2007-03-07 Thread mueller at gcc dot gnu dot org


--- Comment #18 from mueller at gcc dot gnu dot org  2007-03-07 22:03 
---
IIRC there are some cases that are only caught in the 2nd vrp run. It is still
a possibility if this bug cannot be fixed otherwise. 

However, I don't see the issue with this testcase. 

a) its not a flex array
b) the unrolled loop produces out of bounds accesses
c) hence, the unrolled version cannot ever be used
d) it shouldn't be produced in the first place. 

we can turn this bug about a false positive warning into a code bloat
regression by removing the warning (or disabling it from -Wall). That doesn't
fix it though. 


-- 


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



[Bug middle-end/31058] New: array overflow warning due to incorrect loop unrolling

2007-03-06 Thread mueller at gcc dot gnu dot org
building this testcase with -O2 -march=athlon -Wall -fprefetch-loop-arrays
gives:

warning: array subscript is above array bounds
[...]

which, according to VRP, seems to be valid. 

testcase is:

=== Cut ===
struct real_value
{
  unsigned int cl:2;
  unsigned int decimal:1;
  unsigned long sig[5];
};
unsigned int uexp;

static void
clear_significand_below (struct real_value *r, unsigned int n)
{
  int i, w = n / 32;
  for (i = 0; i  w; ++i)
r-sig[i] = 0;
}
void
do_fix_trunc (struct real_value *r)
{
  if (uexp  160)
clear_significand_below (r, 160 - uexp);
}
=== Cut ===


-- 
   Summary: array overflow warning due to incorrect loop unrolling
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org


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



[Bug middle-end/31058] array overflow warning due to incorrect loop unrolling

2007-03-06 Thread mueller at gcc dot gnu dot org


--- Comment #1 from mueller at gcc dot gnu dot org  2007-03-06 15:22 ---
after prefetch-loop-arrays run, vrp2 looks like this: 

L81:;
  D.1885_87 = r_4(D)-sig[i_13];
  D.1886_88 = D.1885_87 + 160B;
  __builtin_prefetch (D.1886_88, 1);
  r_4(D)-sig[i_13] = 0;
  i_8 = i_13 + 1;
  i_26 = i_8;
  r_4(D)-sig[i_26] = 0;
  i_28 = i_26 + 1;
  i_30 = i_28;
  r_4(D)-sig[i_30] = 0;
  i_32 = i_30 + 1;
  i_34 = i_32;
  r_4(D)-sig[i_34] = 0;
  i_36 = i_34 + 1;
  i_38 = i_36;
  r_4(D)-sig[i_38] = 0;
  i_40 = i_38 + 1;
  i_42 = i_40;
  r_4(D)-sig[i_42] = 0;
  i_44 = i_42 + 1;
  i_46 = i_44;
  r_4(D)-sig[i_46] = 0;
  i_48 = i_46 + 1;
  i_50 = i_48;
  r_4(D)-sig[i_50] = 0;
  i_52 = i_50 + 1;
  i_54 = i_52;
  r_4(D)-sig[i_54] = 0;
  i_56 = i_54 + 1;
  i_58 = i_56;
  r_4(D)-sig[i_58] = 0;
  i_60 = i_58 + 1;
  i_62 = i_60;
  r_4(D)-sig[i_62] = 0;
  i_64 = i_62 + 1;
  i_66 = i_64;
  r_4(D)-sig[i_66] = 0;
  i_68 = i_66 + 1;
  i_70 = i_68;
  r_4(D)-sig[i_70] = 0;
  i_72 = i_70 + 1;
  i_74 = i_72;
  r_4(D)-sig[i_74] = 0;
  i_76 = i_74 + 1;
  i_78 = i_76;
  r_4(D)-sig[i_78] = 0;
[...]

and so on. since it definitely writes more than 5 ints, I don't see how it
should *not* overflow the array. 


-- 


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



[Bug c/17946] wanted: warning for a MASK when a MASK was probably intended

2007-02-19 Thread mueller at gcc dot gnu dot org


--- Comment #12 from mueller at gcc dot gnu dot org  2007-02-19 10:21 
---
I've submitted a patch


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/30860] Should warn about boolean constant false used in pointer context

2007-02-19 Thread mueller at gcc dot gnu dot org


--- Comment #1 from mueller at gcc dot gnu dot org  2007-02-19 16:43 ---
manu, is this something already covered by your pending -Wconversion fixes?


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org


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



[Bug c++/30860] Should warn about boolean constant false used in pointer context

2007-02-19 Thread mueller at gcc dot gnu dot org


-- 

mueller 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-02-19 20:21:31
   date||


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



[Bug c++/30860] Should warn about boolean constant false used in pointer context

2007-02-19 Thread mueller at gcc dot gnu dot org


--- Comment #6 from mueller at gcc dot gnu dot org  2007-02-19 20:23 ---
there is an implicit value conversion, boolean false to address 0. I think
that is the definition of -Wconversion, no?

anyway, I'll work on a patch. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug bootstrap/30510] [4.3 Regression] Gcc failed to bootstrap

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


--- Comment #21 from mueller at gcc dot gnu dot org  2007-02-05 12:43 
---
Subject: Bug 30510

Author: mueller
Date: Mon Feb  5 12:43:17 2007
New Revision: 121596

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121596
Log:
2007-02-05  Dirk Mueller  [EMAIL PROTECTED]

   PR bootstrap/30510
   * parser.c (cp_parser_class_specifier): Always initialize bases.

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


-- 


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



[Bug bootstrap/30510] [4.3 Regression] Gcc failed to bootstrap

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


--- Comment #22 from mueller at gcc dot gnu dot org  2007-02-05 12:43 
---
Fixed in 4.3. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/30636] [4.3 Regression] incorrect array bounds warning on multi-dimensional arrays

2007-02-01 Thread mueller at gcc dot gnu dot org


--- Comment #8 from mueller at gcc dot gnu dot org  2007-02-01 13:27 ---
removing diagnostic keyword again. This is latent wrong-code. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|mueller at gcc dot gnu dot  |rguenth at gcc dot gnu dot
   |org |org
   Keywords|diagnostic  |


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



[Bug middle-end/30636] [4.3 Regression] incorrect array bounds warning on multi-dimensional arrays

2007-01-31 Thread mueller at gcc dot gnu dot org


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug middle-end/30636] [4.3 Regression] incorrect array bounds warning on multi-dimensional arrays

2007-01-30 Thread mueller at gcc dot gnu dot org


--- Comment #3 from mueller at gcc dot gnu dot org  2007-01-30 13:09 ---
I'm not flagging this as diagnostic for now, because it is imho still a bug in
ccp that could cause other side-effects (aliasing analysis?). 

if it is clear that the only problem this causes is the warning then I'll
happily add a suppression for this case. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords|diagnostic  |


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



[Bug c++/30601] [4.3 regression] -Wreturn-type warns about more than what the documentation says

2007-01-30 Thread mueller at gcc dot gnu dot org


--- Comment #13 from mueller at gcc dot gnu dot org  2007-01-30 16:20 
---
Subject: Bug 30601

Author: mueller
Date: Tue Jan 30 16:20:06 2007
New Revision: 121342

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121342
Log:
2007-01-30  Dirk Mueller  [EMAIL PROTECTED]

   PR c++/30601
   * doc/invoke.texi (-Wreturn-type): Update description to
   match new behavior.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/invoke.texi


-- 


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



[Bug c/8268] no compile time array index checking

2007-01-30 Thread mueller at gcc dot gnu dot org


--- Comment #45 from mueller at gcc dot gnu dot org  2007-01-30 17:17 
---
Subject: Bug 8268

Author: mueller
Date: Tue Jan 30 17:17:39 2007
New Revision: 121346

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121346
Log:
backport from mainline:

  2007-01-21  Dirk Mueller  [EMAIL PROTECTED]

PR bootstrap/30511
* tree-vrp.c (check_array_bounds): do not warn
about ADDR_EXPR's of ARRAY_REF's which are immediately
used in binary expressions.

  2007-01-19  Dirk Mueller  [EMAIL PROTECTED]

* config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
duplicate evaluation.

  2007-01-18  Dirk Mueller  [EMAIL PROTECTED]
Richard Guenther [EMAIL PROTECTED]

PR diagnostic/8268
* doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
* common.opt (Warray-bounds): Add new warning option.
* c-opts.c (c_common_handle_option): Define -Warray-bounds
if -Wall is given.
* Makefile.in: make tree-vrp.o depend on toplev.h
* tree-vrp.c (vrp_finalize): Call check_array_refs if
* -Warray-bounds
is enabled.
(check_array_refs, check_array_bounds, check_array_ref): New.


Added:
branches/suse/gcc-4_2-branch/gcc/testsuite/g++.dg/warn/Warray-bounds-2.C
  - copied unchanged from r120898,
trunk/gcc/testsuite/g++.dg/warn/Warray-bounds-2.C
branches/suse/gcc-4_2-branch/gcc/testsuite/g++.dg/warn/Warray-bounds.C
  - copied unchanged from r120898,
trunk/gcc/testsuite/g++.dg/warn/Warray-bounds.C
branches/suse/gcc-4_2-branch/gcc/testsuite/gcc.dg/Warray-bounds-2.c
  - copied unchanged from r120898,
trunk/gcc/testsuite/gcc.dg/Warray-bounds-2.c
branches/suse/gcc-4_2-branch/gcc/testsuite/gcc.dg/Warray-bounds.c
  - copied unchanged from r120898,
trunk/gcc/testsuite/gcc.dg/Warray-bounds.c
Modified:
branches/suse/gcc-4_2-branch/gcc/Makefile.in
branches/suse/gcc-4_2-branch/gcc/c-opts.c
branches/suse/gcc-4_2-branch/gcc/common.opt
branches/suse/gcc-4_2-branch/gcc/config/i386/i386.h
branches/suse/gcc-4_2-branch/gcc/doc/invoke.texi
branches/suse/gcc-4_2-branch/gcc/tree-vrp.c


-- 


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



[Bug bootstrap/30511] False array bound check causes gcc failed to boostrap

2007-01-30 Thread mueller at gcc dot gnu dot org


--- Comment #9 from mueller at gcc dot gnu dot org  2007-01-30 17:18 ---
Subject: Bug 30511

Author: mueller
Date: Tue Jan 30 17:17:39 2007
New Revision: 121346

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121346
Log:
backport from mainline:

  2007-01-21  Dirk Mueller  [EMAIL PROTECTED]

PR bootstrap/30511
* tree-vrp.c (check_array_bounds): do not warn
about ADDR_EXPR's of ARRAY_REF's which are immediately
used in binary expressions.

  2007-01-19  Dirk Mueller  [EMAIL PROTECTED]

* config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
duplicate evaluation.

  2007-01-18  Dirk Mueller  [EMAIL PROTECTED]
Richard Guenther [EMAIL PROTECTED]

PR diagnostic/8268
* doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
* common.opt (Warray-bounds): Add new warning option.
* c-opts.c (c_common_handle_option): Define -Warray-bounds
if -Wall is given.
* Makefile.in: make tree-vrp.o depend on toplev.h
* tree-vrp.c (vrp_finalize): Call check_array_refs if
* -Warray-bounds
is enabled.
(check_array_refs, check_array_bounds, check_array_ref): New.


Added:
branches/suse/gcc-4_2-branch/gcc/testsuite/g++.dg/warn/Warray-bounds-2.C
  - copied unchanged from r120898,
trunk/gcc/testsuite/g++.dg/warn/Warray-bounds-2.C
branches/suse/gcc-4_2-branch/gcc/testsuite/g++.dg/warn/Warray-bounds.C
  - copied unchanged from r120898,
trunk/gcc/testsuite/g++.dg/warn/Warray-bounds.C
branches/suse/gcc-4_2-branch/gcc/testsuite/gcc.dg/Warray-bounds-2.c
  - copied unchanged from r120898,
trunk/gcc/testsuite/gcc.dg/Warray-bounds-2.c
branches/suse/gcc-4_2-branch/gcc/testsuite/gcc.dg/Warray-bounds.c
  - copied unchanged from r120898,
trunk/gcc/testsuite/gcc.dg/Warray-bounds.c
Modified:
branches/suse/gcc-4_2-branch/gcc/Makefile.in
branches/suse/gcc-4_2-branch/gcc/c-opts.c
branches/suse/gcc-4_2-branch/gcc/common.opt
branches/suse/gcc-4_2-branch/gcc/config/i386/i386.h
branches/suse/gcc-4_2-branch/gcc/doc/invoke.texi
branches/suse/gcc-4_2-branch/gcc/tree-vrp.c


-- 


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



[Bug debug/30629] New: [Regression:4.3/4.2] -g causes undefined references

2007-01-29 Thread mueller at gcc dot gnu dot org
Consider this testcase: 

=== Cut ===
static int hacky_auxmaps[2];
static signed int auxmap_used = 0;
static int *auxmap = hacky_auxmaps[0];

static void
mc_pre_reg_read ( unsigned  size)
{
  vgPlain_message (memcheck: auxmaps: %d auxmap entries in use, auxmap_used);
}
=== Cut ===

compiling it with -O2 -g results in an undefined reference to hacky_auxmaps.
just compiling with -O2 or with -O0 fixes it.


-- 
   Summary: [Regression:4.3/4.2] -g causes undefined references
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mueller at gcc dot gnu dot org
  GCC host triplet: i686-suse-linux


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



[Bug bootstrap/30510] [4.3 Regression] Gcc failed to bootstrap

2007-01-23 Thread mueller at gcc dot gnu dot org


-- 

mueller 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-01-23 13:29:26
   date||


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



[Bug bootstrap/30510] [4.3 Regression] Gcc failed to bootstrap

2007-01-23 Thread mueller at gcc dot gnu dot org


--- Comment #3 from mueller at gcc dot gnu dot org  2007-01-23 13:33 ---
ah, no, this doesn't seem to be the same thing. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/gcc-  |
   |patches/2007-   |
   |01/msg01731.html|


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



[Bug bootstrap/30510] [4.3 Regression] Gcc failed to bootstrap

2007-01-23 Thread mueller at gcc dot gnu dot org


--- Comment #7 from mueller at gcc dot gnu dot org  2007-01-23 15:47 ---
which revision is that? -r121081 fails here


-- 


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



[Bug fortran/30549] compiler warning in resolve.c: possibly uninitialized use of name

2007-01-23 Thread mueller at gcc dot gnu dot org


--- Comment #5 from mueller at gcc dot gnu dot org  2007-01-23 16:26 ---
fortran seems to bootstrap now. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/30511] False array bound check causes gcc failed to boostrap

2007-01-21 Thread mueller at gcc dot gnu dot org


--- Comment #7 from mueller at gcc dot gnu dot org  2007-01-21 16:12 ---
Subject: Bug 30511

Author: mueller
Date: Sun Jan 21 16:12:10 2007
New Revision: 121032

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121032
Log:
2007-01-21  Dirk Mueller  [EMAIL PROTECTED]

PR bootstrap/30511
* tree-vrp.c (check_array_bounds): do not warn
about ADDR_EXPR's of ARRAY_REF's which are immediately
used in binary expressions.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-vrp.c


-- 


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



[Bug bootstrap/30511] False array bound check causes gcc failed to boostrap

2007-01-21 Thread mueller at gcc dot gnu dot org


--- Comment #8 from mueller at gcc dot gnu dot org  2007-01-21 16:52 ---
Fixed for 4.3. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/19618] Does warn if bit-fields exceed the size of bool types

2007-01-21 Thread mueller at gcc dot gnu dot org


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug bootstrap/30511] False array bound check causes gcc failed to boostrap

2007-01-19 Thread mueller at gcc dot gnu dot org


--- Comment #1 from mueller at gcc dot gnu dot org  2007-01-19 20:04 ---
this patch fixes / works around it. I don't like it yet, I'm trying to find a
better solution. 

--- tree-vrp.c  (revision 120953)
+++ tree-vrp.c  (working copy)
@@ -3583,6 +3583,25 @@ check_array_bounds (tree *tp, int *walk_
*walk_subtree = FALSE;
return NULL_TREE;
  }
+
+   /* Don't warn if the result ssa_name is used in another
+ binary expr.  */
+   if (TREE_CODE ((tree)data) == GIMPLE_MODIFY_STMT
+GIMPLE_STMT_OPERAND ((tree)data, 0)
+TREE_CODE (GIMPLE_STMT_OPERAND ((tree)data, 0)) == SSA_NAME)
+ {
+  imm_use_iterator iter;
+  tree lhs = GIMPLE_STMT_OPERAND ((tree)data, 0);
+  tree use;
+
+  FOR_EACH_IMM_USE_STMT (use, iter, lhs)
+if (TREE_CODE (use) == GIMPLE_MODIFY_STMT
+ BINARY_CLASS_P (GIMPLE_STMT_OPERAND (use, 1)))
+  *walk_subtree = FALSE;
+
+  if (*walk_subtree == FALSE)
+return NULL_TREE;
+ }
while (handled_component_p (t))
  {
if (TREE_CODE (t) == ARRAY_REF)


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-01-19 20:04:36
   date||


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



[Bug bootstrap/30511] False array bound check causes gcc failed to boostrap

2007-01-19 Thread mueller at gcc dot gnu dot org


--- Comment #5 from mueller at gcc dot gnu dot org  2007-01-19 22:15 ---
the ivopts problem is a duplicate of bug 26726.


-- 


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



[Bug c/8268] no compile time array index checking

2007-01-18 Thread mueller at gcc dot gnu dot org


--- Comment #43 from mueller at gcc dot gnu dot org  2007-01-18 13:00 
---
Subject: Bug 8268

Author: mueller
Date: Thu Jan 18 13:00:33 2007
New Revision: 120898

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=120898
Log:
2007-01-18  Dirk Mueller  [EMAIL PROTECTED]
·   Richard Guenther [EMAIL PROTECTED]

·   PR diagnostic/8268
·   * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
·   * common.opt (Warray-bounds): Add new warning option.
·   * c-opts.c (c_common_handle_option): Define -Warray-bounds
·   if -Wall is given.
* Makefile.in: make tree-vrp.o depend on toplev.h
·   * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
·   is enabled.
·   (check_array_refs, check_array_bounds, check_array_ref): New.

·   * gcc.dg/Warray-bounds.c: New testcase.
* gcc.dg/Warray-bounds-2.c: New testcase.
* g++.dg/warn/Warray-bounds.C: New testcase.
* g++.dg/warn/Warray-bounds-2.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/warn/Warray-bounds-2.C
trunk/gcc/testsuite/g++.dg/warn/Warray-bounds.C
trunk/gcc/testsuite/gcc.dg/Warray-bounds-2.c
trunk/gcc/testsuite/gcc.dg/Warray-bounds.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/Makefile.in
trunk/gcc/c-opts.c
trunk/gcc/common.opt
trunk/gcc/doc/invoke.texi
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vrp.c


-- 


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



[Bug c/8268] no compile time array index checking

2007-01-18 Thread mueller at gcc dot gnu dot org


--- Comment #44 from mueller at gcc dot gnu dot org  2007-01-18 13:12 
---
Fixed for 4.3. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||4.3.0
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug c/8268] no compile time array index checking

2007-01-17 Thread mueller at gcc dot gnu dot org


--- Comment #42 from mueller at gcc dot gnu dot org  2007-01-17 10:51 
---
no, its going in real soon now (finally) :)


-- 


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



[Bug c++/18313] Missing warning for superfluous const's in return types

2006-11-30 Thread mueller at gcc dot gnu dot org


--- Comment #3 from mueller at gcc dot gnu dot org  2006-11-30 23:08 ---
Subject: Bug 18313

Author: mueller
Date: Thu Nov 30 23:08:27 2006
New Revision: 119382

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=119382
Log:
2006-12-01  Dirk Mueller  [EMAIL PROTECTED]

PR c++/18313
* decl.c (grokdeclarator): Warn for type qualifiers on return
type for non-dependent types.
* pt.c (tsubst_function_type): Warn for type qualifiers on
return type for dependent types.

* g++.dg/warn/Wreturn-type-4.C: New testcase.


Added:
trunk/gcc/testsuite/g++.dg/warn/Wreturn-type-4.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/18313] Missing warning for superfluous const's in return types

2006-11-30 Thread mueller at gcc dot gnu dot org


--- Comment #4 from mueller at gcc dot gnu dot org  2006-11-30 23:11 ---
Implemented for 4.3. 


-- 

mueller at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



  1   2   >