[Bug c++/64000] New: internal compiler error on lambda

2014-11-20 Thread tobias.polzer+gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64000

Bug ID: 64000
   Summary: internal compiler error on lambda
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tobias.polzer+gcc at gmail dot com

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

g++ -std=c++11 -Wall -Wextra -g -O0regex.cpp   -o regex
regex.cpp: In lambda function:
regex.cpp:72:25: warning: ‘’ is used uninitialized in this function
[-Wuninitialized]
 if(dist[a][b] > d) {
 ^
regex.cpp:72:25: internal compiler error: in expand_expr_real_1, at expr.c:9454
 if(dist[a][b] > d) {
 ^
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.
Preprocessed source stored into /tmp/ccW3t071.out file, please attach this to
your bugreport.

[Bug c++/64000] internal compiler error on lambda that captures 2-dimensional variable size array by reference

2014-12-11 Thread tobias.polzer+gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64000

tobias.polzer+gcc at gmail dot com changed:

   What|Removed |Added

  Attachment #34053|0   |1
is obsolete||

--- Comment #2 from tobias.polzer+gcc at gmail dot com ---
Created attachment 34247
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34247&action=edit
Reduced testcase


[Bug libstdc++/62045] New: __gnu_pbds::priority_queue, binary_heap_tag> is too slow

2014-08-07 Thread tobias.polzer+gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62045

Bug ID: 62045
   Summary: __gnu_pbds::priority_queue,
binary_heap_tag> is too slow
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tobias.polzer+gcc at gmail dot com

The documentation calls binary heaps the '"best-in-kind" for primitive types'
however __gnu_pbds::priority_queue, binary_heap_tag> seems to
perform abysmally slow. This is shown in the test suite, e.g. here:
https://gcc.gnu.org/onlinedocs/libstdc++/manual/policy_based_data_structures_test.html#performance.priority_queue.int_push
where all other heaps vanish in comparison.

I had a short look at it in gdb and found that in a push, it executes

277 if (!is_heap())
276 make_heap();

in ext/pb_ds/detail/binary_heap_/binary_heap_.hpp, where is_heap and make_heap
both come from the std namespace and need linear time in the size of the
container. Even more peculiar, is_heap returns false, while I think is_heap
should be an invariant of the data structure?