[Bug rtl-optimization/65912] x_rtl.x_frame_offset not updated after frame related insn deleted

2015-04-28 Thread pinskia at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65912

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com ---
 On Apr 27, 2015, at 9:10 PM, jiwang at gcc dot gnu.org 
 gcc-bugzi...@gcc.gnu.org wrote:
 
 Has anyone run into this issue on other architecture like MIPS, PPC?

Yes on both.


[Bug target/65648] [5 Regression] Bad code due to IRA fails to recognize the clobber in parallel

2015-04-01 Thread pinskia at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65648

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com ---
On Wed, Apr 1, 2015 at 5:44 PM, terry.guo at arm dot com
gcc-bugzi...@gcc.gnu.org wrote:
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65648

 Bug ID: 65648
Summary: [5 Regression] Bad code due to IRA fails to recognize
 the clobber in parallel
Product: gcc
Version: 5.0
 Status: UNCONFIRMED
   Severity: normal
   Priority: P3
  Component: target
   Assignee: unassigned at gcc dot gnu.org
   Reporter: terry.guo at arm dot com

 Created attachment 35200
   -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35200action=edit
 test case

 When compile attached case with command:
 arm-none-eabi-gcc -march=armv6-m -mthumb -Os x.c -S

 The gcc generates bad code as below:
 main:
 push{r0, r1, r2, r4, r5, r6, r7, lr}
 ldr r4, .L5
 movsr5, #0
 ldr r0, [r4, #8]
 add r1, sp, #4
 rsbsr2, r0, #0
 adcsr2, r2, r0
 subsr3, r2, r3  //r3 is used but not initialized

 The instruction to initialize r3 is removed due to IRA failed to recognize the
 clobber in reload pass. Before the reload pass, we have three instructions 
 like
 below:
 (insn 12 11 14 2 (parallel [
 (set (reg:SI 128)
 (eq:SI (reg:SI 110 [ D.4914 ])
 (const_int 0 [0])))
 (clobber (reg:SI 129))
 ]) x.c:23 760 {*cstoresi_eq0_thumb1_insn}
  (expr_list:REG_UNUSED (reg:SI 129)
 (nil)))
 (insn 20 19 22 2 (set (reg:SI 135)
 (plus:SI (plus:SI (reg:SI 136)
 (reg:SI 137))
 (geu:SI (reg:SI 131 [ D.4914 ])
 (reg:SI 134 [ c ] x.c:23 764 {thumb1_addsi3_addgeu}
  (expr_list:REG_DEAD (reg:SI 137)
 (expr_list:REG_DEAD (reg:SI 136)
 (expr_list:REG_DEAD (reg:SI 134 [ c ])
 (expr_list:REG_DEAD (reg:SI 131 [ D.4914 ])
 (nil))
 (insn 22 20 23 2 (set (reg:SI 138)
 (minus:SI (reg:SI 128)
 (reg:SI 135))) x.c:23 720 {thumb1_subsi3_insn}
  (expr_list:REG_DEAD (reg:SI 135)
 (expr_list:REG_DEAD (reg:SI 128)
 (nil

 After the reload pass, those instructions are wrongly turned into:
 (insn 20 53 58 2 (set (reg:SI 3 r3 [135])
 (plus:SI (plus:SI (reg:SI 3 r3 [137])
 (reg:SI 2 r2 [136]))
 (geu:SI (reg:SI 7 r7 [orig:131 D.4914 ] [131])
 (reg:SI 6 r6 [153] x.c:23 764 {thumb1_addsi3_addgeu}
  (nil))
 (insn 58 20 55 2 (parallel [
 (set (reg:SI 2 r2 [128])
 (eq:SI (reg:SI 0 r0 [orig:110 D.4914 ] [110])
 (const_int 0 [0])))
 (clobber (reg:SI 3 r3 [129]))
 ]) x.c:23 760 {*cstoresi_eq0_thumb1_insn}
  (nil))
 (note 55 58 22 2 NOTE_INSN_DELETED)
 (insn 22 55 23 2 (set (reg:SI 3 r3 [138])
 (minus:SI (reg:SI 2 r2 [128])
 (reg:SI 3 r3 [135]))) x.c:23 720 {thumb1_subsi3_insn}
  (nil))

 However the later pass can recognize the clobber in insn 58 and will remove 
 the
 insn 20 because the r3 defined in insn 20 is clobbered by insn 58.


This is a bug in the arm's thumb1.md file, it uses match_operand when
it should really be using match_scratch.
Looks like most of the arm back-end has this bug in it.

See
https://gcc.gnu.org/onlinedocs/gccint/Regs-and-Memory.html#index-scratch-2870
and the corresponding match_scratch documentation.

That is this:

1515 (define_insn *cstoresi_eq0_thumb1_insn
1516   [(set (match_operand:SI 0 s_register_operand =l,l)
1517 (eq:SI (match_operand:SI 1 s_register_operand l,0)
1518(const_int 0)))
1519(clobber (match_operand:SI 2 s_register_operand =X,l))]
1520   TARGET_THUMB1
1521   @
1522rsbs\\t%0, %1, #0\;adcs\\t%0, %0, %1
1523rsbs\\t%2, %1, #0\;adcs\\t%0, %1, %2
1524   [(set_attr length 4)
1525(set_attr type multiple)]
1526 )

Really should be using (clobber (match_scratch:... ))

So it generates a scratch RTL right away and then the register
allocater knows that it is only used in that instruction.

Thanks,
Andrew


[Bug tree-optimization/60533] [4.8/4.9 regression] Error introduced by cunrolli pass at -O3

2014-03-15 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60533

--- Comment #10 from pinskia at gmail dot com pinskia at gmail dot com ---
 On Mar 15, 2014, at 7:59 PM, wschmidt at gcc dot gnu.org 
 gcc-bugzi...@gcc.gnu.org wrote:
 
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60533
 
 --- Comment #7 from Bill Schmidt wschmidt at gcc dot gnu.org ---
 The problem is actually introduced much earlier, during the cunrolli (complete
 unroll inner) pass.  I'm attaching dumps from 055t.copyrename2 and
 056t.cunrolli to show what happens.  Prior to unrolling, we have a loop formed
 by blocks 47,19,20,...,46, with the original call to makeUnion at the end of
 block 45.  The unroller decides that this loop will be executed exactly 3 
 times
 and unrolls it completely.  (It's not clear to me on what basis this decision
 is made in the first place; it doesn't seem justified on the surface.)

What is the type of bc?  That access to bc in bb 46 looks like to be the cause. 

What is the original code look like, do we have an out of bounds access here or
just a miscombining to create one?

Thanks,
Andrew


 
 In any case, the third copy of the loop comprises blocks 74 through 101, with
 the call to makeUnion duplicated at the end of block 100.  The unroller then
 inserts a __builtin_unreachable at the end of block 101 for some reason.  This
 survives until the rewrite into RTL, at which point it is converted to the
 barrier that causes the bad block reordering.


[Bug c++/58772] __attribute__((aligned(16))) and nested classes cause -ftree-vectorize to generate segfaulting code

2013-10-21 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58772

--- Comment #6 from pinskia at gmail dot com pinskia at gmail dot com ---
Sent from my iPad

 On Oct 21, 2013, at 2:35 AM, burnus at gcc dot gnu.org 
 gcc-bugzi...@gcc.gnu.org wrote:
 
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58772
 
 Tobias Burnus burnus at gcc dot gnu.org changed:
 
   What|Removed |Added
 
 CC||burnus at gcc dot gnu.org
 
 --- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org ---
 (In reply to Richard Biener from comment #3)
 The syntax would be
  ::posix_memalign (act, 16, sizeof (Actor));
 
 Or
  #include mm_malloc.h
  ...
  act = _mm_malloc, sizeof (Actor), 16);
 which is supposed to be a bit more portable. (mm_malloc.h ships with GCC since
 4.0, if I recall correctly.)


Less portable as that only works on x86 while posix_memalign works on all posix
targets.


[Bug c/58454] Potentially wrong(or at least weird/inconsistent) code generation with -O2 -fno-strict-overflow

2013-09-17 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58454

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com ---
All of these functions overflow the loop induction variable so only -fwrapv
will provide the behavior you want for all of the functions.  The inconsistent
behavior is due to the overflows happening for induction variables.  If it was
not an induction variable then -fno-strict-overflow would have
worked..-fno-strict-overflow is only defined to work for non loop variables.

Thanks,
Andrew

On Sep 17, 2013, at 6:28 PM, mednafen at gmail dot com
gcc-bugzi...@gcc.gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58454
 
Bug ID: 58454
   Summary: Potentially wrong(or at least weird/inconsistent) code
generation with -O2 -fno-strict-overflow
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mednafen at gmail dot com
 
 Created attachment 30844
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30844action=edit
 Testcase program.
 
 Working:
 XXX@willow:~/halt$ /usr/local/gcc-4.8.1/bin/gcc -Wall -O0 -o halt halt.c 
 XXX@willow:~/halt$ ./halt 
 IMm3: 
 IMm2: ***
 IMm1: **
 IM: *
 
 
 :
 XXX@willow:~/halt$ /usr/local/gcc-4.8.1/bin/gcc -Wall -O2 -o halt halt.c 
 XXX@willow:~/halt$ ./halt 
 IMm3: IMm3: IMm3: IMm3: IMm3: IMm3: IMm3: IMm3:
 IMm3: IMm3: IMm3: IMm3: IMm3: IMm3: IMm3: 
 IMm3:
 IMm3: IMm3: IMm3: IMm3: IMm3: IMm3: IMm3: 
 IMm3:
 IMm3: Aborted
 
 
 Working:
 XXX@willow:~/halt$ /usr/local/gcc-4.8.1/bin/gcc -Wall -O2
 -fno-aggressive-loop-optimizations -o halt halt.c
 XXX@willow:~/halt$ ./halt 
 IMm3:
 Aborted
 
 
 Broken:
 XXX@willow:~/halt$ /usr/local/gcc-4.8.1/bin/gcc -Wall -O2 -fno-strict-overflow
 -o halt halt.c 
 XXX@willow:~/halt$ ./halt 
 IMm3: 
 IMm2: ***
 IMm1:
 *Aborted
 
 
 Broken:
 XXX@willow:~/halt$ /usr/local/gcc-4.8.1/bin/gcc -Wall -O2
 -fno-aggressive-loop-optimizations -fno-strict-overflow -o halt halt.c 
 XXX@willow:~/halt$ ./halt 
 IMm3: 
 IMm2: ***
 IMm1:
 *Aborted
 
 
 Working:
 XXX@willow:~/halt$ /usr/local/gcc-4.8.1/bin/gcc -Wall -O2 -fno-strict-overflow
 -fno-tree-vrp -o halt halt.c
 XXX@willow:~/halt$ ./halt
 IMm3: 
 IMm2: ***
 IMm1: **
 IM: *
 
 
 Working:
 XXX@willow:~/halt$ /usr/local/gcc-4.8.1/bin/gcc -Wall -O2 -fno-strict-overflow
 -fwrapv -o halt halt.c
 XXX@willow:~/halt$ ./halt 
 IMm3: 
 IMm2: ***
 IMm1: **
 IM: *
 
 
 XXX@willow:~/halt$ /usr/local/gcc-4.8.1/bin/gcc -v
 Using built-in specs.
 COLLECT_GCC=/usr/local/gcc-4.8.1/bin/gcc
 COLLECT_LTO_WRAPPER=/usr/local/gcc-4.8.1/libexec/gcc/x86_64-unknown-linux-gnu/4.8.1/lto-wrapper
 Target: x86_64-unknown-linux-gnu
 Configured with: ../gcc-4.8.1/configure --prefix=/usr/local/gcc-4.8.1
 Thread model: posix
 gcc version 4.8.1 (GCC)


[Bug ipa/58279] Interanl compiler error while pgo compilation at ipa-inline.c:902

2013-08-30 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58279

--- Comment #3 from pinskia at gmail dot com pinskia at gmail dot com ---
I have a fix which I hope to share in the next few weeks.

Sent from my iPad

On Aug 30, 2013, at 3:31 AM, evstupac at gmail dot com
gcc-bugzi...@gcc.gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58279
 
 --- Comment #2 from Stupachenko Evgeny evstupac at gmail dot com ---
 I can't share CoreMark sources.
 However, you can get them at www.coremark.org when accept the license.
 
 The error caused by edge-count of new edges which is grater than max_count:
 (line 902)
 gcc_assert (max_count = edge-count);
 
 The new edge is generated in case of indirect inline:
 
 (line 1517)
 if (flag_indirect_inlining)
  new_indirect_edges.create (8);
 
 and does not participate in max_count calculation, but refers to it when 
 adding
 to a heap:
 
 (lines 1724 and 1761)
 if (flag_indirect_inlining)
  add_new_edges_to_heap (edge_heap, new_indirect_edges);
 
 Updating max_count with new_edges counts resolves the ICE.


[Bug bootstrap/54304] linking stage picks up system mpfr instead of in-tree version

2012-08-17 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54304

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com 
2012-08-17 19:13:50 UTC ---
This is a darwin only issue.
On Aug 17, 2012 12:07 PM, tobi at gcc dot gnu.org 
gcc-bugzi...@gcc.gnu.org wrote:

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

  Bug #: 54304
Summary: linking stage picks up system mpfr instead of in-tree
 version
 Classification: Unclassified
Product: gcc
Version: 4.8.0
 Status: UNCONFIRMED
   Severity: normal
   Priority: P3
  Component: bootstrap
 AssignedTo: unassig...@gcc.gnu.org
 ReportedBy: t...@gcc.gnu.org


 This is an old bug, I found mention of it all over the internet, and also
 on
 the gcc mailing list http://gcc.gnu.org/ml/gcc-help/2011-04/msg00126.html
 .

 What happens is that with an in-tree gmp, mpfr, mpc (I used
 contrib/download_prerequisites) the linking stage picks up the system
 libraries
 instead of the in-tree versions.  This causes a problem when the system
 libmpfr
  3.0.0 and the in-tree version is = 3.0.0 and vice versa, because
 mpfr_get_z_exp was renamed to mpfr_get_z_2exp between the two (hidden
 behind a
 macro).  The error I'm seeing with today's tree is:

 /Users/tobi/src/gcc/build/./prev-gcc/g++
 -B/Users/tobi/src/gcc/build/./prev-gcc/
 -B/usr/local/x86_64-apple-darwin11.4.0/bin/ -nostdinc++

 -B/Users/tobi/src/gcc/build/prev-x86_64-apple-darwin11.4.0/libstdc++-v3/src/.libs

 -B/Users/tobi/src/gcc/build/prev-x86_64-apple-darwin11.4.0/libstdc++-v3/libsupc++/.libs

 -I/Users/tobi/src/gcc/build/prev-x86_64-apple-darwin11.4.0/libstdc++-v3/include/x86_64-apple-darwin11.4.0

 -I/Users/tobi/src/gcc/build/prev-x86_64-apple-darwin11.4.0/libstdc++-v3/include
 -I/Users/tobi/src/gcc/libstdc++-v3/libsupc++

 -L/Users/tobi/src/gcc/build/prev-x86_64-apple-darwin11.4.0/libstdc++-v3/src/.libs

 -L/Users/tobi/src/gcc/build/prev-x86_64-apple-darwin11.4.0/libstdc++-v3/libsupc++/.libs
   -g -O2 -mdynamic-no-pic -gtoggle -DIN_GCC   -fno-exceptions -fno-rtti -W
 -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute
 -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings
 -Werror
 -fno-common  -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc -Wl,-no_pie
 -o
 f951 \
 fortran/arith.o fortran/array.o fortran/bbt.o
 fortran/check.o
 fortran/class.o fortran/constructor.o fortran/cpp.o fortran/data.o
 fortran/decl.o fortran/dump-parse-tree.o fortran/error.o fortran/expr.o
 fortran/interface.o fortran/intrinsic.o fortran/io.o fortran/iresolve.o
 fortran/match.o fortran/matchexp.o fortran/misc.o fortran/module.o
 fortran/openmp.o fortran/options.o fortran/parse.o fortran/primary.o
 fortran/resolve.o fortran/scanner.o fortran/simplify.o fortran/st.o
 fortran/symbol.o fortran/target-memory.o darwin-f.o fortran/convert.o
 fortran/dependency.o fortran/f95-lang.o fortran/trans.o
 fortran/trans-array.o
 fortran/trans-common.o fortran/trans-const.o fortran/trans-decl.o
 fortran/trans-expr.o fortran/trans-intrinsic.o fortran/trans-io.o
 fortran/trans-openmp.o fortran/trans-stmt.o fortran/trans-types.o
 fortran/frontend-passes.o libbackend.a main.o tree-browser.o
 libcommon-target.a
 libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a
 ../libcpp/libcpp.a -lintl -L/opt/local/lib -liconv
  ../libiberty/libiberty.a
 ../libdecnumber/libdecnumber.a  attribs.o
 -L/Users/tobi/src/gcc/build/./gmp/.libs
 -L/Users/tobi/src/gcc/build/./mpfr/.libs
 -L/Users/tobi/src/gcc/build/./mpc/src/.libs -lmpc -lmpfr -lgmp   -L../zlib
 -lz
 Undefined symbols for architecture x86_64:
   _mpfr_get_z_exp, referenced from:
   gfc_mpfr_to_mpz(__mpz_struct*, __mpfr_struct*, locus*) in arith.o
 ld: symbol(s) not found for architecture x86_64
 collect2: error: ld returned 1 exit status
 make[3]: *** [f951] Error 1
 make[2]: *** [all-stage2-gcc] Error 2
 make[1]: *** [stage2-bubble] Error 2
 make: *** [all] Error 2

 (I mentioned this in the aftermath to PR54292)

 Cheers



[Bug c++/49152] Unhelpful diagnostic for iterator dereference

2012-04-02 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49152

--- Comment #36 from pinskia at gmail dot com pinskia at gmail dot com 
2012-04-02 17:35:59 UTC ---
I know some of us use tee and that disables termainal detection code usually.
Or output to a file and then use tail -f. So please don't do that. It would
confuse lots of users.



Sent from my Palm Pre on ATamp;T
On Apr 2, 2012 4:17, manu at gcc dot gnu.org lt;gcc-bugzi...@gcc.gnu.orggt;
wrote: 

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



--- Comment #31 from Manuel López-Ibáñez lt;manu at gcc dot gnu.orggt;
2012-04-02 08:16:52 UTC ---

(In reply to comment #30)

gt; (In reply to comment #26)

gt; gt; The caret is not a solution to this problem, because what Gabriel
wants is to

gt; gt; not reconstruct expressions ONLY when the caret is shown, but he has
said in

gt; gt; the past that the caret should default to OFF to not change the
current output

gt; gt; for IDEs and other software parsing the output of gcc like emacs, so
we are

gt; gt; back to printing the monsters mentioned above by default.

gt; 

gt; I think I've said before that caret should default to on when the output
is a

gt; terminal.

gt; 



Well, that is reassuring. Then, will we still pretty-print expressions in

diagnostics once we have the caret?



Is there a GCC way to detect that the output is a terminal?


[Bug tree-optimization/52705] Loop optimization failure with -O2 versus -O1

2012-03-24 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52705

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com 
2012-03-25 05:12:44 UTC ---
You are volating c/c++ aliasing rules. Use memcpy or -fno-strict-aliasing .




Sent from my Palm Pre on ATamp;T
On Mar 24, 2012 21:27, veiokej at gmail dot com
lt;gcc-bugzi...@gcc.gnu.orggt; wrote: 

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



 Bug #: 52705

   Summary: Loop optimization failure with -O2 versus -O1

Classification: Unclassified

   Product: gcc

   Version: 4.6.1

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: tree-optimization

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: veio...@gmail.com





Created attachment 26976

  --gt; http://gcc.gnu.org/bugzilla/attachment.cgi?id=26976

Intermediate of bug.c



When I compile with these different optimization levels, I get different

output. This isn't confusion over floats or uninitialized variables, as far as

I can tell. It appears to relate to casted memory accesses.



First of all, this relates to

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49938, which _might_ solve the

problem (but I don't know, because I'm unable to upgrade from 4.6.1 under

MinGW). So please try the latest GCC before you try to debug this.



Here's the command line:



gcc -save-temps -O2 -obug.exe bug.c



This bug is very easy to reproduce. Here's the entire source of bug.c:





#include lt;stdint.hgt;

#include lt;stdio.hgt;



void

func(uint32_t a[8],uint32_t b[8]){

  uint32_t i;

  uint32_t c;

  int64_t d;



  for(i=0;ilt;=1;i++){

((uint64_t *)(b))[0]=((uint64_t *)(a))[0];

((uint64_t *)(b))[1]=((uint64_t *)(a))[0];

((uint64_t *)(b))[2]=((uint64_t *)(a))[0];

((uint64_t *)(b))[3]=((uint64_t *)(a))[0];

c=1;

d=b[0];

d-=c;

b[0]=d;

c=b[0];

d=b[1];

d-=clt;lt;1;

b[1]=d;

  }

  return;

}



int

main(int argc, char *argv[]){

  uint32_t a[8]={1,0,0,0,0,0,0,0};

  uint32_t b[8];



  func(a,b);



printf(%08X%08X%08X%08X%08X%08X%08X%08X\n,b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7]);

  return 0;

}





As you will see, you get different outputs depending on whether you use -O1 or

-O2.



The relation to Bug 49930 is this:



Look at the above code. If you change:





d=b[1];

d-=clt;lt;1;

b[1]=d;





to:





d=b[0];

d-=clt;lt;1;

b[0]=d;





Then you will see bug 49930.



Note that b[] appears to be only half-initialized because I only write to

subscripts 0 through 3. But that's not the case, because I've casted 8 32-bit

integers to 4 64-bit integers.



I notice that when I change the lines involving (uint64_t *) casts to normal

(uint32_t *) memory accesses, i.e. when I get rid of the casts, it seems to

work better (but didn't investigate at length). But I don't want to do that for

performance reasons. (bug.c is just an adaptation that's filtered from a real

function where performance matters.)


[Bug middle-end/51116] [4.7 Regression] configure: error: cannot compute suffix of object files: cannot compile

2011-11-12 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51116

--- Comment #3 from pinskia at gmail dot com pinskia at gmail dot com 
2011-11-13 04:32:06 UTC ---
According to another email mips is broken the same way.



Sent from my Palm Pre on ATamp;T
On Nov 12, 2011 20:18, danglin at gcc dot gnu.org
lt;gcc-bugzi...@gcc.gnu.orggt; wrote: 

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



 Bug #: 51116

   Summary: [4.7 Regression] configure: error: cannot compute

suffix of object files: cannot compile

Classification: Unclassified

   Product: gcc

   Version: 4.7.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: middle-end

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: dang...@gcc.gnu.org

  Host: hppa64-hp-hpux11.11

Target: hppa64-hp-hpux11.11

 Build: hppa64-hp-hpux11.11





In stage1,



checking for hppa64-hp-hpux11.11-gcc... /test/gnu/gcc/objdir/./gcc/xgcc

-B/test/gnu/gcc/objdir/./gcc/ -B/opt/gnu64/gcc/gcc-4.7/hppa64-hp-hpux11.11/bin/

-B/opt/gnu64/gcc/gcc-4.7/hppa64-hp-hpux11.11/lib/ -isystem

/opt/gnu64/gcc/gcc-4.7/hppa64-hp-hpux11.11/include -isystem

/opt/gnu64/gcc/gcc-4.7/hppa64-hp-hpux11.11/sys-include   

checking for suffix of object files... configure: error: in

`/test/gnu/gcc/objdir/hppa64-hp-hpux11.11/libgcc':

configure: error: cannot compute suffix of object files: cannot compile

See `config.log' for more details.



In config.log,



configure:3650: /test/gnu/gcc/objdir/./gcc/xgcc -B/test/gnu/gcc/objdir/./gcc/

-B

/opt/gnu64/gcc/gcc-4.7/hppa64-hp-hpux11.11/bin/

-B/opt/gnu64/gcc/gcc-4.7/hppa64-

hp-hpux11.11/lib/ -isystem /opt/gnu64/gcc/gcc-4.7/hppa64-hp-hpux11.11/include

-i

system /opt/gnu64/gcc/gcc-4.7/hppa64-hp-hpux11.11/sys-include-c -g -O2

conf

test.c gt;amp;5

/var/tmp//ccjq1spX.s: Assembler messages:

/var/tmp//ccjq1spX.s:44: Error: can't resolve `.text.startup' {.text.startup

sec

tion} - `L$FB' {*UND* section}

/var/tmp//ccjq1spX.s:148: Error: can't resolve `.text.startup' {.text.startup

se

ction} - `L$FB' {*UND* section}

configure:3654: $? = 1

configure: failed program was:

| /* confdefs.h */

| #define PACKAGE_NAME GNU C Runtime Library

| #define PACKAGE_TARNAME libgcc

| #define PACKAGE_VERSION 1.0

| #define PACKAGE_STRING GNU C Runtime Library 1.0

| #define PACKAGE_BUGREPORT 

| #define PACKAGE_URL http://www.gnu.org/software/libgcc/;

| /* end confdefs.h.  */

| 

| int

| main ()

| 

|   ;

|   return 0;

| }


[Bug target/50091] [4.5/4.6/4.7 Regression] -fstack-check gives bad assembly on powerpc-apple-darwin9

2011-08-16 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50091

--- Comment #3 from pinskia at gmail dot com pinskia at gmail dot com 
2011-08-16 17:25:26 UTC ---
Because darwin's as does not support it. It only supports with r0.



Sent from my Palm Pre on ATamp;T
On Aug 16, 2011 10:13, ebotcazou at gcc dot gnu.org
lt;gcc-bugzi...@gcc.gnu.orggt; wrote: 

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



Eric Botcazou lt;ebotcazou at gcc dot gnu.orggt; changed:



   What|Removed |Added



 Status|UNCONFIRMED |ASSIGNED

   Last reconfirmed||2011-08-16

 AssignedTo|unassigned at gcc dot   |ebotcazou at gcc dot

   |gnu.org |gnu.org

 Ever Confirmed|0   |1



--- Comment #2 from Eric Botcazou lt;ebotcazou at gcc dot gnu.orggt;
2011-08-16 17:12:00 UTC ---

gt; Well, look at the PR - it was an ICE with graphite and stack-check, so
yes,

gt; of course.

gt; 

gt; stw 0,-12284(r1)

gt; 

gt; looks like some missing operand print thing to dump fancy regnames (r0
instead

gt; of 0).



How come the assembler chokes on this?  Looking into it...


[Bug rtl-optimization/49807] Missed byte (subreg) extraction when storing to volatile mem

2011-07-21 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49807

--- Comment #4 from pinskia at gmail dot com pinskia at gmail dot com 
2011-07-21 20:39:08 UTC ---
On Thu, Jul 21, 2011 at 1:34 PM, gjl at gcc dot gnu.org
gcc-bugzi...@gcc.gnu.org wrote:
 I don't know the exact rationale why volatile_ok is false in combine.
 It' obviously about volatile correctnet, but I don't see what would break 
 here.

It can, when dealing optimizations that reduce the size of load/stores
of volatile memory.

Thanks,
Andrew Pinski


[Bug tree-optimization/49709] Bad code gen with -fipa-sra

2011-07-11 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49709

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com 
2011-07-12 00:58:13 UTC ---
Hmmm. There was just a recent patch to the tail call area which was supposed to
fix a testcase like this.



Sent from my Palm Pre on ATamp;T
On Jul 11, 2011 17:51, ian at airs dot com lt;gcc-bugzi...@gcc.gnu.orggt;
wrote: 

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



   Summary: Bad code gen with -fipa-sra

   Product: gcc

   Version: 4.7.0

Status: UNCONFIRMED

  Keywords: wrong-code

  Severity: major

  Priority: P3

 Component: tree-optimization

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: i...@airs.com





Created attachment 24741

  --gt; http://gcc.gnu.org/bugzilla/attachment.cgi?id=24741

Test case



I have attached a C test case.  When compiled for x86 with -m32 -O2, the test

case aborts.  When compiled with -m32, or with -m32 -O2 -fno-ipa-sra it runs to

completion.



I believe the bug is that ipa-sra leaves a call which refers to function

parameters using MEM_REF expressions which refer to fields of the parameters. 

These are translated into MEM expressions which load the address of the

parameter into a register and then use a MEM_REF to load an offset from that

register.  This MEM does not refer to the internal_arg_pointer, but to a

register which was set based on the internal_arg_pointer.  That means that

mem_overlaps_already_clobbered_arg_p in calls.c does not recognize that the MEM

refers to the argument area.  That in turn means that gcc thinks that it can

make a tail call, but when setting up the arguments for the call it clobbers

arguments that it has yet to read.



The fix may be to make mem_overlaps_already_clobbered_arg_p much smarter, or to

disable tail calls when applying SRA to a function and passes parameters to it.


[Bug tree-optimization/47708] incorrect code on -O2 without -fno-tree-pre

2011-02-11 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47708

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com 
2011-02-12 06:36:09 UTC ---
You are violating c/c++ aliasing rules. nbsp;The code is undefined.



Sent from my Palm Pre on ATamp;T
On Feb 11, 2011 22:27, zephyrtronium at gmail dot com
lt;gcc-bugzi...@gcc.gnu.orggt; wrote: 

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



   Summary: incorrect code on -O2 without -fno-tree-pre

   Product: gcc

   Version: 4.5.2

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: tree-optimization

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: zephyrtron...@gmail.com





Created attachment 23310

  --gt; http://gcc.gnu.org/bugzilla/attachment.cgi?id=23310

minimal case



gcc -v

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.5.2/lto-wrapper

Target: x86_64-unknown-linux-gnu

Configured with: ../gcc-4.5.2/configure --enable-lto

Thread model: posix

gcc version 4.5.2 (GCC)



Compiling the following minimal case on -O2 or -O3 and running results in

incorrect output; with -O0, -O1, or -Os, it is correct. -O2 -fno-tree-pre

results in correct output, but -O1 -ftree-pre is also correct. GCC 4.4.3

appears to work.


[Bug middle-end/47383] ivopts miscompiles Pmode != ptr_mode

2011-01-21 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47383

--- Comment #6 from pinskia at gmail dot com pinskia at gmail dot com 
2011-01-21 11:43:45 UTC ---
Sent from my Palm Pre on ATamp;T
On Jan 20, 2011 21:34, hjl.tools at gmail dot com
lt;gcc-bugzi...@gcc.gnu.orggt; wrote: 

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



--- Comment #4 from H.J. Lu lt;hjl.tools at gmail dot comgt; 2011-01-21
05:33:53 UTC ---

(In reply to comment #3)

gt; The ivopts pass transforms

gt; 

gt; 

gt;   unsigned int D.2715;

gt;   unsigned int D.2716;

gt; ...

gt;   D.2715_43 = (unsigned int) elems_3(D);

gt;   D.2716_42 = D.2715_43 + 4294967295;

gt;   n_49 = (int) D.2716_42;

gt; 

gt; leads o the wrong result when Pmode != unsigned int. Adding

gt; -fno-ivopts fixes the bug.

gt; 



This is OK due to cast to int. But



  long unsigned int D.2757;

  long unsigned int D.2749;

  long unsigned int D.2750;

  unsigned int ivtmp.20;

  int D.2748;

  unsigned int ivtmp.17;

...

  D.2749_6 = (long unsigned int) prephitmp.8_18;

  D.2750_34 = ivtmp.17_28 - D.2749_6;

  MEM[symbol: heap, index: D.2750_34, step: 8, offset: 2296B] = n_11;



Mem here should have been rejected.


looks wrong since it assumes D.2750_34 can be negative. But

D.2750_34 is unsigned. It won't work when ptr_mode == unsigned

and Pmode is unsigned long long.


[Bug libobjc/47173] both objc_lookUpClass and objc_lookup_class are exported symbols

2011-01-04 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47173

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com 
2011-01-05 02:56:51 UTC ---
I think one is the old abi and the other is the new one.



Sent from my Palm Pre on ATamp;T
On Jan 4, 2011 18:33, doko at ubuntu dot com lt;gcc-bugzi...@gcc.gnu.orggt;
wrote: 

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



   Summary: both objc_lookUpClass and objc_lookup_class are

exported symbols

   Product: gcc

   Version: 4.6.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: libobjc

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: d...@ubuntu.com





I assume that the first one should be removed?


[Bug c++/47108] enum won't use long long as underlying type

2010-12-29 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47108

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com 
2010-12-29 13:18:40 UTC ---
enum { nbsp;a=1lt;lt;33 }blaf;nbsp;
That is still an int as 1 is of type int. Try 1lllt;lt;33.


[Bug testsuite/46425] [4.6 Regression] Revision 166570 caused many failures

2010-11-10 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46425

--- Comment #1 from pinskia at gmail dot com pinskia at gmail dot com 
2010-11-11 04:41:09 UTC ---
These failures have fixed already. The issue was in the testsuite.

On Nov 10, 2010, at 8:13 PM, hjl.tools at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

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

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

   What|Removed |Added
 --- 
 --- 
 --
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.11.11 04:13:10
  Component|c   |testsuite
   Target Milestone|--- |4.6.0
 Ever Confirmed|0   |1


[Bug c/46186] Clang creates code running 1600 times faster than gcc's

2010-10-26 Thread pinskia at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46186

--- Comment #12 from pinskia at gmail dot com pinskia at gmail dot com 
2010-10-26 15:56:20 UTC ---
On Oct 26, 2010, at 7:30 AM, j...@jak-linux.org gcc-bugzi...@gcc.gnu.org 
  wrote:

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

 --- Comment #1 from Julian Andres Klode j...@jak-linux.org  
 2010-10-26 14:30:24 UTC ---
 Created attachment 22162
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22162
 Clang's assember

This multiplication transformation is incorrect if the loop wraps  
(unsigned always wraps; never overflows). Gcc is correct in its speed.  
Though -O3 is faster but not because of multiplication but rather  
constant propatagtion. So this bug is invalid and some one should  
report a bug to llvm folks about this.


 Attaching the assembler output from clang, it should help understand  
 which
 optimizations clang does (and improve gcc to do them as well).


[Bug c++/45523] [C++0x] Failure to bind auto variable to function template instance

2010-09-03 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2010-09-03 19:02 ---
Subject: Re:   New: Failure to bind auto variable to function template instance

I think there is a dup of this bug without auto. Not to mention it was  
defect report against the standard.

On Sep 3, 2010, at 10:07 AM, jewillco at osl dot iu dot edu
gcc-bugzi...@gcc.gnu.org 
  wrote:

 The following code:

 template typename T void foo();
 void f() {auto g = fooint;}

 fails to compile in GCC 4.5.0's C++0x mode with the following error:

 foo.cpp: In function ‘void f()’:
 foo.cpp:2:20: error: ‘g’ has incomplete type

 Trying different variants of this code, it appears that GCC believes  
 that
 fooint is an ambiguous overloaded function, while there is only  
 one matching
 function.


 -- 
   Summary: Failure to bind auto variable to function template
instance
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jewillco at osl dot iu dot edu
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
 GCC target triplet: x86_64-unknown-linux-gnu


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



-- 


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



[Bug middle-end/45508] Does adding configure-options for specs-hardcoding make sense?

2010-09-02 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2010-09-02 19:55 ---
Subject: Re:   New: Does adding configure-options for specs-hardcoding make
sense?

You could use a small wrapper script that adds R option instead of a  
specs file or adds the specs file to the command line.

On Sep 2, 2010, at 12:48 PM, nicolai dot stange at zmaw dot de
gcc-bugzi...@gcc.gnu.org 
  wrote:

 Hi everybody,

 I'm not involved in any gcc development nor am I familiar with gcc  
 and its
 components and thus, the attached patch is just a place to start  
 from if you
 agree with me that my request for adding more control over the specs  
 via
 configure options makes sense.

 My problem is this one:
 At our site, we provide many versions of several compilers,  
 including the great
 GCC, at non-standard locations. The problem is with the runtime  
 search paths
 for the libgcc_s, ...: The runtime linker always finds the most  
 wrong one: The
 one from Blastwave in /opt/csw/lib (this is Solaris-specific, but if  
 it were
 Linux or sth. other, it would also find the wrong libgcc_s, shipped  
 with the
 distribution, or none at all).

 Asking the kind guys in #gcc at freenode, they told me that I might  
 want to
 supply a specs file. Hmm, I want to set site-wide specs for all users
 transparently. Reading the sourcecode of gcc, I recognized that I  
 can put a
 complete specs file to gcc_prefix/lib/gcc/target/version/specs.
 (I didn't find any documentation about that feature, so maybe this  
 lack of docs
 is another bug?).

 But this solution has two drawbacks for me:
 - I'm bootstrapping and the linking of the runtime libraries for the  
 target
 would not be influenced by placing this specs-file _after_  
 installation. Ok, I
 could go with LDFLAGS_FOR_TARGET, but this would make the whole  
 thing more
 non-convenient (at least in my opionion).
 - Creating that specs-file for every GCC-release makes automating  
 the GCC
 deployment harder: At first I have to check if the default-specs are  
 still the
 same, the I have to modify them to insert a runtime search path for  
 the new
 installation location and then I have to put it at the right  
 location. It seems
 that I have to exercise some bash/sed/diff/m4-tasks...

 Another solution would be this:
 Adding a --with-link-libgcc-specs option to the configure in the
 gcc-subdirectory, I could configure gcc with
 ../gcc-4.5.1/configure
 --with-link-libgcc-specs=\${!m64:-R/opt/gcc-4.5.1/lib}\${m64:-R/opt/ 
 gcc-4.5.1/lib/sparcv9}
 ...
 (btw: -R is the -rpath-equivalent of the Sun Linker on Solaris)

 If this user-supplied spec would be prepended/appended to the default
 link_libgcc spec, all would be fine.

 The attached patch is for link_libgcc spec only, but maybe altering  
 the other
 specs by configure-options might be useful for other people under  
 other
 circumstances, too?

 Please note again, that the attached patch is just a quick hack, if  
 you agree
 to add those options, one should have a closer look.

 Best wishes

 Nicolai


 -- 
   Summary: Does adding configure-options for specs- 
 hardcoding make
sense?
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: nicolai dot stange at zmaw dot de
 GCC build triplet: sparc-sun-solaris2.10
  GCC host triplet: sparc-sun-solaris2.10
 GCC target triplet: sparc-sun-solaris2.10


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



-- 


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



[Bug c++/45462] Bad optimization in -O3 sometimes

2010-09-01 Thread pinskia at gmail dot com


--- Comment #9 from pinskia at gmail dot com  2010-09-01 06:17 ---
Subject: Re:  Bad optimization in -O3 sometimes

I am not talking about a library solution at all. I am talking about a  
solution inside the compiler. Gcc will optimize memcpy; how much for  
MIPS is a good question. Try it out and see. Oh if you are using  
scei's gcc you really should be reporting issues to them.

On Aug 31, 2010, at 10:03 PM, yotambarnoy at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #8 from yotambarnoy at gmail dot com  2010-09-01  
 05:03 ---
 Unfortunately, a lib based solutions are difficult for me to  
 implement. The
 reason is that the current PSP SDK uses newlib. I can probably  
 change my
 personal toolchain with some work, but then it's a custom  
 modification that
 needs to be replicated to every other ScummVM dev as well as our  
 buildbot. Not
 impossible, but not work I'd like to get in to right now.

 In any case, it sounds like what you're saying is that memcpy has asm
 instructions in the right place to use lwl and lwr. I can also do  
 that in my
 implementation.

 My request was more general, as in gcc needs some kind of custom  
 keyword to
 tell it to allow unaligned pointers and to generate appropriate  
 unaligned code,
 so we don't have to trick the compiler into doing it in a way that  
 ruins
 optimization. Something like __unaligned__ uint32 *ptr32 = bytePtr;


 -- 


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



-- 


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



[Bug middle-end/45484] r163660 ICEs gcc.c-torture/execute/builtins/sprintf-chk.c compilation, -Os at -m32

2010-09-01 Thread pinskia at gmail dot com


--- Comment #11 from pinskia at gmail dot com  2010-09-02 05:55 ---
Subject: Re:  r163660 ICEs gcc.c-torture/execute/builtins/sprintf-chk.c
compilation,  -Os at -m32



On Sep 1, 2010, at 10:47 PM, ubizjak at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #10 from ubizjak at gmail dot com  2010-09-02 05:47  
 ---
 (In reply to comment #8)

 Since this doesn't backtrace in gdb, I recompiled dwarf2out.c with  
 the patch...

 You should use bigger hammer.

 Try valgrind using following procedure:

 a) Create a preprocessed source
   ~/gcc-build/gcc/xgcc -B ~/gcc-build/gcc -Os -S -save-temps  
 sprintf-chk.c

 b) fire up valgrind:
   valgrind ~/gcc-build/gcc/cc1 -Os -quiet sprintf-chk.i

 ==3664== Memcheck, a memory error detector
 ==3664== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et  
 al.
 ==3664== Using Valgrind-3.5.0 and LibVEX; rerun with -h for  
 copyright info
 ==3664== Command: /home/uros/gcc-build/gcc/cc1 -Os -quiet sprintf- 
 chk.i
 ==3664==
 ==3664== Invalid read of size 8
 ==3664==at 0xC71730: search_line_sse2 (lex.c:394)
 ==3664==by 0xC71919: _cpp_clean_line (lex.c:665)
 ==3664==by 0xC72317: _cpp_get_fresh_line (lex.c:1878)
 ==3664==by 0xC73AA1: _cpp_lex_direct (lex.c:1943)
 ==3664==by 0xC74896: _cpp_lex_token (lex.c:1817)
 ==3664==by 0xC76FC7: cpp_get_token (macro.c:1240)
 ==3664==by 0xC7727F: cpp_get_token_with_location (macro.c:1352)
 ==3664==by 0x51684C: c_lex_with_flags (c-lex.c:302)
 ==3664==by 0x4CFAA7: c_lex_one_token (c-parser.c:204)
 ==3664==by 0x4DC468: c_parser_compound_statement_nostart (c- 
 parser.c:320)
 ==3664==by 0x4DEA18: c_parser_compound_statement (c-parser.c:3545)
 ==3664==by 0x4DBDC2: c_parser_declaration_or_fndef (c-parser.c: 
 1375)
 ==3664==  Address 0x5331f50 is 5,808 bytes inside a block of size  
 5,815 alloc'd
 ==3664==at 0x4A05255: realloc (vg_replace_malloc.c:476)
 ==3664==by 0xC9ADAC: xrealloc (xmalloc.c:179)
 ==3664==by 0xC6659F: _cpp_convert_input (charset.c:1734)
 ==3664==by 0xC6EFA2: read_file (files.c:648)
 ==3664==by 0xC6F9CA: _cpp_stack_file (files.c:723)
 ==3664==by 0xC71190: cpp_read_main_file (init.c:570)
 ==3664==by 0x51B58A: c_common_post_options (c-opts.c:1124)
 ==3664==by 0x7DACA4: toplev_main (toplev.c:1826)
 ==3664==by 0x369861EC5C: (below main) (in /lib64/libc-2.12.so)
 ==3664==
 ==3664== Invalid read of size 8
 ==3664==at 0xC71723: search_line_sse2 (lex.c:382)
 ==3664==by 0xC71919: _cpp_clean_line (lex.c:665)
 ==3664==by 0xC72317: _cpp_get_fresh_line (lex.c:1878)
 ==3664==by 0xC73AA1: _cpp_lex_direct (lex.c:1943)
 ==3664==by 0xC74896: _cpp_lex_token (lex.c:1817)
 ==3664==by 0xC76FC7: cpp_get_token (macro.c:1240)
 ==3664==by 0xC7727F: cpp_get_token_with_location (macro.c:1352)
 ==3664==by 0x51684C: c_lex_with_flags (c-lex.c:302)
 ==3664==by 0x4CFAA7: c_lex_one_token (c-parser.c:204)
 ==3664==by 0x4DC468: c_parser_compound_statement_nostart (c- 
 parser.c:320)
 ==3664==by 0x4DEA18: c_parser_compound_statement (c-parser.c:3545)
 ==3664==by 0x4DBDC2: c_parser_declaration_or_fndef (c-parser.c: 
 1375)
 ==3664==  Address 0x5331f50 is 5,808 bytes inside a block of size  
 5,815 alloc'd
 ==3664==at 0x4A05255: realloc (vg_replace_malloc.c:476)
 ==3664==by 0xC9ADAC: xrealloc (xmalloc.c:179)
 ==3664==by 0xC6659F: _cpp_convert_input (charset.c:1734)
 ==3664==by 0xC6EFA2: read_file (files.c:648)
 ==3664==by 0xC6F9CA: _cpp_stack_file (files.c:723)
 ==3664==by 0xC71190: cpp_read_main_file (init.c:570)
 ==3664==by 0x51B58A: c_common_post_options (c-opts.c:1124)
 ==3664==by 0x7DACA4: toplev_main (toplev.c:1826)
 ==3664==by 0x369861EC5C: (below main) (in /lib64/libc-2.12.so)
 ==3664==

 ==3680== ERROR SUMMARY: 4 errors from 2 contexts (suppressed: 6 from  
 6)

 Woo-hoo?


Actually those can be safely ignored. The loads will not cross page  
boundaries and then the code does not depend on the extra parts if the  
buffer has correctly a null character at the end. So it is a non bug  
that valgrind picks up but does not know how to handle when processing  
strings with vector instructions.



 -- 

 ubizjak at gmail dot com changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-09-02 05:47:57
   date||


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



-- 


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



[Bug c++/45462] Bad optimization in -O3 sometimes

2010-08-31 Thread pinskia at gmail dot com


--- Comment #5 from pinskia at gmail dot com  2010-08-31 19:09 ---
Subject: Re:  Bad optimization in -O3 sometimes



On Aug 31, 2010, at 8:24 AM, yotambarnoy at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #4 from yotambarnoy at gmail dot com  2010-08-31  
 15:24 ---
 Good job picking up on that.

 There must be a better way of telling the compiler to generate lwr  
 and lwl MIPS
 instructions without breaking strict aliasing rules...?

Have you tried using memcpy?


 Thanks a bunch!


 -- 

 yotambarnoy at gmail dot com changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



-- 


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



[Bug c++/45462] Bad optimization in -O3 sometimes

2010-08-31 Thread pinskia at gmail dot com


--- Comment #7 from pinskia at gmail dot com  2010-09-01 04:41 ---
Subject: Re:  Bad optimization in -O3 sometimes



On Aug 31, 2010, at 9:32 PM, yotambarnoy at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #6 from yotambarnoy at gmail dot com  2010-09-01  
 04:32 ---
 I recently implemented a custom memcpy for ScummVM. I didn't notice  
 the
 standard memcpy using lwl and lwr. In any case, how would memcpy do  
 it any
 better? Unless you're referring to the new memcpy inlining in newer  
 versions of
 gcc?

I am referring to the standard builtin version of memcpy.  It is not  
just in newer versions; it has been there since 3.0. What is new is  
the more optimized version for x86 with either a large constant or a  
non constant. Can you try memcpy? If that does not work, please file a  
bug and cc me, I will see what I can do. I am working with MIPS lately.



 -- 


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



-- 


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



[Bug tree-optimization/45340] __builtin_expect and -Os generates stupid code

2010-08-25 Thread pinskia at gmail dot com


--- Comment #8 from pinskia at gmail dot com  2010-08-25 12:43 ---
Subject: Re:  __builtin_expect  and -Os generates stupid code



On Aug 25, 2010, at 5:23 AM, socketpair at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #7 from socketpair at gmail dot com  2010-08-25  
 12:23 ---
 Well, I understand that problem is not in __builtin_expect.

 Should I open new, separate bug about block reordering and  
 generating jmp to
 next line ?

No because it is not jumping to the next line but across the next  
instruction which just happens to be an inline-asm which is blank.



 -- 


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



-- 


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



[Bug bootstrap/45376] no such instruction: `pcmpestri $0,(%rdi),%xmm0'

2010-08-22 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2010-08-22 18:05 ---
Subject: Re:   New: no such instruction: `pcmpestri $0,(%rdi),%xmm0'

What version of binutils is being used?
Have you tried a newer version?

On Aug 22, 2010, at 3:11 AM, mikael at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 Updating today at revision 163455 gave :
 /home/mik/gcc46/src/libcpp/lex.c: Assembler messages:
 /home/mik/gcc46/src/libcpp/lex.c:448: Error: no such instruction:  
 `pcmpestri
 $0,(%rdi),%xmm0'
 /home/mik/gcc46/src/libcpp/lex.c:432: Error: no such instruction:  
 `pcmpestri
 $0,(%rdi),%xmm0'

 A revision from yesterday worked (2010-08-21), but I don't remember  
 the
 revision number.
 Possible culprit according to the ChangeLog : revision 163446.


 -- 
   Summary: no such instruction: `pcmpestri $0,(%rdi),%xmm0'
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mikael at gcc dot gnu dot org
 GCC build triplet: x86_64-unknown-freebsd8.0
  GCC host triplet: x86_64-unknown-freebsd8.0
 GCC target triplet: x86_64-unknown-freebsd8.0


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



-- 


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



[Bug target/45258] linkage on -lm and -lpthread should be purged from darwin build

2010-08-11 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-08-11 17:03 ---
Subject: Re:   New: linkage on -lm and -lpthread should be purged from darwin
build

What about removing those in the driver?  This way it works correctly  
for other makefiles too?

On Aug 11, 2010, at 9:30 AM, howarth at nitro dot med dot uc dot edu  
gcc-bugzi...@gcc.gnu.org wrote:

 Currently libjava is being improperly linked (PR java/41991) due to  
 the
 presence of -lm and -lpthreads on the shared library linkages. This  
 causes
 libSystem.dylib to be pushed to the front of the linkage and breaks  
 the logic
 used by libgcc_ext. We should add and set defines for  
 HAVE_LIBSYSTEM_PTHREADS
 and HAVE_LIBSYSTEM_LIBMATH to configure and use these for  
 conditionals in the
 Makefile.am's where appropriate to avoid passing -lm and -lpthread  
 on darwin.


 -- 
   Summary: linkage on -lm and -lpthread should be purged from
darwin build
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: howarth at nitro dot med dot uc dot edu
 GCC build triplet: *-apple-darwin*
  GCC host triplet: *-apple-darwin*
 GCC target triplet: *-apple-darwin*


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



-- 


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



[Bug c++/45246] optimizer dereference

2010-08-10 Thread pinskia at gmail dot com


--- Comment #4 from pinskia at gmail dot com  2010-08-10 12:36 ---
Subject: Re:   New: optimizer dereference



On Aug 10, 2010, at 1:00 AM, attardi at di dot unipi dot it
gcc-bugzi...@gcc.gnu.org 
  wrote:

 Code produced using -O2 handles dereferencing incorrectly.
 Here is a program that shows the bug:

 #include iostream
 #include vector

 class Derived : public std::vectorchar *
 {
 public:
   Derived() {}
 };

 void* foo(void* arg) {
 void* baseptr = 0;
 *(std::vectorchar* **)baseptr = (Derived *)arg;
 return baseptr;
 }

Have it do
jlong a = 0;
memcpy(a, arg, sizeof(void*));

That is the most portable way of putting a pointer value in jlong.


 void* foo2(void* arg) {
 void* baseptr = 0;
 *(std::vectorchar* **)baseptr = *(Derived **)arg;
 return baseptr;
 }

 int main()
 {
   Derived* d = new Derived();
   void* upcast = foo(d);
   void* upcast2 = foo2(d);
   std::cerr  d  ,   upcast  ,   upcast2  std::endl;
 }

 If you compile without -O2 the two values upcast and upcast2 are the
 same, as they should be.
 Using -O2 the results are different.

 The bug occurrs with both:

 g++ (GCC) 4.1.2 20070925 (Red Hat 4.1.2-27)
 g++ (Ubuntu 4.4.1-4ubuntu9) 4.4.1

 This kind of code is generated by SWIG for Java, so I can't change  
 the source.

 Curiously the bug disappears if you put a print statement before the
 assignment to baseptr.


 -- 
   Summary: optimizer dereference
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: attardi at di dot unipi dot it
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
 GCC target triplet: x86_64-unknown-linux-gnu


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



-- 


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



[Bug c++/45012] Invalid ambiguity on partial class specialization matching

2010-07-20 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2010-07-21 02:53 ---
Subject: Re:   New: Invalid ambiguity on partial class specialization matching



On Jul 20, 2010, at 7:43 PM, rodolfo at rodsoft dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 The following code doesn't compile unless variable RUNTIME is  
 defined as a
 static const int instead of an enum:


This enum value has an anonymous type which is not valid in the  
context of templates in C++03/98. It is valid in the current draft of C 
++0x though. But I cannot remember if 4.5 implements that rule for - 
std=gnu++0x (-std=c++0x).



 #include type_traits

 enum { RUNTIME = 0 };
 // it compiles with the previous line commented out and the next  
 commented in
 // static const int RUNTIME=0;

 template class T, class U, class EN=void struct foo;

 template templateint class V, int M
 struct fooVM,VM, typename std::enable_ifM==RUNTIME ||  
 M==2::type {};

 template templateint class V1, templateint class V2, int M
 struct fooV1M,V2M, typename std::enable_ifM==RUNTIME ||  
 M==2::type {};

 template int M struct bar {};

 foobar2,bar2 x;


 -- 
   Summary: Invalid ambiguity on partial class specialization
matching
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rodolfo at rodsoft dot org
 GCC build triplet: x86_64-pc-linux-gnu
  GCC host triplet: x86_64-pc-linux-gnu
 GCC target triplet: x86_64-pc-linux-gnu


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



-- 


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



[Bug c/44947] Optimizer doesn't see setjmp()

2010-07-15 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2010-07-15 09:19 ---
Subject: Re:  Optimizer doesn't see setjmp()



On Jul 15, 2010, at 2:15 AM, cm1 at mumac dot de gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #1 from cm1 at mumac dot de  2010-07-15 09:15 ---
 Sorry, I edited the contents of the precompiler output to make it  
 more readable
 and messed up the auto variable name. Please use this code:

 #include stdlib.h
 #include stdio.h
 #include setjmp.h

 #define EXC_TRY   1
 #define EXC_CATCH 2

 func()
 {
  const char *p = NULL;/*** auto variable  
 ***/


IRRC you need volatile here as defined by the c standard.


  {
jmp_buf exc_jmp_buf;
int exc_state;

if (setjmp(exc_jmp_buf) == 0) {/*** setjmp() ***/
  exc_state = EXC_TRY;
} else {
  exc_state = EXC_CATCH;
}

if (exc_state == EXC_TRY) {/*** TRY BLOCK ***/
  p = some value;
}

if (exc_state == EXC_CATCH) {  /*** CATCH BLOCK  
 ***/
  puts(p);
}
  }
 }


 -- 


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



-- 


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



[Bug libstdc++/44952] #include iostream.h imply global constructor.

2010-07-15 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-07-15 16:02 ---
Subject: Re:   New: #include iostream.h imply global constructor.

This is expected and iirc required by the c++ standard too.

On Jul 15, 2010, at 8:51 AM, hubicka at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 Noticed while reading
 http://comments.gmane.org/gmane.comp.web.chromium.devel/16789

 evans:/abuild/jh/trunk-install/bin/:[0]# more g.C
 #include iostream
 evans:/abuild/jh/trunk-install/bin/:[0]# ./g++  -O2 g.C -S
 evans:/abuild/jh/trunk-install/bin/:[0]# more g.s
.file   g.C
.text
.p2align 4,,15
.type   _GLOBAL__I_g.C, @function
 _GLOBAL__I_g.C:
 .LFB969:
.cfi_startproc
subq$8, %rsp
.cfi_def_cfa_offset 16
movl$_ZStL8__ioinit, %edi
call_ZNSt8ios_base4InitC1Ev
movl$__dso_handle, %edx
movl$_ZStL8__ioinit, %esi
movl$_ZNSt8ios_base4InitD1Ev, %edi
addq$8, %rsp
.cfi_def_cfa_offset 8
jmp __cxa_atexit
.cfi_endproc
 .LFE969:


 -- 
   Summary: #include iostream.h imply global constructor.
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hubicka at gcc dot gnu dot org


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



-- 


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



[Bug middle-end/44890] Hitting gcc_assert in build2_stat with pr30388.c testsuite test case

2010-07-09 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-07-09 14:48 ---
Subject: Re:   New: Hitting gcc_assert in build2_stat with pr30388.c testsuite
test case

Can you give the full backtrace? Where is the build2 being called from?

On Jul 9, 2010, at 7:36 AM, bergner at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 The pr30388.c test case ICE's on trunk and powerpc64-linux with the  
 following
 options: -Os -m64

 Looking at a backtrace, we're hitting this assert in  
 tree.c:build2_stat():

  if (code == POINTER_PLUS_EXPR  arg0  arg1  tt)
gcc_assert (POINTER_TYPE_P (tt)  POINTER_TYPE_P (TREE_TYPE  
 (arg0))
 INTEGRAL_TYPE_P (TREE_TYPE (arg1))
 useless_type_conversion_p (sizetype, TREE_TYPE  
 (arg1)));

 gdb shows this:

 (gdb) frame 1
 #1  0x1066de84 in build2_stat (code=POINTER_PLUS_EXPR,
 tt=0x441, arg0=0x45112e8, arg1=0x43104b0)
at /home/bergner/gcc/gcc-mainline-r161924/gcc/tree.c:3715
 3715gcc_assert (POINTER_TYPE_P (tt)  POINTER_TYPE_P  
 (TREE_TYPE
 (arg0))

 (gdb) call debug_tree(tt)
 integer_type 0x441 long unsigned int public unsigned  
 sizetype DI
size integer_cst 0x4310780 type integer_type 0x44100a8
 bit_size_type constant 64
unit size integer_cst 0x43107a8 type integer_type 0x441 
  long
 unsigned int constant 8
align 64 symtab 0 alias set -1 canonical type 0x441  
 precision 64
 min integer_cst 0x43107d0 0 max integer_cst 0x4310aa0 -1

 (gdb) call debug_tree(arg0)
 ssa_name 0x45112e8
type integer_type 0x441 long unsigned int public  
 unsigned sizetype
 DI
size integer_cst 0x4310780 constant 64
unit size integer_cst 0x43107a8 constant 8
align 64 symtab 0 alias set -1 canonical type 0x441  
 precision
 64 min integer_cst 0x43107d0 0 max integer_cst 0x4310aa0  
 -1
visited var var_decl 0x44f1fe0 D.2060def_stmt D.2060_43 =  
 ivtmp.27_37
 + D.2059_42; version 43

 (gdb) call debug_tree(arg1)
 integer_cst 0x43104b0 type integer_type 0x441 long  
 unsigned int
 constant 1


 -- 
   Summary: Hitting gcc_assert in build2_stat with pr30388.c
testsuite test case
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bergner at gcc dot gnu dot org
 GCC build triplet: powerpc64-linux
  GCC host triplet: powerpc64-linux
 GCC target triplet: powerpc64-linux


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



-- 


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



[Bug c++/44840] bug in STL iterator class

2010-07-06 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-07-06 14:40 ---
Subject: Re:   New: bug in STL iterator class



On Jul 6, 2010, at 7:21 AM, andre dot bergner dot 0 at googlemail dot  
com gcc-bugzi...@gcc.gnu.org wrote:

 This is not a compiler bug, but a bug in the STL iterator class.
 The less-than-operator does not work properly.
 The following program can reproduce the bug.

 #  include  iostream
 #  include  vector
 using namespace std;

 main() {
   vectorint  v;
   vectorint::iterator i = v.begin();
   --i;

I think the behavior is undefined because now i is not inside the  
vector at all. In fact I think doing --i on an iterator at the  
begining is undefined.

   cout  ( i - v.begin() ) endl;  // output: -1
   cout  ( i  v.begin() ) endl;  // output:  0 !!! SHOULD BE  
 1 !!!
   cout  ( i - v.begin()  0)  endl;  // output:  1  this one is  
 correct
 }


 -- 
   Summary: bug in STL iterator class
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andre dot bergner dot 0 at googlemail dot com
 GCC build triplet: -
  GCC host triplet: -
 GCC target triplet: -


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



-- 


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



[Bug c/44842] gcc should not issue warnings for code that will never be executed

2010-07-06 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-07-06 16:33 ---
Subject: Re:   New: gcc should not issue warnings for code that will never be
executed

This is a dup of a much older bug which I cannot find right now.

On Jul 6, 2010, at 8:10 AM, vincent at vinc17 dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 GCC issues warnings like division by zero or right shift count =  
 width of
 type even though the corresponding code will never be executed  
 (under a
 condition that is always false); it shouldn't do this, at least by  
 default. For
 instance:

 int tst (void)
 {
  int x;
  x = 0 ? 1 / 0 : 0;
  return x;
  if (0)
{
  x = 1 / 0;
  x = 1  128;
}
  return x;
 }

 $ gcc-snapshot -std=c99 -O2 -c tst.c
 tst.c: In function 'tst':
 tst.c:8:13: warning: division by zero [-Wdiv-by-zero]
 tst.c:9:7: warning: right shift count = width of type [enabled by  
 default]

 One can see that GCC detects neither the first return x; nor the  
 always-false
 condition, and issues spurious warnings for the lines:

  x = 1 / 0;
  x = 1  128;

 On the other hand, GCC could successfully detect that the 1 / 0 in

  x = 0 ? 1 / 0 : 0;

 would never be executed.

 Note: always-false conditions occur in practice for platform- 
 dependent code,
 e.g. by doing a test on integer types.


 -- 
   Summary: gcc should not issue warnings for code that will  
 never
be executed
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: vincent at vinc17 dot org


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



-- 


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



[Bug target/44793] Code generated references undefined symbol

2010-07-02 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2010-07-02 20:17 ---
Subject: Re:   New: Code generated references undefined symbol

These functions are part of PowerPC abi. So they should be provided by  
either libgcc or the libc.

On Jul 2, 2010, at 1:12 PM, joel at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 This was spotted on powerpc-rtems but likely impacts more targets.   
 It is
 triggered by -Os. I will attach the preprocessed file.

 powerpc-rtems4.11-gcc (GCC) 4.5.0 20100414 (RTEMS
 gcc-4.5.0-10.fc12/newlib-1.18.0-10.fc12)

 $ powerpc-rtems4.11-gcc -mcpu=603e -Os -S j.c
 $ grep _rest j.s
b _restgpr_31_x
 $ powerpc-rtems4.11-gcc -mcpu=603e -O0 -S j.c
 $ grep _rest j.s
 $ powerpc-rtems4.11-gcc -mcpu=603e -O1 -S j.c
 $ grep _rest j.s
 $ powerpc-rtems4.11-gcc -mcpu=603e -O2 -S j.c
 $ grep _rest j.s
 $


 -- 
   Summary: Code generated references undefined symbol
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: joel at gcc dot gnu dot org
  GCC host triplet: powerpc-rtems4.11


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



-- 


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



[Bug c/44741] Complex division with NaN produces unexpected result

2010-06-30 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-07-01 05:04 ---
Subject: Re:   New: Complex division with NaN produces unexpected result

I think the issue is we don't implement imagainy types so 1 + nan I  
turns into nan.

On Jun 30, 2010, at 9:51 PM, ian at airs dot com gcc-bugzi...@gcc.gnu.org 
  wrote:

 Annex G of the ISO C99 standard says that a complex value with one  
 part being
 infinity is considered an infinity, even if the other part is a  
 NaN.  It's not
 clearly stated, but presumably if neither part of the number is an  
 infinity,
 but one part is a NaN, then the number is a NaN.  And presumably if  
 a complex
 NaN is involved in a math operation, the result should be a complex  
 NaN.

 So, I would expect that dividing a complex NaN by a complex 0 would  
 give me a
 complex NaN.  However, when I run this program:


 #include stdio.h
 #include math.h
 #include complex.h

 __complex float
 div (__complex float f1, __complex float f2)
 {
  return f1 / f2;
 }

 int
 main ()
 {
  __complex float f;

  f = div (NAN + NAN * I, 0);
  printf (%g+%g*i\n, creal (f), cimag (f));
  f = div (1.0 + NAN * I, 0);
  printf (%g+%g*i\n, creal (f), cimag (f));
  f = div (NAN + 1.0 * I, 0);
  printf (%g+%g*i\n, creal (f), cimag (f));
 }

 with current mainline, it prints

 nan+nan*i
 nan+nan*i
 nan+inf*i

 That last answer seems incorrect according to the rules of Annex G.   
 It is an
 infinity when it should be a NaN.


 -- 
   Summary: Complex division with NaN produces unexpected  
 result
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ian at airs dot com


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



-- 


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



[Bug c/44715] Break in increment expression of for statement inconsistent with g++

2010-06-29 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2010-06-29 16:40 ---
Subject: Re:   New: Break in increment expression of for statement
inconsistent with g++

What does a break with a statement expression do for each frontend? Is  
it even valid to have a break there(without a statement expression)?
If it is valid, what does each standard say about the break there? If  
they say the same thing then I say both frontends should behave the  
same but if the c standard says a break should apply to the outer one  
then we should follow that for statement expressions also.

On Jun 29, 2010, at 9:20 AM, doug dot gregor at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 The following program exhibits different behavior with gcc vs. g++:

 dgregor$ cat t.c
 #include stdio.h

 int main()
 {
  int i;
  for( i = 0; i  3; )
for( ; ; ({ i++; break; }) )
  printf( %d\n, i );
 }

 With gcc, the break in the statement expression applies to the outer  
 for
 loop, so we get just 0 as output:

 dgregor$ gcc t.c  ./a.out
 0

 with g++, the break in the statement expression applies to the inner  
 for
 loop, so we get 0 1 and 2 as the output:

 dgregor$ g++ t.c  ./a.out
 0
 1
 2

 g++ seems to have the right behavior here, and in any case g++ can't  
 really be
 changed now: Qt's foreach macro depends on having break bind to  
 the inner for
 loop.


 -- 
   Summary: Break in increment expression of for statement
inconsistent with g++
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: doug dot gregor at gmail dot com


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



-- 


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



[Bug libstdc++/44663] missed GXX_EXPERIMENTAL guards in tr1/tuple?

2010-06-25 Thread pinskia at gmail dot com


--- Comment #4 from pinskia at gmail dot com  2010-06-25 14:18 ---
Subject: Re:   New: missed GXX_EXPERIMENTAL guards in tr1/tuple?



On Jun 25, 2010, at 3:49 AM, pluto at agmk dot net gcc-bugzi...@gcc.gnu.org 
  wrote:

 hi,

 the latest llvm/clang++ reports an error during parsing tr1/tuple
 included from tr1/functional:

Both of these are c++0x only headers and really are only supported  
when compiling in c++0x mode.



 In file included from t00.cpp:1:
 In file included from /usr/include/c++/4.5.0/tr1/functional:39:
 /usr/include/c++/4.5.0/tr1/tuple:68:30: error: variadic templates  
 are only
 allowed in C++0x
  templateint _Idx, typename... _Elements

 afaics there's no #ifdef __GXX_EXPERIMENTAL... guards but...

 http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.200x

 (...)
 In this implementation -std=gnu++0x or -std=c++0x flags must be used
 to enable language and library features. The pre-defined symbol
 __GXX_EXPERIMENTAL_CXX0X__ is used to check for the presence of
 the required flag.
 (...)


 -- 
   Summary: missed GXX_EXPERIMENTAL guards in tr1/tuple?
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pluto at agmk dot net
  GCC host triplet: x86_64-gnu-linux


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



-- 


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



[Bug fortran/44636] the -i4 option is not supported anymore in 4.4

2010-06-22 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-06-22 16:34 ---
Subject: Re:   New: the -i4 option is not supported anymore in 4.4

They were replaced with -fdefualt-integer-4/8.

On Jun 22, 2010, at 8:49 AM, doko at ubuntu dot com gcc-bugzi...@gcc.gnu.org 
  wrote:

 [forwarded from http://bugs.debian.org/582085]

 gfortran-4.4 does not support anymore the -i4 option, while  
 gfortran-4.3 does.
 This is necessary for me to compile gildas (see
 http://www.iram.fr/~gildas/dist/index.html).

 Is there any specific reason why support for this flag was dropped  
 from 4.4 ?

 Looking at the code, f951 doesn't know anything about a -i4/-i8  
 option, however
 in 4.3 this option wasn't passed to f951, but in 4.4 and newer it is.

 I assmume this report can be closed as invalid, but I did want to  
 document it,
 that gfortran isn't supposed to handle -i4/-i8


 -- 
   Summary: the -i4 option is not supported anymore in 4.4
   Product: gcc
   Version: 4.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: doko at ubuntu dot com


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



-- 


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



[Bug c++/44328] switch/case optimization produces an invalid lookup table index

2010-06-17 Thread pinskia at gmail dot com


--- Comment #8 from pinskia at gmail dot com  2010-06-17 09:37 ---
Subject: Re:  switch/case optimization produces an invalid lookup table index

I bet it could be reproduced on any target with -fshort-enums.

On Jun 17, 2010, at 2:20 AM, eblot dot ml at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #6 from eblot dot ml at gmail dot com  2010-06-17  
 09:20 ---
 (In reply to comment #5)
 Unfortunately I don't see this happening on the x86_64-linux -
 arm-linux-gnueabi cross compiler I built for myself.  The generated
 assembly has all four elements in the initialization of CSWTCH.2 and
 the intermediate tree dumps from the cross compiler are not really
 different from the ones from a native x86_64 compiler.

 I think this might be due to the ABI differences between the  
 official ARM ABI
 (AAPCS) and the Linux variant, which is slightly different.

 I'd bet the way the enumerations are handled (variable size with  
 AAPCS, fixed,
 integer-native size with ARM Linux) is the 'culprit' here.

 See http://www.codesourcery.com/sgpp/lite/arm/arm_gnu_linux_abi.pdf

 The enumeration used in this bug report is coded as a byte with  
 AAPCS, whereas
 it should be coded as a 32-bit value with Linux ARM ABI. This might  
 explain why
 you cannot reproduce the issue with a Linux-target cross-compiler.


 -- 


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



-- 


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



[Bug c++/44559] you can't use a typedef from a typename scope in a template

2010-06-16 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-06-16 17:04 ---
Subject: Re:   New: you can't use a typedef from a typename scope in a template



On Jun 16, 2010, at 9:57 AM, gcc at razorcam dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 You can't use a typedef from a typename scope in a template
 This is obviously a major bug and it means you can't access the  
 typedefs of the
 ISO standard library containers in order to use safe types to  
 manipulate those
 containers, when typename is such a container.

 Here is the output of the command g++ bug_report_typedef.cc
 bug_report_typedef.cc: In function ‘void f(T)’:
 bug_report_typedef.cc:3: error: expected ‘;’ before ‘i’
 g++ -v follows the source code of bug_report_typedef.cc

 template typename T
 void f(T t){
T::type i;

You are missing the keyword typename. The standard requires this  
keyword on dependent names because it could be either a variable or a  
type. The standard assumes a variable name without the keyword.

 }

 g++ -v bug_report_typedef.cc
 Using built-in specs.
 Target: x86_64-linux-gnu
 Configured with: ../src/configure -v --with-pkgversion='Debian  
 4.4.4-3'
 --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
 --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable- 
 shared
 --enable-multiarch --enable-linker-build-id --with-system-zlib
 --libexecdir=/usr/lib --without-included-gettext --enable- 
 threads=posix
 --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 -- 
 enable-nls
 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
 --with-arch-32=i486 --with-tune=generic --enable-checking=release
 --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64- 
 linux-gnu
 Thread model: posix
 gcc version 4.4.4 (Debian 4.4.4-3)
 COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic'
 /usr/lib/gcc/x86_64-linux-gnu/4.4.4/cc1plus -quiet -v -D_GNU_SOURCE
 bug_report_typedef.cc -quiet -dumpbase bug_report_typedef.cc - 
 mtune=generic
 -auxbase bug_report_typedef -version -o /tmp/ccgt4Dk8.s
 GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu)
compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR  
 version
 2.4.2-p1.
 GGC heuristics: --param ggc-min-expand=57 --param ggc-min- 
 heapsize=51739
 ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu
 ignoring nonexistent directory
 /usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../x86_64-linux-gnu/ 
 include
 ignoring nonexistent directory /usr/include/x86_64-linux-gnu
 #include ... search starts here:
 #include ... search starts here:
 /usr/include/c++/4.4
 /usr/include/c++/4.4/x86_64-linux-gnu
 /usr/include/c++/4.4/backward
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include
 /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include-fixed
 /usr/include
 End of search list.
 GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu)
compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR  
 version
 2.4.2-p1.
 GGC heuristics: --param ggc-min-expand=57 --param ggc-min- 
 heapsize=51739
 Compiler executable checksum: a92c574e76687c18572fdbea97434cec
 bug_report_typedef.cc: In function ‘void f(T)’:
 bug_report_typedef.cc:3: error: expected ‘;’ before ‘i’


 -- 
   Summary: you can't use a typedef from a typename scope in a
template
   Product: gcc
   Version: 4.4.4
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc at razorcam dot com


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



-- 


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



[Bug middle-end/44530] wrong code due to branch optimization

2010-06-13 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2010-06-13 21:58 ---
Subject: Re:   New: wrong code due to branch optimization



Sent from my iPhone

On Jun 13, 2010, at 2:34 PM, Daniel dot Davies at xerox dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 When compiled with -03, the attached file prints out an error  
 message due to
 incorrectly comparing xCount + 32  0x8000.  When compiled  
 with the
 default optimization, it prints out the correct message.


It sounds like the addition is overflowing and signed integer overflow  
is undefined. Use either -fwrapv or -fno-strict-overflow.


 $ gcc -v -save-temps -std=gnu99 -fno-strict-aliasing -funroll-loops
 -march=core2 -mfpmath=387 -ffloat-store -pedantic -Wall -W -Wstrict- 
 prototypes
 -Wpointer-arith -Wwrite-strings -Wcast-qual -Wmissing-prototypes -fPIC
 gcc450CompareBug.c
 Using built-in specs.
 COLLECT_GCC=gcc
 COLLECT_LTO_WRAPPER=/tool/gcc/4.5.0/i386-pc-solaris2.10/libexec/gcc/ 
 i386-pc-solaris2.10/4.5.0/lto-wrapper
 Target: i386-pc-solaris2.10
 Configured with: /tool/gcc/4.5.0/gcc-4.5.0/configure
 --prefix=/tool/gcc/4.5.0/i386-pc-solaris2.10 --with-gnu-as --with- 
 gnu-ld
 --disable-shared --enable-lto --with-libelf=/usr/local --enable-gold
 Thread model: posix
 gcc version 4.5.0 (GCC)
 COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=gnu99' '-fno-strict- 
 aliasing'
 '-funroll-loops' '-march=core2' '-mfpmath=387' '-ffloat-store' '- 
 pedantic'
 '-Wall' '-W' '-Wstrict-prototypes' '-Wpointer-arith' '-Wwrite-strings'
 '-Wcast-qual' '-Wmissing-prototypes' '-fPIC'
 /tool/gcc/4.5.0/i386-pc-solaris2.10/libexec/gcc/i386-pc- 
 solaris2.10/4.5.0/cc1
 -E -quiet -v gcc450CompareBug.c -march=core2 -mfpmath=387 -std=gnu99  
 -pedantic
 -Wall -W -Wstrict-prototypes -Wpointer-arith -Wwrite-strings -Wcast- 
 qual
 -Wmissing-prototypes -fno-strict-aliasing -funroll-loops -ffloat- 
 store -fPIC
 -fpch-preprocess -o gcc450CompareBug.i
 ignoring nonexistent directory
 /tool/gcc/4.5.0/i386-pc-solaris2.10/lib/gcc/i386-pc- 
 solaris2.10/4.5.0/../../../../i386-pc-solaris2.10/include
 #include ... search starts here:
 #include ... search starts here:
 /usr/local/include
 /tool/gcc/4.5.0/i386-pc-solaris2.10/include
 /tool/gcc/4.5.0/i386-pc-solaris2.10/lib/gcc/i386-pc- 
 solaris2.10/4.5.0/include

 /tool/gcc/4.5.0/i386-pc-solaris2.10/lib/gcc/i386-pc- 
 solaris2.10/4.5.0/include-fixed
 /usr/include
 End of search list.
 COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=gnu99' '-fno-strict- 
 aliasing'
 '-funroll-loops' '-march=core2' '-mfpmath=387' '-ffloat-store' '- 
 pedantic'
 '-Wall' '-W' '-Wstrict-prototypes' '-Wpointer-arith' '-Wwrite-strings'
 '-Wcast-qual' '-Wmissing-prototypes' '-fPIC'
 /tool/gcc/4.5.0/i386-pc-solaris2.10/libexec/gcc/i386-pc- 
 solaris2.10/4.5.0/cc1
 -fpreprocessed gcc450CompareBug.i -quiet -dumpbase gcc450CompareBug.c
 -march=core2 -mfpmath=387 -auxbase gcc450CompareBug -pedantic -Wall -W
 -Wstrict-prototypes -Wpointer-arith -Wwrite-strings -Wcast-qual
 -Wmissing-prototypes -std=gnu99 -version -fno-strict-aliasing - 
 funroll-loops
 -ffloat-store -fPIC -o gcc450CompareBug.s
 GNU C (GCC) version 4.5.0 (i386-pc-solaris2.10)
compiled by GNU C version 4.5.0, GMP version 4.3.2, MPFR  
 version 2.4.2,
 MPC version 0.8.2
 GGC heuristics: --param ggc-min-expand=100 --param ggc-min- 
 heapsize=131072
 GNU C (GCC) version 4.5.0 (i386-pc-solaris2.10)
compiled by GNU C version 4.5.0, GMP version 4.3.2, MPFR  
 version 2.4.2,
 MPC version 0.8.2
 GGC heuristics: --param ggc-min-expand=100 --param ggc-min- 
 heapsize=131072
 Compiler executable checksum: cf0046f5352e75464cfcf0489db9539c
 COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=gnu99' '-fno-strict- 
 aliasing'
 '-funroll-loops' '-march=core2' '-mfpmath=387' '-ffloat-store' '- 
 pedantic'
 '-Wall' '-W' '-Wstrict-prototypes' '-Wpointer-arith' '-Wwrite-strings'
 '-Wcast-qual' '-Wmissing-prototypes' '-fPIC'

 /tool/gcc/4.5.0/i386-pc-solaris2.10/lib/gcc/i386-pc- 
 solaris2.10/4.5.0/../../../../i386-pc-solaris2.10/bin/as
 -v -V -Qy -s -o gcc450CompareBug.o gcc450CompareBug.s
 GNU assembler version 2.20 (i386-pc-solaris2.10) using BFD version  
 (GNU
 Binutils) 2.20
 COMPILER_PATH=/tool/gcc/4.5.0/i386-pc-solaris2.10/libexec/gcc/i386- 
 pc-solaris2.10/4.5.0/:/tool/gcc/4.5.0/i386-pc-solaris2.10/libexec/ 
 gcc/i386-pc-solaris2.10/4.5.0/:/tool/gcc/4.5.0/i386-pc-solaris2.10/ 
 libexec/gcc/i386-pc-solaris2.10/:/tool/gcc/4.5.0/i386-pc-solaris2.10/ 
 lib/gcc/i386-pc-solaris2.10/4.5.0/:/tool/gcc/4.5.0/i386-pc- 
 solaris2.10/lib/gcc/i386-pc-solaris2.10/:/tool/gcc/4.5.0/i386-pc- 
 solaris2.10/lib/gcc/i386-pc-solaris2.10/4.5.0/../../../../i386-pc- 
 solaris2.10/bin/:/usr/ccs/bin/
 LIBRARY_PATH=/tool/gcc/4.5.0/i386-pc-solaris2.10/lib/gcc/i386-pc- 
 solaris2.10/4.5.0/:/tool/gcc/4.5.0/i386-pc-solaris2.10/lib/gcc/i386- 
 pc-solaris2.10/4.5.0/../../../../i386-pc-solaris2.10/lib/:/tool/gcc/ 
 4.5.0/i386-pc-solaris2.10/lib/gcc/i386-pc- 
 solaris2.10/4.5.0/../../../:/lib/:/usr/lib/
 COLLECT_GCC_OPTIONS='-v' '-save

[Bug libstdc++/44461] __cxa_end_cleanup ends up in wrong section i.e. not in .text

2010-06-07 Thread pinskia at gmail dot com


--- Comment #4 from pinskia at gmail dot com  2010-06-08 05:11 ---
Subject: Re:  __cxa_end_cleanup ends up in wrong section i.e. not in .text

Well this code will only be compiled for arm-eabi which is an elf only  
target. Please submit your patch to gcc-patc...@.

Sent from my iPhone

On Jun 7, 2010, at 9:53 PM, raj dot khem at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #3 from raj dot khem at gmail dot com  2010-06-08  
 04:53 ---
 (In reply to comment #2)
 Confirmed, it should do a .text and then a previous.  I have closed  
 a bug where
 an inline-asm was not doing this too (see PR 35895).


 another version I had was with pushsection and popsection but then I  
 read that
 these directives are ELF specific I thought not to use  
 them .previous is also
 stated ELF specific in GAS manual. if its ok I can redo it with
 pushsection/popsection


 -- 


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



-- 


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



[Bug c++/44399] Problem with command line arguments in windows

2010-06-03 Thread pinskia at gmail dot com


--- Comment #5 from pinskia at gmail dot com  2010-06-03 13:48 ---
Subject: Re:   New: Problem with command line arguments in windows



Sent from my iPhone

On Jun 3, 2010, at 5:15 AM, alexandrfedorov at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 I'm trying to write windows console application working with  
 directories, and i
 discover that arguments processed not right. For example:

 #include iostream
 int main ( int argc, char *argv[], char *envp[] ) {
 std::cout  you have   argc   arguments;
 }

 resulting:

 a.exe a a
 you have 2 arguments

This is correct because the first argument is a.exe.


 a.exe a a a
 you have 3 arguments
 a.exe a a\ a
 you have 2 arguments

 As i understand, backslash is escaping double quote and we have [a  
 a a]
 argument instead of [a a\],[a].
 It's very sad, because i must operate with directories or UNC paths  
 like:
 \\serv\share\some dir with spaces\ where double quotes is required  
 and
 backslash can be present.

 Quoting long file paths with double quotes and backslashes in paths  
 is a common
 thing in windows console programs.


 -- 
   Summary: Problem with command line arguments in windows
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: alexandrfedorov at gmail dot com


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



-- 


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



[Bug debug/44375] goto_locus lost at -O0 during cfg cleanup

2010-06-02 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2010-06-02 13:33 ---
Subject: Re:   New: goto_locus lost at -O0 during cfg cleanup

I think this is a dup of a much older bug.

Sent from my iPhone

On Jun 2, 2010, at 3:30 AM, jakub at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 As mentioned in
 http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00115.html
 for -O0 we sometimes, e.g. for return without value or for C++ NRV  
 optimized
 return don't emit any insns with the location of the return stmt,  
 which results
 in worse debug experience.


 -- 
   Summary: goto_locus lost at -O0 during cfg cleanup
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org


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



-- 


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



[Bug target/44290] [4.5 Regression] arm linux kernel crahes when built with -fipa-sra, __naked attribute is broken

2010-05-29 Thread pinskia at gmail dot com


--- Comment #12 from pinskia at gmail dot com  2010-05-29 13:30 ---
Subject: Re:  [4.5 Regression] arm linux kernel crahes when built with
-fipa-sra, __naked attribute is broken

The naked attribute should cause two things noinline and noclone.

Sent from my iPhone

On May 29, 2010, at 4:50 AM, rguenth at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #11 from rguenth at gcc dot gnu dot org  2010-05-29  
 11:50 ---
 (it seems quite stupid to have naked functions with only an asm  
 inside in the
 first place - you can equally well use plain assembly)


 -- 


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



-- 


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



[Bug rtl-optimization/44323] IRA/reload moves asm statement

2010-05-29 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-05-29 15:39 ---
Subject: Re:   New: IRA/reload moves asm statement

I don't think this is valid. You cannot depend on where the spill will  
happen around a function call. It is spilling to save the volatile  
register. With -O, we don't use volatile registers to keep variables  
across functions. While at -O2 we do so it saves it right before the  
function call.

Sent from my iPhone

On May 29, 2010, at 8:25 AM, hjl dot tools at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 On Linux/x86-64, IRA/reload moves asm statement by
 adding movss at -O2:

 [...@gnu-6 vzeroupper-1]$ cat foo.c
 extern void bar2 (void);
 float
 foo (float y)
 {
  asm volatile (nop);
  bar2 ();
  return y;
 }
 [...@gnu-6 vzeroupper-1]$ gcc -S -O foo.c
 [...@gnu-6 vzeroupper-1]$ cat foo.s
.file   foo.c
.text
 .globl foo
.type   foo, @function
 foo:
 .LFB0:
.cfi_startproc
subq$24, %rsp
.cfi_def_cfa_offset 32
movss   %xmm0, 12(%rsp)
 #APP
 # 5 foo.c 1
nop
 # 0  2
 #NO_APP
callbar2
movss   12(%rsp), %xmm0
addq$24, %rsp
.cfi_def_cfa_offset 8
ret
.cfi_endproc
 .LFE0:
.size   foo, .-foo
.ident  GCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4)
.section.note.GNU-stack,,@progbits
 [...@gnu-6 vzeroupper-1]$ gcc -S -O2 foo.c
 [...@gnu-6 vzeroupper-1]$ cat foo.s
.file   foo.c
.text
.p2align 4,,15
 .globl foo
.type   foo, @function
 foo:
 .LFB0:
.cfi_startproc
subq$24, %rsp
.cfi_def_cfa_offset 32
 #APP
 # 5 foo.c 1
nop
 # 0  2
 #NO_APP
movss   %xmm0, (%rsp)
callbar2
movss   (%rsp), %xmm0
addq$24, %rsp
.cfi_def_cfa_offset 8
ret
.cfi_endproc
 .LFE0:
.size   foo, .-foo
.ident  GCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4)
.section.note.GNU-stack,,@progbits
 [...@gnu-6 vzeroupper-1]$


 -- 
   Summary: IRA/reload moves asm statement
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


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



-- 


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



[Bug target/44222] [4.6 regression] Revision 159621 caused new x86 test failures

2010-05-20 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-05-21 01:52 ---
Subject: Re:   New: [4.6 regression] Revision 159621 caused new x86 test
failures

This is the same problem as the other sse testcases.

Sent from my iPhone

On May 20, 2010, at 6:34 PM, hjl dot tools at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 On Linux/x86, revision 159621:

 http://gcc.gnu.org/ml/gcc-cvs/2010-05/msg00674.html

 caused

 FAIL: gcc.target/i386/3dnow-1.c (internal compiler error)
 FAIL: gcc.target/i386/3dnow-1.c (test for excess errors)
 FAIL: gcc.target/i386/3dnow-2.c (internal compiler error)
 FAIL: gcc.target/i386/3dnow-2.c (test for excess errors)
 FAIL: gcc.target/i386/3dnowA-1.c (internal compiler error)
 FAIL: gcc.target/i386/3dnowA-1.c (test for excess errors)
 FAIL: gcc.target/i386/3dnowA-2.c (internal compiler error)
 FAIL: gcc.target/i386/3dnowA-2.c (test for excess errors)
 FAIL: gcc.target/i386/pr42549.c (internal compiler error)
 FAIL: gcc.target/i386/pr42549.c (test for excess errors)


 -- 
   Summary: [4.6 regression] Revision 159621 caused new x86  
 test
failures
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


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



-- 


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



[Bug c++/44186] Wrong code generated with -O2 and above

2010-05-17 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-05-18 03:50 ---
Subject: Re:   New: Wrong code generated with -O2 and above



Sent from my iPhone

On May 17, 2010, at 8:37 PM, eyakubovich at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 This is a stripped down code from proposed Boost.Move library.  
 Asserts don't
 fire with -O0 and -O1 but do with -O2 and -O3

 #include assert.h

 template class T
 class rv : public T
 {
   rv();
   ~rv();
   rv(rv const);
   void operator=(rv const);
 };

 template class T
 rvT move(T x)
 {
   return *static_castrvT* (x);
 }

 //A movable class
 class movable
 {
   movable(movable );
   movable operator=(movable);
 public:
   operator rvmovable()
   {  return *reinterpret_cast rvmovable* (this);  }
   operator const rvmovable() const
   {  return *reinterpret_castconst rvmovable* (this);  }

 private:
   int value_;

 public:
   movable() : value_(1){}

   //Move constructor and assignment
   movable(rvmovable m)
   {  value_ = m.value_;   m.value_ = 0;  }

   movable  operator=(rvmovable m)
   {  value_ = m.value_;   m.value_ = 0;  return *this;  }

   bool moved() const //Observer
   {  return value_ == 0; }
 };

 movable function(movable m)
 {
   return movable(move(m));
 }

 int main()
 {
   {
  movable m;
  movable m2(move(m));

The above code cause aliasing violations because you acess a movable  
object via a rvmovable (from now on just refered to as rv for short)  
one. So you have a type rv who's base type is movable. note both rv  
and movable are non pods which I think removes the case for upcasting  
and then accessing the first member.


  assert(m.moved());
  assert(!m2.moved());
   }

   {
  movable m;
  movable m3(function(movable(move(m;
  assert(m.moved());
  assert(!m3.moved());
   }

   {
  movable m;
  movable m4(function(move(m)));
  assert(m.moved());
  assert(!m4.moved());
   }

   return 0;
 }


 -- 
   Summary: Wrong code generated with -O2 and above
   Product: gcc
   Version: 4.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: eyakubovich at gmail dot com


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



-- 


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



[Bug middle-end/44134] Unneeded +0.0 for c = 0.0 ; c = c+ a*b

2010-05-14 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2010-05-14 13:10 ---
Subject: Re:   New: Unneeded +0.0 for c = 0.0 ; c = c+ a*b



Sent from my iPhone

On May 14, 2010, at 2:18 AM, tkoenig at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 This code leads to the adding of 0.0, which is a nop.  Any
 signalling should have been done previously.

It is not signalling that matters here but signed zero. 0.0 + -0.0 ==  
0.0. So without the 0.0 +, you can get a negative zero.



 i...@linux-fd1f:/tmp cat mult.f90
 subroutine foo(a,b,c)
  real, intent(in) :: a,b
  real, intent(out) :: c
  c = 0.0
  c = c + a*b
 end subroutine foo
 i...@linux-fd1f:/tmp gfortran -O3 -fdump-tree-optimized -S mult.f90
 i...@linux-fd1f:/tmp cat mult.f90.142t.optimized

 ;; Function foo (foo_)

 foo (real(kind=4)  restrict a, real(kind=4)  restrict b, real 
 (kind=4) 
 restrict c)
 {
  real(kind=4) D.1542;
  real(kind=4) D.1541;
  real(kind=4) D.1540;
  real(kind=4) D.1539;

 bb 2:
  D.1539_4 = *a_3(D);
  D.1540_6 = *b_5(D);
  D.1541_7 = D.1539_4 * D.1540_6;
  D.1542_8 = D.1541_7 + 0.0;
  *c_1(D) = D.1542_8;
  return;

 }

 i...@linux-fd1f:/tmp cat mult.s
.file   mult.f90
.text
.p2align 4,,15
 .globl foo_
.type   foo_, @function
 foo_:
 .LFB0:
movss   (%rdi), %xmm0
mulss   (%rsi), %xmm0
addss   .LC0(%rip), %xmm0
movss   %xmm0, (%rdx)
ret
 .LFE0:
.size   foo_, .-foo_
.section.rodata.cst4,aM,@progbits,4
.align 4
 .LC0:
.long   0
.section.eh_frame,a,@progbits
 .Lframe1:
.long   .LECIE1-.LSCIE1
 .LSCIE1:
.long   0
.byte   0x1
.string zR
.uleb128 0x1
.sleb128 -8
.byte   0x10
.uleb128 0x1
.byte   0x3
.byte   0xc
.uleb128 0x7
.uleb128 0x8
.byte   0x90
.uleb128 0x1
.align 8
 .LECIE1:
 .LSFDE1:
.long   .LEFDE1-.LASFDE1
 .LASFDE1:
.long   .LASFDE1-.Lframe1
.long   .LFB0
.long   .LFE0-.LFB0
.uleb128 0
.align 8
 .LEFDE1:
.ident  GCC: (GNU) 4.6.0 20100513 (experimental)
.section.note.GNU-stack,,@progbits


 -- 
   Summary: Unneeded +0.0 for c = 0.0 ; c = c+ a*b
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tkoenig at gcc dot gnu dot org


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



-- 


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



[Bug c/43930] gcc handle short overflow failed

2010-04-28 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-04-29 02:23 ---
Subject: Re:   New: gcc handle short overflow failed



Sent from my iPhone

On Apr 28, 2010, at 6:58 PM, cnstar9988 at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 #include string.h
 #include stdio.h

 int main(int argc, char **argv)
 {
  short i = 1;
  int n = (int)(i  16);

  fprintf(stderr, %d\n, n);

  return 0;
 }

 always 65536
 it must to 0



No because short is promoted to int.


 -- 
   Summary: gcc handle short overflow failed
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: cnstar9988 at gmail dot com


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



-- 


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



[Bug c++/43881] warning attached to a function is emitted even though the function is not being called

2010-04-24 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2010-04-24 23:12 ---
Subject: Re:   New: warning attached to a function is emitted even though the
function is not being called

It is called directly because safe_close's value is replaced in the  
indirect call. Since safe_close is static and not changed in the code  
at all, it is marked as read only and the initialized value can be  
used directly.

Sent from my iPhone

On Apr 24, 2010, at 3:49 PM, bruno at clisp dot org gcc-bugzi...@gcc.gnu.org 
  wrote:

 The gcc documentation, section Declaring Attributes of Functions,  
 states
 about the __attribute__ ((__warning__ (...))) of a function:
 If this attribute is used on a function declaration and a call to
 such a function is not eliminated through dead code elimination or
 other optimizations, a warning which will include MESSAGE will be
 diagnosed.

 Here is a case where the warning is diagnosed although the program  
 contains
 no direct call to the function:
 === main.cc ===
 extern C int close(int);
 static int (*safe_close) (int fd) = close;
 extern __typeof__ (close) close __attribute__ ((__warning__ (The  
 symbol close
 refers to the system function. Use safe_close instead.)));
 int fd;
 int main()
 {
  safe_close(fd);
 }
 ===
 $ g++ -S -O main.cc
 main.cc: In function 'int main()':
 main.cc:7:17: warning: call to 'close' declared with attribute  
 warning: The
 symbol close refers to the system function. Use safe_close instead.

 The warning is not justified, because its only use is as initializer
 of the variable 'safe_close', and at that moment, the warning is not  
 yet
 attached to it.

 Notes:
  - The warning occurs only with optimization, not with -O0.
  - The warning occurs only if the variable 'safe_close' is 'static',  
 not
when it is changed to a global variable.
  - The behaviour of GCC 4.3.4 and GCC 4.4.3 is the same as the one  
 of GCC
 4.5.0.


 -- 
   Summary: warning attached to a function is emitted even  
 though
the function is not being called
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bruno at clisp dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
 GCC target triplet: i686-pc-linux-gnu


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



-- 


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



[Bug middle-end/43861] -Os creates larger binaries than before in some cases (-falign-... options enabled)

2010-04-22 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-04-22 23:51 ---
Subject: Re:   New: -Os creates larger binaries than before in some cases
(-falign-... options enabled)

Which target is this for?

Sent from my iPhone

On Apr 22, 2010, at 4:48 PM, rwahl at gmx dot de gcc-bugzi...@gcc.gnu.org 
  wrote:

 Hi,

 I just noticed that some of my libraries are greater when compiled  
 with gcc
 4.4.3 instead of gcc 4.3.2. Diffing the output of gcc -- 
 help=optimizers -Q
 -Os shows this in 4.3.2:

  -falign-jumps[disabled]
  -falign-labels   [disabled]
  -falign-loops[enabled]

 and this for 4.4.3:

  -falign-functions [enabled]
  -falign-jumps [enabled]
  -falign-labels[enabled]
  -falign-loops [disabled]

 when explicitely disabling the alignment options then the code size  
 shrinks.
 For libxml2 in my case from 704256 to 675584 bytes.

 The manual says:

  -Os disables the following optimization flags: -falign-functions
   -falign-jumps  -falign-loops -falign-labels  -freorder- 
 blocks
   -freorder-blocks-and-partition -fprefetch-loop-arrays
   -ftree-vect-loop-version

 which is not true (even not for 4.3.2 since loop alignment was  
 enabled). Some
 other opts like -freorder-blocks is enabled as well.

 So is this actually a bug or is the documentation outdated or even  
 both?


 -- 
   Summary: -Os creates larger binaries than before in some  
 cases (-
falign-... options enabled)
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rwahl at gmx dot de


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



-- 


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



[Bug bootstrap/43819] Bootstrapping GCC 4.5.0 fails with cannot compute suffix of object files: cannot compile

2010-04-20 Thread pinskia at gmail dot com


--- Comment #5 from pinskia at gmail dot com  2010-04-20 16:38 ---
Subject: Re:  Bootstrapping GCC 4.5.0 fails with cannot compute suffix of
object files: cannot compile



Sent from my iPhone

On Apr 20, 2010, at 8:42 AM, florin at iucha dot net
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #2 from florin at iucha dot net  2010-04-20 15:42  
 ---
 The 'missing' library is in fact present:


Yes it is present but that directory is not looked at during the  
runtime, use either LD_LIBRARY_PATH or edit /etc/ld.so.conf and run  
ldconf.


 $ ls -l /usr/local.296/lib/
 total 4260
 -rw-r--r--1 root root  1726470 Apr 20 15:00 libelf.a
 lrwxrwxrwx1 root root   16 Apr 20 15:00 libelf.so -
 libelf.so.0.8.12
 lrwxrwxrwx1 root root   16 Apr 20 15:00 libelf.so.0 -
 libelf.so.0.8.12
 -rwxr-xr-x1 root root   287786 Apr 20 15:00 libelf.so. 
 0.8.12
 -rw-r--r--1 root root   774602 Apr 19 23:49 libgmp.a
 -rwxr-xr-x1 root root  921 Apr 19 23:49 libgmp.la
 lrwxrwxrwx1 root root   16 Apr 19 23:49 libgmp.so -
 libgmp.so.10.0.1
 lrwxrwxrwx1 root root   16 Apr 19 23:49 libgmp.so.10  
 -
 libgmp.so.10.0.1
 -rwxr-xr-x1 root root   417082 Apr 19 23:49 libgmp.so. 
 10.0.1
 -rw-r--r--1 root root   135776 Apr 19 23:57 libmpc.a
 -rwxr-xr-x1 root root 1012 Apr 19 23:57 libmpc.la
 lrwxrwxrwx1 root root   15 Apr 19 23:57 libmpc.so -
 libmpc.so.2.0.0
 lrwxrwxrwx1 root root   15 Apr 19 23:57 libmpc.so.2 -
 libmpc.so.2.0.0
 -rwxr-xr-x1 root root82707 Apr 19 23:57 libmpc.so. 
 2.0.0
 -rw-r--r--1 root root   545650 Apr 19 23:55 libmpfr.a
 -rwxr-xr-x1 root root  989 Apr 19 23:55 libmpfr.la
 lrwxrwxrwx1 root root   16 Apr 19 23:55 libmpfr.so -
 libmpfr.so.1.2.2
 lrwxrwxrwx1 root root   16 Apr 19 23:55 libmpfr.so.1  
 -
 libmpfr.so.1.2.2
 -rwxr-xr-x1 root root   317404 Apr 19 23:55 libmpfr.so. 
 1.2.2
 drwxr-xr-x3 root root 4096 Apr 20 15:00 locale
 drwxr-xr-x2 root root 4096 Apr 20 15:00 pkgconfig
 $ ldd /usr/local.296/lib/libmpc.so.2
libmpfr.so.1 = /usr/local.296/lib/libmpfr.so.1 (0x40011000)
libgmp.so.10 = /usr/local.296/lib/libgmp.so.10 (0x40055000)
libc.so.6 = /lib/i686/libc.so.6 (0x4200)
/lib/ld-linux.so.2 = /lib/ld-linux.so.2 (0x8000)


 -- 

 florin at iucha dot net changed:

   What|Removed |Added
 --- 
 --- 
 --
 CC||florin at iucha dot  
 net


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



-- 


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



[Bug c/43782] Erroneous expansion of __asm__() directive

2010-04-19 Thread pinskia at gmail dot com


--- Comment #6 from pinskia at gmail dot com  2010-04-19 15:07 ---
Subject: Re:  Erroneous expansion of __asm__() directive



Sent from my iPhone

On Apr 19, 2010, at 7:35 AM, Nelson H. F. Beebe  
be...@math.utah.edu wrote:

 That is wrong because with ATT style x86 asm, the src is first  
 and the dest is
 second.

 That cannot be the case: you cannot change the operand order after  
 three
 years of it working one way!

It did not change. Just what happened was gcc is now inlining the  
function. Before it was not inlining the function which allowed the  
inline-asm's two operands to be the same (the argument to the function  
and the return value are done in the same register). Which means you  
were just getting lucky that it worked. In fact ATT asm has always  
been that way; while intel style asm is the opposite. Gcc outputs ATT  
by default, though you can change it via an option.



 --- 
 --- 
 --- 
 --
 - Nelson H. F. BeebeTel: +1 801 581  
 5254  -
 - University of UtahFAX: +1 801 581  
 4148  -
 - Department of Mathematics, 110 LCBInternet e-mail: be...@math.utah.edu 
   -
 - 155 S 1400 E RM 233   be...@acm.org  be...@computer.org 
  -
 - Salt Lake City, UT 84112-0090, USAURL: http://www.math.utah.edu/~beebe/ 
  -
 --- 
 --- 
 --- 
 --


-- 


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



[Bug other/43562] GCC ICE on optimize attribute

2010-04-19 Thread pinskia at gmail dot com


--- Comment #14 from pinskia at gmail dot com  2010-04-19 19:11 ---
Subject: Re:  GCC ICE on optimize attribute



Sent from my iPhone

On Apr 19, 2010, at 12:02 AM, jakub at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #11 from jakub at gcc dot gnu dot org  2010-04-19  
 07:02 ---
 This change broke building wine on x86-64.


There was already a bug filed for this and a patch was committed today  
or yesterday to the trunk to fix this ice.



 Distilled testcase:
 __attribute__ ((ms_abi)) fn2 (int, int);
 struct S { int s; };
 struct T { int t; struct S *u; };

 void
 foo (struct T *x, void *y)
 {
  int a, b, c, d;
  fn1 (0, a, b, c, d);
  x-u[x-t].s = fn2 (fn3 (), a);
  fn1 (y, a, b, c, d);
 }

 __attribute__ ((ms_abi)) void
 bar (int x)
 {
 }

 void
 baz (int x)
 {
 }

 now ICEs at -O2 on x86_64-linux with:
 wineice.i: In function 'foo':
 wineice.i:12: internal compiler error: in insert_save, at caller- 
 save.c:1171
 Please submit a full bug report,
 with preprocessed source if appropriate.
 See http://gcc.gnu.org/bugs.html for instructions.

 Apparently setup_save_areas
  saved_reg-slot
= assign_stack_local_1
  (regno_save_mode[regno][1],
   GET_MODE_SIZE (regno_save_mode[regno][1]), 0,  
 true);
 creates a slot where regno_save_mode[regno][1] for regno 4 is  
 VOIDmode, and the
 VOIDmode MEM which has MEM_ALIGN 0 then confuses everything.


 -- 

 jakub at gcc dot gnu dot org changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|RESOLVED|UNCONFIRMED
 Resolution|FIXED   |


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



-- 


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



[Bug regression/43750] -march unconditionally added to COLLECT_GCC_OPTIONS

2010-04-14 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-04-14 17:56 ---
Subject: Re:   New: -march unconditionally added to COLLECT_GCC_OPTIONS



Sent from my iPhone

On Apr 14, 2010, at 1:56 AM, jue at jue dot li gcc-bugzi...@gcc.gnu.org 
  wrote:

 As of 4.5.0 -march is always added to COLLECT_GCC_OPTIONS if gcc is  
 not called
 with that option.

Well this was on purpose as before configuring for i686-linux-gnu was  
really for i386 arch. Now it is correctly i686. If you don't want  
__i686 defined, configure gcc for i586-linux-gnu instead which  
defaults to i586.



 $ echo '' | gcc -v -E - 21 | grep -E '^(COLLECT_GCC_OPTIONS|gcc)'
 gcc version 4.5.0 20100406 (prerelease) (CRUX) (GCC)
 COLLECT_GCC_OPTIONS='-v' '-E' '-mtune=generic' '-march=pentiumpro'

 the same with gcc 4.4.3:

 $ echo '' | gcc -v -E - 21 | grep -E '^(gcc|COLLECT_GCC_OPTIONS)'
 gcc version 4.4.3 (CRUX) (GCC)
 COLLECT_GCC_OPTIONS='-v' '-E' '-mtune=generic'

 I run into that because I'm not able to compile glibc on i686  
 without explicit
 setting CC to something like gcc -march=i586.
 The reason is the well known _i686 problem, see [1] for a exact  
 description of
 my error and [2] for a very old but recently reopen glibc bug.


 [1] http://www.eglibc.org/archives/patches/msg00073.html
 [2] http://sources.redhat.com/bugzilla/show_bug.cgi?id=411


 -- 
   Summary: -march unconditionally added to COLLECT_GCC_OPTIONS
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jue at jue dot li
 GCC build triplet: i686-pc-linux
  GCC host triplet: i686-pc-linux
 GCC target triplet: i686-pc-linux


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



-- 


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



[Bug c/43691] Code segfault when compiled with -Os, -O2, or -O3

2010-04-08 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2010-04-08 17:06 ---
Subject: Re:  Code segfault when compiled with -Os, -O2, or -O3

I don't think this is a bug in gcc. The inline-asm uses $16 but any of  
the output/temp registers could use that as you don't say the agrument  
is used as an input.

Sent from my iPhone

On Apr 8, 2010, at 9:50 AM, mattst88 at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #2 from mattst88 at gmail dot com  2010-04-08 16:50  
 ---
 Created an attachment (id=20338)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20338action=view)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20338action=view)
 test.c


 -- 


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



-- 


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



[Bug other/43693] [gcc-plugin] c++ based plugins doesn't work.

2010-04-08 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-04-08 17:25 ---
Subject: Re:   New: [gcc-plugin] c++ based plugins doesn't work.

Iirc this is on purpose. You need to build gcc with the c++ compiler  
if you want c++ plugins.

Sent from my iPhone

On Apr 8, 2010, at 10:12 AM, pluto at agmk dot net gcc-bugzi...@gcc.gnu.org 
  wrote:

 during loading c++ based plugin we get undefined runtime symbols,  
 e.g.:

 undefined symbol:  
 _Z28plugin_default_version_checkP18plugin_gcc_versionS0_
 undefined symbol: _Z17register_callbackPKciPFvPvS1_ES1_

 known workaround:
 extern C { #include gcc-plugin.h }


 -- 
   Summary: [gcc-plugin] c++ based plugins doesn't work.
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pluto at agmk dot net


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



-- 


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



[Bug lto/43659] -flto doesn't remember -fPIC

2010-04-05 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-04-06 03:01 ---
Subject: Re:   New: -flto doesn't remember -fPIC

This is done on purpose. The -fpic is needed on the link line too.  
This is a bug in libtool.

Sent from my iPhone

On Apr 5, 2010, at 6:47 PM, debian-gcc at lists dot debian dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 [forwarded from http://bugs.debian.org/524176]

  Matthias

 gcc-4.5 with -flto doesn't work with -fPIC properly.

 Simple testcase:
 int entry(int a)
 {
return bar(a)+1;
 }

 int bar(int a)
 {
return a+4;
 }

 $ gcc-4.5 foo1.c -flto -fPIC -DPIC -c
 $ gcc-4.5 foo2.c -flto -fPIC -DPIC -c
 $ gcc-4.5 foo1.o foo2.o -flto -shared
 /usr/bin/ld: /tmp/ccmA7RCK.lto.o: relocation R_X86_64_PC32 against  
 symbol `bar'
 can not be used when making a shared object; recompile with -fPIC
 /usr/bin/ld: final link failed: Bad value
 collect2: ld returned 1 exit status

 This works however:
 $ gcc-4.5 foo1.o foo2.o -flto -shared -fPIC

 Now -fPIC is something libtool automatically adds, and I it doesn't  
 add it at
 linktime (perhaps other build systems don't either).
 Could gcc's -flto see that all .o files involved in the link are - 
 fPIC... and
 make the resulting file -fPIC too?
 Or at least it should see the -shared in the linker line, and  
 automatically use
 -fPIC when -flto is used.


 -- 
   Summary: -flto doesn't remember -fPIC
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: debian-gcc at lists dot debian dot org


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



-- 


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



[Bug c/43639] Missed optimization with complex long double

2010-04-04 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-04-04 06:28 ---
Subject: Re:   New: Missed optimization with complex long double



Sent from my iPhone

On Apr 3, 2010, at 11:21 PM, svfuerst at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 gcc 4.4 compiles the following:

 _Complex long double foo(long double p1, long double p2)
 {
return p1 + (__extension__ 1.0iF) * p2;
 }

 gcc-4.4 -O3 tgcc.c -c -o tgcc.o

 into

   0x +0: fldt   0x8(%rsp)
   0x0004 +4: fldt   0x18(%rsp)
   0x0008 +8: fxch   %st(1)
   0x000a +10:retq

 This is ok, except for the useless fxch instruction.  However, gcc  
 4.5 compiles
 the same code into:
 gcc-4.5 -O3 tgcc.c -c -o tgcc.o

   0x +0: fldt   0x18(%rsp)
   0x0004 +4: fld%st(0)
   0x0006 +6: fmuls  0x0(%rip)# 0xc foo+12
   0x000c +12:fldt   0x8(%rsp)
   0x0010 +16:faddp  %st,%st(1)
   0x0012 +18:retq

 which is quite a bit worse.

Except it is needed for handling -0.0 correctly.



 -- 
   Summary: Missed optimization with complex long double
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: svfuerst at gmail dot com
 GCC build triplet: x86_64-linux
  GCC host triplet: x86_64-linux
 GCC target triplet: x86_64-linux


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



-- 


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



[Bug bootstrap/43615] [4.5 Regression] bootstrap fails: /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory

2010-04-01 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2010-04-01 08:50 ---
Subject: Re:   New: bootstrap fails: /usr/include/gnu/stubs.h:7:27: fatal
error: gnu/stubs-32.h: No such file or directory



Sent from my iPhone

On Apr 1, 2010, at 12:03 AM, jv244 at cam dot ac dot uk
gcc-bugzi...@gcc.gnu.org 
  wrote:

 My usual routine to build gcc-trunk started failing yesterday (or  
 the day
 before)?

 The configure has remained unchanged (notice --disable-multilib
 --disable-bootstrap):

--disable-bootstrap is almost never a good idea for a native build.



 /data/vondele/gcc_bench/gcc_trunk/gcc/configure
 --prefix=/data/vondele/gcc_bench/gcc_trunk/build
 --enable-languages=c,c++,fortran --program-suffix=-trunk --disable- 
 multilib
 --disable-bootstrap --with-gmp=/data/vondele/gcc_bench/libs/
 --with-mpfr=/data/vondele/gcc_bench/libs/
 --with-mpc=/data/vondele/gcc_bench/libs/

 The error seems to be:

  -fvisibility=hidden -DHIDE_EXPORTS
 /data/vondele/gcc_bench/gcc_trunk/obj/./gcc/xgcc
 -B/data/vondele/gcc_bench/gcc_trunk/obj/./gcc/
 -B/data/vondele/gcc_bench/gcc_trunk/build/x86_64-unknown-linux-gnu/ 
 bin/
 -B/data/vondele/gcc_bench/gcc_trunk/build/x86_64-unknown-linux-gnu/ 
 lib/
 -isystem
 /data/vondele/gcc_bench/gcc_trunk/build/x86_64-unknown-linux-gnu/ 
 include
 -isystem
 /data/vondele/gcc_bench/gcc_trunk/build/x86_64-unknown-linux-gnu/sys- 
 include
 -g -O2 -m32 -O2  -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wcast- 
 qual
 -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  - 
 isystem
 ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 - 
 D__GCC_FLOAT_NOT_NEEDED
 -I. -I. -I../../.././gcc -I/data/vondele/gcc_bench/gcc_trunk/gcc/ 
 libgcc
 -I/data/vondele/gcc_bench/gcc_trunk/gcc/libgcc/.
 -I/data/vondele/gcc_bench/gcc_trunk/gcc/libgcc/../gcc
 -I/data/vondele/gcc_bench/gcc_trunk/gcc/libgcc/../include
 -I/data/vondele/gcc_bench/gcc_trunk/gcc/libgcc/config/libbid
 -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS  -DUSE_TLS -o _muldi3.o - 
 MT _muldi3.o
 -MD -MP -MF _muldi3.dep -DL_muldi3 -c
 /data/vondele/gcc_bench/gcc_trunk/gcc/libgcc/../gcc/libgcc2.c \
  -fvisibility=hidden -DHIDE_EXPORTS
 In file included from /usr/include/features.h:354:0,
 from /usr/include/stdio.h:28,
 from
 /data/vondele/gcc_bench/gcc_trunk/gcc/libgcc/../gcc/tsystem.h:87,
 from
 /data/vondele/gcc_bench/gcc_trunk/gcc/libgcc/../gcc/libgcc2.c:29:
 /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such  
 file or
 directory
 compilation terminated.
 make[4]: *** [_muldi3.o] Error 1
 make[4]: Leaving directory
 `/data/vondele/gcc_bench/gcc_trunk/obj/x86_64-unknown-linux-gnu/32/ 
 libgcc'
 make[3]: *** [multi-do] Error 1
 make[3]: Leaving directory
 `/data/vondele/gcc_bench/gcc_trunk/obj/x86_64-unknown-linux-gnu/ 
 libgcc'
 make[2]: *** [all-multi] Error 2
 make[2]: *** Waiting for unfinished jobs
 make[2]: Leaving directory
 `/data/vondele/gcc_bench/gcc_trunk/obj/x86_64-unknown-linux-gnu/ 
 libgcc'
 make[1]: *** [all-target-libgcc] Error 2
 make[1]: Leaving directory `/data/vondele/gcc_bench/gcc_trunk/obj'
 make: *** [all] Error 2


 -- 
   Summary: bootstrap fails: /usr/include/gnu/stubs.h:7:27:  
 fatal
error: gnu/stubs-32.h: No such file or directory
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jv244 at cam dot ac dot uk


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



-- 


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



[Bug objc/43535] ICE on objc.dg/objc-gc-4.m -fgnu-runtime

2010-03-26 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2010-03-26 16:14 ---
Subject: Re:  ICE on objc.dg/objc-gc-4.m -fgnu-runtime

I think there is an already filed bug about this option with the gnu  
runtime also. This option should not be supported or a nop there.

Sent from my iPhone

On Mar 26, 2010, at 5:16 AM, developer at sandoe-acoustics dot co dot  
uk gcc-bugzi...@gcc.gnu.org wrote:



 --- Comment #1 from developer at sandoe-acoustics dot co dot uk   
 2010-03-26 12:16 ---
 I believe that this test was not previously carried out with -fgnu- 
 runtime .

 So, technically I think it's a failed New test rather than a  
 regression (but I
 will triple-check a little later).

 In any event, I don't suppose we want an ICE as a response to a  
 command line
 error.


 -- 


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



-- 


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



[Bug c++/43352] keyword 'and' defined when even in the absence of iso646

2010-03-12 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2010-03-13 03:59 ---
Subject: Re:   New: keyword 'and' defined when even in the absence of iso646



Sent from my iPhone

On Mar 12, 2010, at 7:54 PM, mdjones0978-gcc at yahoo dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 = test.cpp ==
 #include string

 std::string and( AND );

 #ifdef and
 #undef and
 #endif
 #define and

  error msgs =
 test.cpp:5:8: error: and cannot be used as a macro name as it is  
 an operator
 in C++
 test.cpp:8:9: error: and cannot be used as a macro name as it is  
 an operator
 in C++
 test.cpp:3: error: expected unqualified-id before ââ token


 Several comments along this theme.
 http://stackoverflow.com/questions/2419805/when-did-and-become-an-operator-in-c
 http://en.wikipedia.org/wiki/Iso646.h


C++ is not C. The C++ standard says these are keywords and not defines  
which is unlike the C standard.





 -- 
   Summary: keyword 'and' defined when even in the absence of  
 iso646
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mdjones0978-gcc at yahoo dot com


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



-- 


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



[Bug c++/43330] trivial types are not being statically initialized

2010-03-11 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-03-11 11:41 ---
Subject: Re:   New: trivial types are not being statically initialized



Sent from my iPhone

On Mar 11, 2010, at 3:24 AM, eric dot niebler at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 According to the C++0x status page
 (http://gcc.gnu.org/gcc-4.5/cxx0x_status.html), Standard Layout  
 Types
 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm)  
 have been
 implemented in gcc-4.5. A quick test shows that trivial types are  
 not being
 statically initialized, as the paper requires. The following struct  
 S is
 trivial and the non-local constant s should be statically  
 initialized, IIUC:

  struct S
  {
S() {}
  };

The above is not a trivial type though. It has a non trivial default  
constructor. If you want a trivial constructor use either = default  
or delete it all together.



  S const s{};

 However, when compiled with -O2 -std=c++0x -S using the latest 4.5  
 snapshot, I
 see the following assembly:

.file   main.cpp
.text
.p2align 4,,15
.def__GLOBAL__I_main.cpp;   .scl3;  .type
 32; .endef
 __GLOBAL__I_main.cpp:
pushl   %ebp
movl%esp, %ebp
popl%ebp
ret
.section.ctors,w
.align 4
.long   __GLOBAL__I_main.cpp

 Unless I'm mistaken, the global s is still being dynamically  
 initialized.
 Apologies in advance if I'm reading this wrong.


 -- 
   Summary: trivial types are not being statically initialized
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: eric dot niebler at gmail dot com
 GCC build triplet: gcc-4.5-20100304


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



-- 


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



[Bug c++/43333] [4.5 Regression] __is_pod seems broken

2010-03-11 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2010-03-11 17:01 ---
Subject: Re:   New: __is_pod seems broken



Sent from my iPhone

On Mar 11, 2010, at 8:03 AM, matz at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 On r157245 (and former revisions) this testcase will abort:
 # cat ispod.cc
 struct strPOD
 {
  const char *const foo;
  const char *const bar;
 };

I don't think this is a pod as it requires a non trivial constructor.



 extern C void abort (void);
 int main ()
 {
  if (!__is_pod (strPOD))
abort ();
  return 0;
 }

 This manifests itself in blocxx not compiling with gcc 4.5 (due to  
 its use
 of tr1::is_pod implemented in terms of above).  It still works  
 with a random
 gcc 4.3 version.


 -- 
   Summary: __is_pod seems broken
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: matz at gcc dot gnu dot org
  GCC host triplet: x86_64-linux


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



-- 


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



[Bug driver/43334] Generate an XML dump of the parse tree

2010-03-11 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-03-11 17:37 ---
Subject: Re:   New: Generate an XML dump of the parse tree



Sent from my iPhone

On Mar 11, 2010, at 8:26 AM, jrevans1 at earthlink dot net
gcc-bugzi...@gcc.gnu.org 
  wrote:

 Essentially I would like a feature similair to gccxml  
 (www.gccxml.org) that is
 officially blessed and native to the compiler instead of some out-of- 
 date hack.
 If a feature like this were to be officially supported, it would  
 open the doors
 to many applications who might want to use the gcc to parse its  
 files for them.

Gcc now support plugins which in my mind a better way to support  
applications which want to use gcc to parse sources.



 It is a good idea, with minimal impact, it just requires a forked  
 gcc to have
 its features.

I don't think it will be that minimal as people will depend on the  
format being constant between versions which I doubt will happen.




 -- 
   Summary: Generate an XML dump of the parse tree
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: driver
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jrevans1 at earthlink dot net


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



-- 


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



[Bug bootstrap/43328] multilib bootstrap broken.

2010-03-11 Thread pinskia at gmail dot com


--- Comment #6 from pinskia at gmail dot com  2010-03-11 18:15 ---
Subject: Re:  multilib bootstrap broken.



Sent from my iPhone

On Mar 11, 2010, at 10:11 AM, pluto at agmk dot net gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #5 from pluto at agmk dot net  2010-03-11 18:11  
 ---
 (In reply to comment #4)
 Did you 'rm -rf ~/src/gcc/trunk' and create that directory anew?

 no, what for? svn status reports no unversioned files in trunk  
 directory.

Svn status does not report .o files normally.




 -- 


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



-- 


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



[Bug tree-optimization/43213] [4.5 Regression] Worse code generated with -O2

2010-03-01 Thread pinskia at gmail dot com


--- Comment #4 from pinskia at gmail dot com  2010-03-01 10:38 ---
Subject: Re:  [4.5 Regression] Worse code generated with -O2



Sent from my iPhone

On Mar 1, 2010, at 2:29 AM, rguenth at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #3 from rguenth at gcc dot gnu dot org  2010-03-01  
 10:29 ---
 Huh.  Confirmed.

Not that interesting because the aliasing sets are different and we  
made 4.5 work for c++ code dealing with dynamic types.




 -- 

 rguenth at gcc dot gnu dot org changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-03-01 10:29:21
   date||
   Target Milestone|--- |4.5.0


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



-- 


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



[Bug rtl-optimization/43156] [4.5 Regression] SPU-elf ICEs on simple programs

2010-03-01 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2010-03-01 15:45 ---
Subject: Re:  [4.5 Regression] SPU-elf ICEs on simple programs



Sent from my iPhone

On Mar 1, 2010, at 3:51 AM, rguenth at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #1 from rguenth at gcc dot gnu dot org  2010-03-01  
 11:51 ---
 spu-elf is neither a primary nor a secondary platform.  But,  
 confirmed, as
 I originally reported this.


My anaylis of this bug is that this bug is very generic and could  
cause issues on any target.





 -- 

 rguenth at gcc dot gnu dot org changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Priority|P3  |P4
   Last reconfirmed|-00-00 00:00:00 |2010-03-01 11:51:50
   date||


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

 --- You are receiving this mail because: ---
 You reported the bug, or are watching the reporter.


-- 


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



[Bug target/43225] Structure copies not vectorized

2010-03-01 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-03-02 05:24 ---
Subject: Re:   New: Structure copies not vectorized



Sent from my iPhone

On Mar 1, 2010, at 8:23 PM, astrange at ithinksw dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 Source:

 #include emmintrin.h

 struct a1 { char l[16];};

Are sure that struct has 128 bit alignment because I think it only has  
8bit alignment.


 struct a2 { __m128i l; };

 void f1(struct a1 *a, struct a1 *b)
 {
*a = *b;
 }

 void f2(struct a2 *a, struct a2 *b)
 {
*a = *b;
 }

 /usr/local/gcc45/bin/gcc -O3 -fomit-frame-pointer -S copy_gcc.c
 _f1:
movq(%rsi), %rax
movq%rax, (%rdi)
movq8(%rsi), %rax
movq%rax, 8(%rdi)
ret

 _f2:
movdqa  (%rsi), %xmm0
movdqa  %xmm0, (%rdi)
ret

 Both are appropriately aligned and should use movdqa. This might not  
 show up in
 generic code, but I could have used it in an ffmpeg optimization.


 -- 
   Summary: Structure copies not vectorized
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: astrange at ithinksw dot com
  GCC host triplet: x86_64-*-*


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



-- 


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



[Bug tree-optimization/43197] Endianness and Optimization

2010-02-27 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2010-02-27 13:06 ---
Subject: Re:   New: Endianness and Optimization



Sent from my iPhone

On Feb 27, 2010, at 2:56 AM, kai dot extern at googlemail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 The attached code (which tries to generically load given-endianness  
 values of
 varying width from memory) shows some interesting optimization  
 quirks. It's
 especially pussling why optimization quality varies so greatly with  
 width, and
 is actually worst for the native word width.


You are violating c++ aliasing rules. You access a uint8_t via  
different types.



 For example:

 $ gcc -Wall -Wextra bad.cc -lstdc++ -O3 -###
 Using built-in specs.
 Target: x86_64-linux-gnu
 Configured with: ../src/configure -v --with-pkgversion='Ubuntu  
 4.4.1-4ubuntu9'
 --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
 --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable- 
 shared
 --enable-multiarch --enable-linker-build-id --with-system-zlib
 --libexecdir=/usr/lib --without-included-gettext --enable- 
 threads=posix
 --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 -- 
 enable-nls
 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc -- 
 disable-werror
 --with-arch-32=i486 --with-tune=generic --enable-checking=release
 --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64- 
 linux-gnu
 Thread model: posix
 gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9)
 COLLECT_GCC_OPTIONS='-Wall' '-Wextra' '-O3' '-mtune=generic'
 /usr/lib/gcc/x86_64-linux-gnu/4.4.1/cc1plus -quiet -D_GNU_SOURCE
 bad.cc -D_FORTIFY_SOURCE=2 -quiet -dumpbase bad.cc - 
 mtune=generic
 -auxbase bad -O3 -Wall -Wextra -fstack-protector -o
 /tmp/ccnHgEb9.s
 COLLECT_GCC_OPTIONS='-Wall' '-Wextra' '-O3' '-mtune=generic'
 as -Qy -o /tmp/cceJWVC8.o /tmp/ccnHgEb9.s
 COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.4.1/:/usr/lib/gcc/ 
 x86_64-linux-gnu/4.4.1/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/ 
 x86_64-linux-gnu/4.4.1/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/ 
 x86_64-linux-gnu/4.4.1/:/usr/lib/gcc/x86_64-linux-gnu/
 LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.4.1/:/usr/lib/gcc/ 
 x86_64-linux-gnu/4.4.1/:/usr/lib/gcc/x86_64-linux-gnu/ 
 4.4.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/ 
 x86_64-linux-gnu/4.4.1/../../../:/lib/:/usr/lib/:/usr/lib/x86_64- 
 linux-gnu/
 COLLECT_GCC_OPTIONS='-Wall' '-Wextra' '-O3' '-mtune=generic'
 /usr/lib/gcc/x86_64-linux-gnu/4.4.1/collect2 --build-id --eh- 
 frame-hdr
 -m elf_x86_64 --hash-style=both -dynamic-linker
 /lib64/ld-linux-x86-64.so.2 -z relro
 /usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../../../lib/crt1.o
 /usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../../../lib/crti.o
 /usr/lib/gcc/x86_64-linux-gnu/4.4.1/crtbegin.o
 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.1 -L/usr/lib/gcc/x86_64-linux- 
 gnu/4.4.1
 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../../../lib -L/lib/../ 
 lib
 -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../..
 -L/usr/lib/x86_64-linux-gnu /tmp/cceJWVC8.o -lstdc++ -lgcc
 --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed  
 -lgcc_s
 --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.4.1/crtend.o
 /usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../../../lib/crtn.o
 $ objdump -d a.out | c++filt | sed -n '/Test_/,/constructors/ p'  out

 (See attachments for source and output.)


 -- 
   Summary: Endianness and Optimization
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kai dot extern at googlemail dot com
 GCC build triplet: x86_64-linux-gnu
  GCC host triplet: x86_64-linux-gnu
 GCC target triplet: x86_64-linux-gnu


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



-- 


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



[Bug c++/43149] Partial optimization

2010-02-23 Thread pinskia at gmail dot com


--- Comment #4 from pinskia at gmail dot com  2010-02-23 16:02 ---
Subject: Re:  Partial optimization



Sent from my iPhone

On Feb 23, 2010, at 7:53 AM, bangerth at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #3 from bangerth at gmail dot com  2010-02-23 15:53  
 ---
 So the attribute would have to be attached to the namespace, I guess.

Or just use the pragma instead :).


 We can keep the PR open, but my best guess is that this is going to be
 one of those PRs that stay open forever as there is so little demand
 for this kind of feature.

 Maybe you can explain what you need this for?

 W.


 -- 

 bangerth at gmail dot com changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|RESOLVED|UNCONFIRMED
 Resolution|WORKSFORME  |


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



-- 


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



[Bug c++/43149] Partial optimization

2010-02-23 Thread pinskia at gmail dot com


--- Comment #8 from pinskia at gmail dot com  2010-02-23 16:29 ---
Subject: Re:  Partial optimization



Sent from my iPhone

On Feb 23, 2010, at 8:16 AM, bschindler at inf dot ethz dot ch
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #6 from bschindler at inf dot ethz dot ch   
 2010-02-23 16:16 ---
 Also, the following would not work

 #pragma GCC optimize(2) // I don't know whether I got that syntax  
 right
 #include Eigen/Core
 #pragma pop_options

 blubb;

 Eigen/Core is a separate file so I'd expect the pragma to have no  
 effect on it
 no? Or am I wrong here?

You are wrong here the pragma works across header files.


 I just talked to some Eigen developers and they seemed to be very  
 favorable to
 the idea of a namespace wide option


 -- 


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



-- 


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



[Bug c++/43126] at this point in file warnings are upside down

2010-02-20 Thread pinskia at gmail dot com


--- Comment #4 from pinskia at gmail dot com  2010-02-20 09:00 ---
Subject: Re:  at this point in file warnings are upside down



Sent from my iPhone

On Feb 19, 2010, at 10:51 PM, glenn at zewt dot org gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #3 from glenn at zewt dot org  2010-02-20 06:51  
 ---
 (4:16?  I havn't seen that before.  I hope gcc isn't going to start
 outputting character offsets by default; that's a lot of noise.)

Yes gcc is now printing out column information. And no it is not a lot  
of noise.



 -- 


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



-- 


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



[Bug c/43128] c-c++-common/pr41779.c doesn't work

2010-02-20 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2010-02-20 11:00 ---
Subject: Re:  c-c++-common/pr41779.c doesn't work



Sent from my iPhone

On Feb 20, 2010, at 2:40 AM, manu at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #1 from manu at gcc dot gnu dot org  2010-02-20  
 10:40 ---
 What are the excess messages?
The problem is simple c does nit have overloaded functions. I am  
testing the obvious patch which fixes this; renaming the functions.




 -- 

 manu at gcc dot gnu dot org changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-20 10:40:49
   date||


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



-- 


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



[Bug c++/43122] g++ does not allow overloading operators for sse types (__m128, __m128d)

2010-02-19 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2010-02-19 16:05 ---
Subject: Re:   New: g++ does not allow overloading operators for sse types
(__m128, __m128d)

Well there is already a builtin operator+ for vector types with the  
generic vector support.

Sent from my iPhone

On Feb 19, 2010, at 7:50 AM, mr dot nuke dot me at gmail dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 When trying to overload operators for __m128 and __m128d types. For  
 example,
 the following code:


 #include xmmintrin.h
 #include stddef.h

 inline __m128 operator + (const __m128 A, const __m128 B)
 {
return _mm_add_ps(A, B);
 }

 int main()
 {
float a[4];
float b[4];

for(size_t i = 0; i  4; i++)
{
a[i] = 2 * i;
b[i] = 2 * i;
}
__m128 sseA, sseB;
sseA = _mm_loadu_ps(a);
sseB = _mm_loadu_ps(b);
__m128 sseSum = sseA + sseB;
return 0;
 }

 Generates
 error: 'float __vector__ operator+(float __vector__, float  
 __vector__)' must
 have an argument of class or enumerated type

 Compiler options: -O3 -msse

 Both ICL (windows and Linux) and MSVC accept this code and compile it
 correctly.


 -- 
   Summary: g++ does not allow overloading operators for sse  
 types
(__m128, __m128d)
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mr dot nuke dot me at gmail dot com


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



-- 


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



[Bug tree-optimization/43089] Optimizer ignores type in a conversion

2010-02-16 Thread pinskia at gmail dot com


--- Comment #6 from pinskia at gmail dot com  2010-02-16 17:51 ---
Subject: Re:  Optimizer ignores type in a conversion



Sent from my iPhone

On Feb 16, 2010, at 9:37 AM, 0xe2 dot 0x9a dot 0x9b at gmail dot com  
gcc-bugzi...@gcc.gnu.org wrote:



 --- Comment #5 from 0xe2 dot 0x9a dot 0x9b at gmail dot com   
 2010-02-16 17:37 ---
 (In reply to comment #4)
 There is nothing to fix.  Your program triggers undefined  
 behavior.  It can do
 anything, which can include something you'd expect, or something  
 completely
 different and it can depend on compiler options, position of stars,  
 etc.

 I understand what you are saying, but I do not agree with that. I my  
 opinion,
 an *optimization* option should never result in any change of a  
 program's
 behavior for this particular kind of undefined behaviors. I mean,  
 there are
 basically two different kinds of undefined behaviors:

 1. Where the compiler has to choose a *particular* implementation.

Huh, this is the opposite effect of undefined behavior. In fact for  
signed interger overflow, gcc sometimes optimizes it as wrapping and  
others as clamping. In this case it is clamping. It is hard sometimes  
to optimize constiently undefined behavior because of inlining and  
other optimizations that can change the ir before the optimization of  
undefined behavior.


 2. Where the compiler does not choose anything or cannot choose  
 anything
 particular. (For example, what happens if accessing deallocated  
 memory.)

 The conversion test-case is of the 1st kind. Not of the 2nd kind.  
 GCC -O0
 chooses to generate a particular sequence of instructions to  
 implement the
 undefined behavior. GCC -O2 does not respect the choice made at -O0  
 (or vice
 versa).

 So, my question is: If it is possible for the problematic code to be
 implemented in all contexts by the same operation, and in this case  
 it indeed
 is possible, why is GCC using two different operations? How do you  
 justify
 that?


 -- 

 0xe2 dot 0x9a dot 0x9b at gmail dot com changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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



-- 


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



[Bug target/30282] Optimization flag -O1 -fschedule-insns2 cause red zone to be used when there is none

2010-02-04 Thread pinskia at gmail dot com


--- Comment #9 from pinskia at gmail dot com  2010-02-04 16:36 ---
Subject: Re:  Optimization flag -O1 -fschedule-insns2 cause red zone to be used
when there is none



Sent from my iPhone

On Feb 4, 2010, at 2:48 AM, rearnsha at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #8 from rearnsha at gcc dot gnu dot org  2010-02-04  
 10:48 ---
 Created an attachment (id=19803)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19803action=view)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19803action=view)
 Possible patch

 I've been testing the attached patch on ARM (well, thumb) where  
 there's a
 similar issue.  It's perhaps a bit more aggressive than it needs to  
 be, but it
 should solve the problem generically rather than requiring each back- 
 end to
 implement hacks for what is really a MI issue.

 Could someone test this on PPC?

Well powerpc64 it is valid to move across the stack pointer if the  
stack is less than a specific size so this can cause regressions  
there. And will also cause a performance regressions on x86_64 also  
for the same reason.



 -- 


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



-- 


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



[Bug c++/42649] Optimizer breaks boost shared_ptr

2010-01-07 Thread pinskia at gmail dot com


--- Comment #7 from pinskia at gmail dot com  2010-01-07 17:18 ---
Subject: Re:  Optimizer breaks boost shared_ptr



Sent from my iPhone

On Jan 7, 2010, at 8:56 AM, rlogel at navtech dot aero
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #5 from rlogel at navtech dot aero  2010-01-07 16:56  
 ---
 I realize that 3.4.6 is very old, but we need to support RedHat  
 Enterprise 4
 builds which use gcc 3.4.6.

Then report this bug to redhat since you have a support contract with  
them. Also you are using a redhat modified gcc so reporting to them  
first is the correct thing to do.


 We would rather not undertake upgrading to gcc 4.x
 because we have a large legacy code base, some of which uses  
 writeable strings.


 -- 

 rlogel at navtech dot aero changed:

   What|Removed |Added
 --- 
 --- 
 --
   Severity|normal  |critical
 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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



-- 


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



[Bug target/42553] wrong code with -O1

2009-12-30 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2009-12-30 13:14 ---
Subject: Re:   New: wrong code with -O1



Sent from my iPhone

On Dec 30, 2009, at 7:56 AM, debian-gcc at lists dot debian dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:

 current trunk/branches on x86_64-linux-gnu. return values with  
 different
 compilers and different optimizations:

 -O0  -O1  -O2  -O3
 gcc-4.1   0222
 gcc-4.3   0222
 gcc-4.4   2000
 gcc-4.5   0100

  Matthias

 #include stdbool.h
 #include stdio.h

 static bool atomic_test_and_reset_bit(unsigned long *v,unsigned long  
 bit) {
  bool res;

  __asm__ __volatile__( btr %2,%1\n
adc $0,%0\n
:=r(res), =m(*v)
:r(bit), r(0)) ;
  return res ? 1 : 0;

This inline-asm looks wrong. Because it says *v is always overriden.  
So if that function is inlined, flags down below does not have to be  
set before it.

 }

 int main(void)
 {
  unsigned long flags = 0;
  int j;

  j = atomic_test_and_reset_bit(flags, 2);

  printf(%d\n, j);

  return 0;
 }


 -- 
   Summary: wrong code with -O1
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: debian-gcc at lists dot debian dot org
 GCC target triplet: x86_64-linux-gnu


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



-- 


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



[Bug c/42199] A problem with -maltivec

2009-11-27 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2009-11-27 19:12 ---
Subject: Re:   New: A problem with -maltivec

Can you attach the preprocessed source for the configure test that is  
failing? It looks like the context sensitive keywords is causing the  
header to fail to compile.

Sent from my iPhone

On Nov 27, 2009, at 11:00 AM, galtgendo at o2 dot pl
gcc-bugzi...@gcc.gnu.org 
  wrote:

 You'll probably mark this bug as invalid,
 as it's not my bug and being on x86, I really can't
 provide any info.

 http://bugs.gentoo.org/show_bug.cgi?id=293899
 http://bugs.freedesktop.org/show_bug.cgi?id=25103

 As you may see there, a trivial autoconf test was failing
 with -maltivec, but even before upstream made a change
 to do that test with g++, instead of gcc, it was working on x86.

 That's why I suspect it may be a compiler problem,
 that poppler upstream simply masked.


 -- 
   Summary: A problem with -maltivec
   Product: gcc
   Version: 4.4.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: galtgendo at o2 dot pl


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



-- 


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



[Bug debug/42065] DWARF .debug_macinfo contains unused macros

2009-11-16 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2009-11-16 14:31 ---
Subject: Re:   New: DWARF .debug_macinfo contains unused macros



Sent from my iPhone

On Nov 16, 2009, at 6:12 AM, jan dot kratochvil at redhat dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 -g3 currently produces huge objects as it contains many unused macros.
 -g2 produces no macros debug info so GDB cannot provide its expansion.


That is by design and the reason why -g is -g2 by default 



 There is no way to store just the used macros.

 (debuginfo compression driven by Roland McGrath may eliminate them but
 still...)

 While even a macro never used by a program can be helpful in most  
 cases IMO it
 is enough to provide the macro definitions touched by the code being  
 debugged.

 -feliminate-unused-debug-symbols -feliminate-unused-debug-types have  
 no effect.

 --- 
 --- 
 --- 
 --
 #define NOT used
 #define USED(x) x
 int main (void) { return USED (0); }
 --- 
 --- 
 --- 
 --

 Getting:
 gcc -g3 -o unusedmacro unusedmacro.c -Wall; readelf -wm unusedmacro
 DW_MACINFO_define - lineno : 1 macro : NOT used
 DW_MACINFO_define - lineno : 2 macro : USED(x) x

 or:
 gcc -g2 -o unusedmacro unusedmacro.c -Wall; readelf -wm unusedmacro
 nothing printed

 Expected output:
 gcc -g3 -o unusedmacro unusedmacro.c -Wall; readelf -wm unusedmacro
 DW_MACINFO_define - lineno : 2 macro : USED(x) x


 -- 
   Summary: DWARF .debug_macinfo contains unused macros
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jan dot kratochvil at redhat dot com
 GCC target triplet: x86_64-unknown-linux-gnu


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



-- 


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



[Bug bootstrap/41996] lto-elf.c fails to compile on IRIX 6.5

2009-11-14 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2009-11-14 22:44 ---
Subject: Re:  lto-elf.c fails to compile on IRIX 6.5



Sent from my iPhone

On Nov 14, 2009, at 2:35 PM, rguenth at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #2 from rguenth at gcc dot gnu dot org  2009-11-14  
 22:35 ---
 I guess the easiest is to avoid the special formats and simply use %ld
 and long unconditionally.

How about using atoll and adding that to libitry?




 -- 


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



-- 


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



[Bug target/41989] Code optimized for AMD Geode is slower than generic

2009-11-08 Thread pinskia at gmail dot com


--- Comment #5 from pinskia at gmail dot com  2009-11-08 19:57 ---
Subject: Re:  Code optimized for AMD Geode is slower than generic



Sent from my iPhone

On Nov 8, 2009, at 11:52 AM, rootkit85 at yahoo dot it
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #4 from rootkit85 at yahoo dot it  2009-11-08 19:52  
 ---
 # cat /proc/cpuinfo
 processor   : 0
 vendor_id   : AuthenticAMD
 cpu family  : 5
 model   : 10
 model name  : Geode(TM) Integrated Processor by AMD PCS
 stepping: 2
 cpu MHz : 498.060
 cache size  : 128 KB
 fdiv_bug: no
 hlt_bug : no
 f00f_bug: no
 coma_bug: no
 fpu : yes
 fpu_exception   : yes
 cpuid level : 1
 wp  : yes
 flags   : fpu de pse tsc msr cx8 sep pge cmov clflush mmx  
 mmxext
 3dnowext 3dnow

Since it has cmov this is not a real geode :).


 bogomips: 996.12
 clflush size: 32
 cache_alignment : 32
 address sizes   : 32 bits physical, 32 bits virtual
 power management:

 # CFLAGS='-march=native' ./dry.c
 Dhrystones per Second:  715308


 -- 


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



-- 


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



[Bug c/41990] Incorrect stack setup on x86_64

2009-11-08 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2009-11-08 20:29 ---
Subject: Re:   New: Incorrect stack setup on x86_64

The x86_64 abi includes a red zone. So I doubt this a bug in gcc  
unless netbsd's abi does not match what gcc does.

Sent from my iPhone

On Nov 8, 2009, at 12:25 PM, cube at cubidou dot net
gcc-bugzi...@gcc.gnu.org 
  wrote:

 Provided a somewhat specific set of local variables, and as long as  
 the code of
 the function doesn't make any other function calls, gcc will  
 decrease %rsp but
 an incorrect and too small value.  This leads to local variables being
 corrupted when the execution is interrupted;  this happens notably  
 in the
 kernel where interrupts use the stack of the thread they interrupted.

 The file that I will hopefully be able to attach to that report  
 demonstrates
 the issue, if you look at the assembler output.  With the function  
 call
 commented out, gcc sets up the stack that way:

movq%rsp, %rbp
subq$152, %rsp

 and later access one of the local variables with:

movl$0, -272(%rbp,%rax,4)

 When the function call is uncommented, the subq instruction here  
 will correctly
 substract 272 to %rsp.

 I've compiled a 4.4.2 for the sole purpose of doing this bug  
 report;  NetBSD
 comes with 4.1.3 and that's where the bug was initially spotted.


 -- 
   Summary: Incorrect stack setup on x86_64
   Product: gcc
   Version: 4.4.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: cube at cubidou dot net
 GCC build triplet: x86_64-unknown-netbsd4.99.60
  GCC host triplet: x86_64-unknown-netbsd4.99.60
 GCC target triplet: x86_64-unknown-netbsd4.99.60


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



-- 


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



[Bug driver/41564] -fdump-tree-all for lto does not work as expected

2009-11-04 Thread pinskia at gmail dot com


--- Comment #7 from pinskia at gmail dot com  2009-11-04 13:57 ---
Subject: Re:  -fdump-tree-all for lto does not work as expected



Sent from my iPhone

On Nov 4, 2009, at 1:32 AM, rguenther at suse dot de
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #6 from rguenther at suse dot de  2009-11-04 09:32  
 ---
 Subject: Re:  -fdump-tree-all for lto does not work as
 expected

 On Tue, 3 Nov 2009, pinskia at gcc dot gnu dot org wrote:

 --- Comment #5 from pinskia at gcc dot gnu dot org  2009-11-03  
 20:02 ---
 My /tmp is small so this causes it to be filled up quickly.  Is  
 there a simple
 work around?

 No.

Actually thinking about it, setting TMPDIR env is a workaround :)



 Richard.


 -- 


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



-- 


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



[Bug lto/41598] bootstrap *using* lto fails

2009-10-11 Thread pinskia at gmail dot com


--- Comment #11 from pinskia at gmail dot com  2009-10-11 17:48 ---
Subject: Re:  bootstrap *using* lto fails

On Sun, Oct 11, 2009 at 8:13 AM, rguenth at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org wrote:
 is this valid cross translation-unit if T is used across units?


Yes this is valid for C.  In C, types are across TUs are not based on
names.  This is why the code for -combine was complex with respect of
type equality.

-- Pinski


-- 


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




[Bug tree-optimization/40844] O2 optimizes out assignment to bitfield

2009-07-23 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2009-07-24 05:54 ---
Subject: Re:   New: O2 optimizes out assignment to bitfield



Sent from my iPhone

On Jul 23, 2009, at 10:22 PM, jim at bodwin dot us gcc-bugzi...@gcc.gnu.org 
  wrote:

 Incorrect code is produced for the following source with the O2  
 option.  In
 particular, the assignment to the bitfield field2 is optimized out  
 of the code
 entirely and regImage is left all zero.  Correct code is produced  
 with the O1
 option and (at least) with gcc version 4.3.2.

   Source Code

 typedef struct hwreg {
short field1 : 4;
short field2 : 2;
short field3 : 10;
 } hwreg_t;

 void foo(volatile short *hwPtr, short f2) {
hwreg_t regImage;   // Place to build reg image bit-by-bit
*(short *) regImage = 0;

regImage.field2 = f2;

*hwPtr = *((short *) regImage);
 }

I think you are violating c/c++ aliasing rules here.



  Object dump


 /tmp/foo.o: file format elf32-littlearm


 Disassembly of section .text:

  foo:
   0:   e3a03000mov r3, #0  ; 0x0
   4:   e24dd004sub sp, sp, #4  ; 0x4
   8:   e1c030b0strhr3, [r0]
   c:   e28dd004add sp, sp, #4  ; 0x4
  10:   e12fff1ebx  lr

   gcc -v output

 Configured with: ../gcc-4.4.1/configure --target=arm-elf --disable- 
 __cxa_atexit
 --with-newlib --enable-languages=c,c++ --with-gnu-as --with-gnu-ld
 --with-gxx-include-dir=/home/jmb/arm-elf/include --prefix=/home/jmb/ 
 arm-elf :
 (reconfigured) ../gcc-4.4.1/configure --target=arm-elf --disable- 
 __cxa_atexit
 --with-newlib --enable-languages=c,c++ --with-gnu-as --with-gnu-ld
 --with-gxx-include-dir=/home/jmb/arm-elf/include --prefix=/home/jmb/ 
 arm-elf
 Thread model: single
 gcc version 4.4.1 (GCC)


 -- 
   Summary: O2 optimizes out assignment to bitfield
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jim at bodwin dot us
 GCC build triplet: i486-pc-linux-gnu
  GCC host triplet: i486-pc-linux-gnu
 GCC target triplet: arm-elf


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



-- 


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



[Bug rtl-optimization/40679] Optimizer handles loops with volatiles and post-incr. wrong

2009-07-08 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2009-07-08 08:13 ---
Subject: Re:   New: Optimizer handles loops with volatiles and post-incr. wrong



Sent from my iPhone

On Jul 8, 2009, at 12:32 AM, bastian dot schick at sciopta dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 If the following code is compiled with -Os for ARM or ColdFire, the  
 exit
 condition for the loop is removed.
 Replacing *tbl++ with tbl[i] or using unsigned long instead of  
 volatile
 unsigned long does not show the problem.
 I suspect the post-increment optimization to be the problem, because  
 the
 PowerPC version does not show the problem.
 Also: Using a different start-address for tbl, does not show the  
 problem.

It looks more like a wrapping issue. 4*64 = 256. So we go from -256u  
to 0 which causes wrapping of the pointer which is undefined and  
therefor I think gcc is doing the correct thing (If got my numbers  
correct).



 The problem has been reported also for 4.4.0.

 typedef volatile unsigned long __vu32;
 void bs()
 {
int i;
__vu32 *tbl = (__vu32 *)0xff00;
for(i = 0; i  64; ++i){
 //-  tbl[i] = (__vu32)10;
  *tbl++ = (__vu32)10;
}
 }
 Cmd-line: arm-none-eabi-gcc -S -Os t.c
 Output:
.cpu arm7tdmi
.fpu softvfp
.eabi_attribute 20, 1
.eabi_attribute 21, 1
.eabi_attribute 23, 3
.eabi_attribute 24, 1
.eabi_attribute 25, 1
.eabi_attribute 26, 1
.eabi_attribute 30, 4
.eabi_attribute 18, 4
.file   t.c
.text
.align  2
.global bs
.type   bs, %function
 bs:
@ Function supports interworking.
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mvn r2, #255
 .L2:
mov r3, #10
str r3, [r2], #4
b   .L2
.size   bs, .-bs
.ident  GCC: (Sourcery G++ Lite 2008q3-39) 4.3.2


 -- 
   Summary: Optimizer handles loops with volatiles and post- 
 incr.
wrong
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bastian dot schick at sciopta dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-mingw32
 GCC target triplet: i686-mingw32


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



-- 


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-06 Thread pinskia at gmail dot com


--- Comment #3 from pinskia at gmail dot com  2009-07-07 03:44 ---
Subject: Re:   New: dereferencing type-punned pointer warnings cannot be
disabled



Sent from my iPhone

On Jul 6, 2009, at 6:12 PM, mikulas at artax dot karlin dot mff dot  
cuni dot cz gcc-bugzi...@gcc.gnu.org wrote:

 Gcc became recently (4.4) very bad regarding false positive type- 
 punned
 warnings. In previous versions, the warnings could be suppressed by  
 casting to
 (void *), in 3.x and 4.1 it worked perfectly, in 4.3 it still worked  
 somehow
 (except in -Wstrict-aliasing=3 mode), in 4.4 there are cases where  
 it doesn't
 work at all.

 I don't want to completely disable the warnings with -Wno-strict- 
 aliasing (this
 could leave bugs unnotified), but I need a method to disable them on
 case-by-case basis once I verified that the code in question is  
 correct.

 Simple example, compile with -O2 -Wall:

 extern int c;
 int a(void)
 {
return *(short *)(void *)c;
 }

This is a very bad example of a false positive as you are acessing an  
int as a short; that is undefined. I will look at your code later on,  
my laptop for home is currently broken.


 In 4.4 the warning can't be disabled at all! The (void *) cast  
 doesn't suppress
 the warning and none of three options to -Wstrict-aliasing helps. In  
 4.3 the
 cast to (void *) suppressed the warning in -Wstrict-aliasing 1,2  
 modes (and
 didn't suppress it in the default mode 3), in 4.4 the warning can't be
 suppressed at all.

 Gcc developers tried to made these warnings more intelligent with  
 less false
 positives, but unfortunatelly they completely broke the method to  
 disable them
 in the specific case. For me, false positives are not a major  
 problem --- when
 I get a false positive, I just read the code, check it and if I  
 conclude that
 it's OK, I disable the warning with (void *).

 But if there's no way to disable false positives, it makes the  
 warnings
 completely useless.


 -- 
   Summary: dereferencing type-punned pointer warnings cannot  
 be
disabled
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: regression
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mikulas at artax dot karlin dot mff dot cuni dot cz
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
 GCC target triplet: i686-pc-linux-gnu


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



-- 


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-06 Thread pinskia at gmail dot com


--- Comment #4 from pinskia at gmail dot com  2009-07-07 03:48 ---
Subject: Re:  dereferencing type-punned pointer warnings cannot be disabled



Sent from my iPhone

On Jul 6, 2009, at 6:34 PM, mikulas at artax dot karlin dot mff dot  
cuni dot cz gcc-bugzi...@gcc.gnu.org wrote:



 --- Comment #2 from mikulas at artax dot karlin dot mff dot cuni  
 dot cz  2009-07-07 01:34 ---
 Created an attachment (id=18146)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18146action=view)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18146action=view)
 a bug in -Wstrict-aliasing=3

 This is an example of a flaw in -Wstrict-aliasing=3 (this mode is  
 very bad,
 produces many false positives on my project and I'm wondering why is  
 it
 default?)

 Gcc man page says that -Wstrict-aliasing=3 produces less false  
 positives than
 -Wstrict-aliasing=2. This is counterexample, it produces type- 
 punned warning
 in -Wstrict-aliasing=3 mode and doesn't warn in -Wstrict-aliasing=2.  
 I added
 (void *) casts everywhere, but they don't quash the warning.


 -- 


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



-- 


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



[Bug regression/40665] dereferencing type-punned pointer warnings cannot be disabled

2009-07-06 Thread pinskia at gmail dot com


--- Comment #5 from pinskia at gmail dot com  2009-07-07 03:50 ---
Subject: Re:  dereferencing type-punned pointer warnings cannot be disabled

Thus code is undefined you have an acess of a char array as a struct.  
Yes you are only taking the address of an element but it is still  
considered an acess by the standards.

Sent from my iPhone

On Jul 6, 2009, at 6:34 PM, mikulas at artax dot karlin dot mff dot  
cuni dot cz gcc-bugzi...@gcc.gnu.org wrote:



 --- Comment #2 from mikulas at artax dot karlin dot mff dot cuni  
 dot cz  2009-07-07 01:34 ---
 Created an attachment (id=18146)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18146action=view)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18146action=view)
 a bug in -Wstrict-aliasing=3

 This is an example of a flaw in -Wstrict-aliasing=3 (this mode is  
 very bad,
 produces many false positives on my project and I'm wondering why is  
 it
 default?)

 Gcc man page says that -Wstrict-aliasing=3 produces less false  
 positives than
 -Wstrict-aliasing=2. This is counterexample, it produces type- 
 punned warning
 in -Wstrict-aliasing=3 mode and doesn't warn in -Wstrict-aliasing=2.  
 I added
 (void *) casts everywhere, but they don't quash the warning.


 -- 


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



-- 


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



[Bug c/40645] Bus error caused by ldd/std instructions in struct copy.

2009-07-03 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2009-07-04 01:38 ---
Subject: Re:   New: Bus error caused by ldd/std instructions in struct copy.

This code is undefined because of alignment requirments differences  
for the structs and the union.

Sent from my iPhone

On Jul 3, 2009, at 6:33 PM, dentongosnell at yahoo dot com
gcc-bugzi...@gcc.gnu.org 
  wrote:

 $ gcc -v
 Using built-in specs.
 Target: sparc-linux-gnu
 Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.2-1.1 
 '
 --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs
 --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable- 
 shared
 --with-system-zlib --libexecdir=/usr/lib --without-included-gettext
 --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/ 
 include/c++/4.3
 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug
 --enable-objc-gc --enable-mpfr --with-cpu=v8 --with-long-double-128
 --enable-checking=release --build=sparc-linux-gnu --host=sparc-linux- 
 gnu
 --target=sparc-linux-gnu
 Thread model: posix
 gcc version 4.3.2 (Debian 4.3.2-1.1)

 To trigger the bug :-

 $ gcc align_bug.c
 $ ./a.out
 Bus error
 $

 Here is align_bug.c :-

 -

 #include stdio.h

 struct b_one {
  int i;
  double d;
 };

 struct b_two {
  int i1;
  int i2;
 };

 union myblock {
struct b_one one;
struct b_two two;
 };

 void myfunc(union myblock *dp1, union myblock *dp2)
 {
  dp2-two = dp1-two;
 }

 int main()
 {
  int w;
  struct b_two a = {1,2};
  struct b_two b;

  myfunc((union myblock *)a, (union myblock *)b);

  printf(%d %d\n, b.i1, b.i2);

  return 0;
 }

 --

 The problem seems to happen in myfunc when the compiled code tries
 to copy the 8-byte structure dp2-two to dp1-two, using a ldd/std
 instruction pair.  The problem seems to be that dp1 and dp2 (ie a and
 b in main) aren't strictly enough aligned for that.  If you take out
 the redundant int w in main then a and b happen to be aligned okay
 and the bus error doesn't happen.

 I think the compiler is assuming union myblock has the same
 alignment as struct b_one, which is more strictly aligned than
 struct b_two because of its double member.

 I realise that casting a to (union myblock*) in main may technically
 invoke undefined behaviour... but I think the cast is reasonable given
 that union myblock contains the type of a.

 One other thing, there is a flag -mno-faster-structs which this page
 suggests would prevent this sort of ldd/std use
 (http://gcc.gnu.org/onlinedocs/gcc/SPARC-Options.html).  Unfortunately
 this flag doesn't seem to make any difference to this case.


 -- 
   Summary: Bus error caused by ldd/std instructions in  
 struct copy.
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dentongosnell at yahoo dot com
 GCC build triplet: sparc-linux-gnu
  GCC host triplet: sparc-linux-gnu
 GCC target triplet: sparc-linux-gnu


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



-- 


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



[Bug target/15623] nop insertion does not look see restrict pointers

2009-06-25 Thread pinskia at gmail dot com


--- Comment #7 from pinskia at gmail dot com  2009-06-25 19:33 ---
Subject: Re:  nop insertion does not look see restrict pointers



Sent from my iPhone

On Jun 25, 2009, at 12:30 PM, rguenth at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #6 from rguenth at gcc dot gnu dot org  2009-06-25  
 19:30 ---
 which makes this bug ... ???

 dependent on a bug you're going to file?

Most likely closing as won't fix as this is not important for any  
newer ppcs.



 -- 

 rguenth at gcc dot gnu dot org changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|NEW |WAITING


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



-- 


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



[Bug target/40473] -mno-sched-prolog breaks function parameter debug location lists

2009-06-17 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2009-06-17 13:12 ---
Subject: Re:  -mno-sched-prolog breaks function parameter debug location lists

This option should just be removed.

Sent from my iPhone

On Jun 17, 2009, at 2:21 AM, amodra at bigpond dot net dot au
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #1 from amodra at bigpond dot net dot au  2009-06-17  
 09:21 ---
 See http://sourceware.org/bugzilla/show_bug.cgi?id=10231


 -- 


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



-- 


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



[Bug c/40366] Array + XOR swap fails

2009-06-07 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2009-06-07 07:23 ---
Subject: Re:   New: Array + XOR swap fails

Both of these are undefined. Look up about sequence point rules.

Sent from my iPhone

On Jun 7, 2009, at 12:15 AM, ashutosh dot sharma dot 0204 at gmail  
dot com gcc-bugzi...@gcc.gnu.org wrote:

 Compiler Version:
 gcc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu3)
 Copyright (C) 2007 Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There  
 is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR  
 PURPOSE.


 Sample code:

 #include stdio.h

 int main() {
int a[2];
a[0]=10;
a[1]=20;
printf(a[0] = %d a[1] = %d\n, a[0], a[1]);
a[0]^=a[1]^=a[0]^=a[1];
printf(a[0] = %d a[1] = %d\n, a[0], a[1]);
return 0;
 }

 gcc test.c -o test -O2

 a[0] = 10 a[1] = 20
 a[0] = 20 a[1] = 10

 gcc test.c -o test -O0

 a[0] = 10 a[1] = 20
 a[0] = 0 a[1] = 10

 Bug: When compiled with -O0 swap fails.
 Swap only fails in case of array. Following code works fine with -O0:

 #include stdio.h

 int main() {
int a, b;
a=10;
b=20;
printf(a = %d b = %d\n, a, b);
a^=b^=a^=b;
printf(a = %d b = %d\n, a, b);
return 0;
 }


 -- 
   Summary: Array + XOR swap fails
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ashutosh dot sharma dot 0204 at gmail dot com


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



-- 


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



[Bug bootstrap/39968] [4.5 Regression] ./plugin-version.h:11: error: 'gcc_version' defined but not used

2009-04-29 Thread pinskia at gmail dot com


--- Comment #1 from pinskia at gmail dot com  2009-04-29 23:13 ---
Subject: Re:   New: [4.5 Regression] ./plugin-version.h:11: error:
'gcc_version' defined but not used

Looks like this failson non elf hosts (well darwin supports dlopen so  
I don't understand why it fails on darwin).

Sent from my iPhone

On Apr 29, 2009, at 10:19 AM, dominiq at lps dot ens dot fr
gcc-bugzi...@gcc.gnu.org 
  wrote:

 Yet another bootstrap error on i686-apple-darwin9:

 ...
 /opt/gcc/i686-darwin/./prev-gcc/xgcc -B/opt/gcc/i686-darwin/./prev- 
 gcc/
 -B/opt/gcc/gcc4.5w/i686-apple-darwin9/bin/ -c  -g -O2 -fomit-frame- 
 pointer
 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing- 
 prototypes
 -Wcast-qual -Wold-style-definition -Wc++-compat -Wmissing-format- 
 attribute
 -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength- 
 strings -Werror
 -fno-common  -DHAVE_CONFIG_H -I. -I. -I../../gcc-4.5-work/gcc
 -I../../gcc-4.5-work/gcc/. -I../../gcc-4.5-work/gcc/../include - 
 I./../intl
 -I../../gcc-4.5-work/gcc/../libcpp/include -I/sw/include
 -I../../gcc-4.5-work/gcc/../libdecnumber
 -I../../gcc-4.5-work/gcc/../libdecnumber/dpd -I../libdecnumber -I/sw/ 
 include
 -I/sw/include -DCLOOG_PPL_BACKEND   ../../gcc-4.5-work/gcc/pointer- 
 set.c -o
 pointer-set.o
 cc1: warnings being treated as errors
 ./plugin-version.h:11: error: 'gcc_version' defined but not used
 make[3]: *** [plugin.o] Error 1
 make[3]: *** Waiting for unfinished jobs
 rm gcj-dbtool.pod fsf-funding.pod jcf-dump.pod jv-convert.pod  
 grmic.pod
 gcov.pod gcj.pod gc-analyze.pod gfdl.pod cpp.pod gij.pod gcc.pod  
 gfortran.pod
 make[2]: *** [all-stage2-gcc] Error 2
 make[1]: *** [stage2-bubble] Error 2
 make: *** [all] Error 2


 -- 
   Summary: [4.5 Regression] ./plugin-version.h:11: error:
'gcc_version' defined but not used
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dominiq at lps dot ens dot fr
 GCC build triplet: i686-apple-darwin9
  GCC host triplet: i686-apple-darwin9
 GCC target triplet: i686-apple-darwin9


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



-- 


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



[Bug libgcj/39747] [4.4/4.5 Regression] libjavamath is linking against libgmp

2009-04-27 Thread pinskia at gmail dot com


--- Comment #4 from pinskia at gmail dot com  2009-04-27 07:16 ---
Subject: Re:  [4.4/4.5 Regression] libjavamath is linking against libgmp



Sent from my iPhone

On Apr 26, 2009, at 11:54 PM, jakub at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org 
  wrote:



 --- Comment #3 from jakub at gcc dot gnu dot org  2009-04-27  
 06:54 ---
 This doesn't look like a GCC bug, but user error.

It is a gcc bug as this dependency is not documented this way. At  
least I could not find the documention for this one.




 -- 


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



-- 


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



  1   2   3   4   >