[Bug libstdc++/71856] _GLIBCXX_DEBUG-mode breaks GNU parallel extension

2016-07-13 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71856

--- Comment #5 from Jonathan Wakely  ---
Author: redi
Date: Wed Jul 13 17:22:57 2016
New Revision: 238307

URL: https://gcc.gnu.org/viewcvs?rev=238307=gcc=rev
Log:
libstdc++/71856 Define _GLIBCXX_PARALLEL_ASSERTIONS

PR libstdc++/71856
* include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
* include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
on _GLIBCXX_ASSERTIONS.
* include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
Include  for sleep.
* include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
* include/parallel/merge.h: Likewise.
* include/parallel/multiway_merge.h: Likewise.
* include/parallel/partition.h: Likewise.
* include/parallel/queue.h: Likewise.
* include/parallel/sort.h: Likewise.
* testsuite/25_algorithms/headers/algorithm/
parallel_algorithm_assert.cc: New.

Added:
   
trunk/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/c++config
trunk/libstdc++-v3/include/parallel/balanced_quicksort.h
trunk/libstdc++-v3/include/parallel/compiletime_settings.h
trunk/libstdc++-v3/include/parallel/losertree.h
trunk/libstdc++-v3/include/parallel/merge.h
trunk/libstdc++-v3/include/parallel/multiway_merge.h
trunk/libstdc++-v3/include/parallel/partition.h
trunk/libstdc++-v3/include/parallel/queue.h
trunk/libstdc++-v3/include/parallel/sort.h

[Bug libstdc++/71856] _GLIBCXX_DEBUG-mode breaks GNU parallel extension

2016-07-13 Thread michael.hamann at kit dot edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71856

--- Comment #4 from Michael Hamann  ---
Created attachment 38889
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38889=edit
Test case, try compiling with g++ -D_GLIBCXX_DEBUG testcase.cpp

Sorry for not including a test case, I thought from the description and the
provided links the problem was clear enough but of course I should have known
better. I've attached a minimal test case.

[Bug libstdc++/71856] _GLIBCXX_DEBUG-mode breaks GNU parallel extension

2016-07-13 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71856

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-07-13
 Ever confirmed|0   |1

--- Comment #3 from Jonathan Wakely  ---
Ah I see. A testcase would have helped clarify that, as requested by
https://gcc.gnu.org/bugs

[Bug libstdc++/71856] _GLIBCXX_DEBUG-mode breaks GNU parallel extension

2016-07-13 Thread michael.hamann at kit dot edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71856

--- Comment #2 from Michael Hamann  ---
This is not about activating parallel mode, this is about using individual
parallel algorithms by directly including e.g.  and using
the namespace __gnu_parallel explicitly. There I do not get the error you
mention. Is this not supported, too?

[Bug libstdc++/71856] _GLIBCXX_DEBUG-mode breaks GNU parallel extension

2016-07-13 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71856

--- Comment #1 from Jonathan Wakely  ---
You can't mix Debug Mode and Parallel Mode anyway. With previous versions you
get

In file included from /usr/include/c++/5.3.1/utility:68:0,
 from /usr/include/c++/5.3.1/algorithm:60,
 from par.cc:1:
/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/c++config.h:2092:4: error:
#error illegal use of multiple inlined namespaces
 #  error illegal use of multiple inlined namespaces
^

Now you get that followed by a cascade of other errors, which should be fixed,
but you'll never be able to mix them.