[Bug c++/84055] New: warning: ignoring attributes on template argument ‘cl_uint {aka unsigned int}’ [-Wignored-attributes]

2018-01-25 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84055

Bug ID: 84055
   Summary: warning: ignoring attributes on template argument
‘cl_uint {aka unsigned int}’ [-Wignored-attributes]
   Product: gcc
   Version: 7.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kip at thevertigo dot com
  Target Milestone: ---

Created attachment 43248
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43248&action=edit
Minimal example to reproduce the problem.

The following minimal requires an OpenCL C++ installation. Manually typedef'ing
cl_uint makes the problem go away, but for some reason using the OpenCL
header's version, I see the following error:

$ g++ minimal.cpp -o minimal `pkg-config --cflags --libs OpenCL`
minimal.cpp:13:28: warning: ignoring attributes on template argument ‘cl_uint
{aka unsigned int}’ [-Wignored-attributes]
 std::vector m_BreakMe;
^

$ g++ --version
g++ (Ubuntu 7.2.0-8ubuntu3) 7.2.0
Copyright (C) 2017 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.

[Bug c++/84055] warning: ignoring attributes on template argument ‘cl_uint {aka unsigned int}’ [-Wignored-attributes]

2018-01-25 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84055

--- Comment #1 from Kip Warner  ---
Created attachment 43249
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43249&action=edit
Pre-processed intermediate form of minimal.cpp

[Bug c++/84055] warning: ignoring attributes on template argument ‘cl_uint {aka unsigned int}’ [-Wignored-attributes]

2018-01-25 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84055

--- Comment #2 from Kip Warner  ---
Created attachment 43250
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43250&action=edit
Assembly listing of minimal.cpp

[Bug c++/84055] warning: ignoring attributes on template argument ‘cl_uint {aka unsigned int}’ [-Wignored-attributes]

2018-01-26 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84055

--- Comment #4 from Kip Warner  ---
Thanks Martin. I'm curious where the __int32 type was even coming from.
cl_platform.h has the following typedef, among others that use it...

typedef unsigned __int32cl_uint;

...but no where can I find __int32 declared anywhere. As far as I know, this is
an M$ V!C++ built in type and gcc doesn't have it built in. The reason why I'm
curious is because I wanted to find where the alignment attribute was being
specified which was causing this hiccup?

[Bug c++/84055] warning: ignoring attributes on template argument ‘cl_uint {aka unsigned int}’ [-Wignored-attributes]

2018-01-26 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84055

--- Comment #6 from Kip Warner  ---
Hey Martin. Yes, you are right. I see it now in cl_platform.h.

[Bug c++/69715] New: g++ crash dump on building SoftFloatWrapper.cpp

2016-02-07 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69715

Bug ID: 69715
   Summary: g++ crash dump on building SoftFloatWrapper.cpp
   Product: gcc
   Version: 5.2.1
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kip at thevertigo dot com
  Target Milestone: ---

While building streflop via my PPA (personal package archive) I managed to
actually make GCC crash. I've attached two logs. One is the full build log
which is very large (11 MB), and the other is an excerpt of just the dump
itself.

Note that this only seems to happen when my package is built for i386 and not
amd64.

Here is the PPA in case it is of use:
https://launchpad.net/~kip/+archive/ubuntu/streflop

[Bug c++/69715] g++ crash dump on building SoftFloatWrapper.cpp

2016-02-07 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69715

--- Comment #1 from Kip Warner  ---
Created attachment 37623
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37623&action=edit
Complete build log (very big, 11 MB decompressed).

[Bug c++/69715] g++ crash dump on building SoftFloatWrapper.cpp

2016-02-07 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69715

Kip Warner  changed:

   What|Removed |Added

 CC||kip at thevertigo dot com

--- Comment #2 from Kip Warner  ---
Created attachment 37624
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37624&action=edit
Summary build log.

[Bug middle-end/69715] g++ crash dump on building SoftFloatWrapper.cpp

2016-02-08 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69715

--- Comment #4 from Kip Warner  ---
Hey Markus. I'm able to replicate your minimal with...

$ g++ --version
g++ (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010

Well I'll be damned. It looks as though we've actually managed to find a bona
fide bug.

[Bug middle-end/69715] [4.9 regression] ICE: in store_bit_field_1, at expmed.c:839

2016-02-11 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69715

Kip Warner  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #11 from Kip Warner  ---
Nice work, Richard.

[Bug middle-end/69715] [4.9 regression] ICE: in store_bit_field_1, at expmed.c:839

2016-02-21 Thread kip at thevertigo dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69715

--- Comment #15 from Kip Warner  ---
Thank you for your hard work, Richard. It's very appreciated. I can't imagine
what it would be like to debug GCC.

Which stable version of GCC should I look for that will be the newest to carry
your fix? I'm guessing > 5.3 or 4.9.(>4)?

[Bug c++/99402] New: std::copy creates _GLIBCXX_DEBUG false positive for attempt to subscript a dereferenceable (start-of-sequence) iterator

2021-03-05 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99402

Bug ID: 99402
   Summary: std::copy creates _GLIBCXX_DEBUG false positive for
attempt to subscript a dereferenceable
(start-of-sequence) iterator
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kip at thevertigo dot com
  Target Milestone: ---

The following is a minimal:

// Standard C++ / POSIX system headers...
#include 
#include 
#include 

using namespace std;

int main()
{
// Container of eleven elements...
const set Source = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Goal is to copy the first ten elements in to here, or 0 to 9 inclusive.
//  It has space for ten elements...
vector Destination(10);

// This should point to the end of the source range, or element with value
//  10 which is the first value after the range to be copied...
const auto EndIterator = next(cbegin(Source), 10);

// This results in memory corruption, or an abort with STL debugging
//  enabled. copy_n(..., 10, ...) works fine...
copy(cbegin(Source), EndIterator, begin(Destination));

return 0;
}

Compile and run with the following:

$ g++-10 -D_GLIBCXX_DEBUG test.cpp -o test -g3 -std=c++17 && ./test 

I see the following:

/usr/include/c++/10/bits/stl_algobase.h:566:
In function:
_OI std::copy(_II, _II, _OI) [with _II = 
__gnu_debug::_Safe_iterator, 
std::__debug::set, std::bidirectional_iterator_tag>; _OI = 
__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator > >, 
std::__debug::vector, std::random_access_iterator_tag>]

Error: attempt to subscript a dereferenceable (start-of-sequence) iterator 
11 step from its current position, which falls outside its dereferenceable 
range.

Objects involved in the operation:
iterator "__result" @ 0x0x7ffc3a448040 {
  type = __gnu_cxx::__normal_iterator > > (mutable iterator);
  state = dereferenceable (start-of-sequence);
  references sequence with type 'std::__debug::vector >' @ 0x0x7ffc3a4480d0
}
Aborted (core dumped)

I've been advised from another who ran the same test that this works fine with
GCC 8 and 9, so it may be a regression.

[Bug libstdc++/99402] [10/11 Regression] std::copy creates _GLIBCXX_DEBUG false positive for attempt to subscript a dereferenceable (start-of-sequence) iterator

2021-03-05 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99402

--- Comment #8 from Kip Warner  ---
And for anyone finding this from a search engine, the temporary workaround is
to use std::copy_n.

[Bug libstdc++/99402] [10 Regression] std::copy creates _GLIBCXX_DEBUG false positive for attempt to subscript a dereferenceable (start-of-sequence) iterator

2021-04-13 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99402

--- Comment #11 from Kip Warner  ---
Thanks Jonathan. That was a constructive follow up.

[Bug c/97324] New: -mcpu= isn't validated on x86

2020-10-07 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97324

Bug ID: 97324
   Summary: -mcpu= isn't validated on x86
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kip at thevertigo dot com
  Target Milestone: ---

On amd64 I see the following:

$ gcc-10 -Q --help=param -mcpu=sdfdsf
gcc-10: warning: ‘-mcpu=’ is deprecated; use ‘-mtune=’ or ‘-march=’ instead
The following options control parameters:
  --param=align-loop-iterations=4
(...)

On my POWER9 machine I see the following:

$ gcc-10 -Q --help=param -mcpu=sdfdsf
gcc-10: error: unrecognized argument in option ‘-mcpu=sdfdsf’
gcc-10: note: valid arguments to ‘-mcpu=’ are: 401 403 405 405fp 440 440fp 464
464fp 476 476fp 505 601 602 603 603e 604 604e 620 630 740 7400 7450 750 801 821
823 8540 8548 860 970 G3 G4 G5 a2 cell e300c2 e300c3 e500mc e500mc64 e5500
e6500 ec603e native power10 power3 power4 power5 power5+ power6 power6x power7
power8 power9 powerpc powerpc64 powerpc64le rs64 titan

Note that on amd64 the CPU value's nonsensical value was not validated.

[Bug c/97329] New: POWER9 default cache and line sizes appear to be wrong

2020-10-07 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97329

Bug ID: 97329
   Summary: POWER9 default cache and line sizes appear to be wrong
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kip at thevertigo dot com
  Target Milestone: ---

While investigating the memory hierarchy on my Romulus POWER9 (CPU revision
2.2) I discovered GCC's default L1 cache and line sizes on POWER9 are not
correct. 

I think whoever specified the default cache size of 64KB may not have realized
the L1 cache is banked, and not unified. On POWER9 that 64KB is split between
separate instructions and data spaces. Only 32KB is actually available for
data.

GCC's documentation specifies that the l1-cache-size parameter is suppose to
refer to data only, but not instructions.

Further, the default l1-cache-line-size is wrong. It's currently set at 32
bytes. The correct value is actually four times that at 128 bytes.

As things are right now, the resulting generated code may not be properly
optimized because the optimizer plans around the wrong parameters.

When this happens the generated program may have a higher than necessary cache
miss rate. This could be a big deal since the CPU retrieving data from the L1
may only take one or two cycles, but a cache miss could mean several hundred
while the block is transferred.

[Bug target/97329] POWER9 default cache and line sizes appear to be wrong

2020-10-07 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97329

Kip Warner  changed:

   What|Removed |Added

Version|10.2.0  |11.0

--- Comment #1 from Kip Warner  ---
Just tested with Git head (11.0.0 20201008) and same issue:

$ gcc --version
gcc (GCC) 11.0.0 20201008 (experimental)
Copyright (C) 2020 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.

$ gcc -Q -mcpu=power9 --help=param | grep -i cache
  --param=l1-cache-line-size=   128
  --param=l1-cache-size=32
  --param=l2-cache-size=512

$ getconf -a | grep CACHE
LEVEL1_ICACHE_SIZE 32768
LEVEL1_ICACHE_ASSOC32
LEVEL1_ICACHE_LINESIZE 128
LEVEL1_DCACHE_SIZE 32768
LEVEL1_DCACHE_ASSOC32
LEVEL1_DCACHE_LINESIZE 128
LEVEL2_CACHE_SIZE  524288
LEVEL2_CACHE_ASSOC 2048
LEVEL2_CACHE_LINESIZE  32
LEVEL3_CACHE_SIZE  10485760
LEVEL3_CACHE_ASSOC 40960
LEVEL3_CACHE_LINESIZE  32
LEVEL4_CACHE_SIZE  0
LEVEL4_CACHE_ASSOC 0
LEVEL4_CACHE_LINESIZE  0

$ cat /proc/cpuinfo
processor   : 0
cpu : POWER9, altivec supported
clock   : 2933.00MHz
revision: 2.2 (pvr 004e 1202)

(...)

processor   : 143
cpu : POWER9, altivec supported
clock   : 2166.00MHz
revision: 2.2 (pvr 004e 1202)

timebase: 51200
platform: PowerNV
model   : 
machine : PowerNV 
firmware: OPAL
MMU : Radix

[Bug target/97329] POWER9 default cache and line sizes appear to be wrong

2020-10-07 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97329

--- Comment #2 from Kip Warner  ---
Sorry, not same issue. It appears as though this was fixed in gcc-11.

[Bug target/97324] -mcpu= isn't validated on x86

2020-10-08 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97324

--- Comment #3 from Kip Warner  ---
Martin, is -mcpu deprecated for all architectures or just x86?

[Bug target/97324] -mcpu= isn't validated on x86

2020-10-08 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97324

--- Comment #5 from Kip Warner  ---
The reason I asked is because of that inconsistency in the -mcpu usage on
targets. Thanks for clarifying.

[Bug target/97324] -mcpu= isn't validated on x86

2020-10-08 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97324

--- Comment #7 from Kip Warner  ---
I understand what you mean from a maintainer's standpoint. But from a user's
standpoint, that's an inconsistency.

[Bug target/97324] -mcpu= isn't validated on x86

2020-10-08 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97324

--- Comment #9 from Kip Warner  ---
Yup. Agreed.

[Bug target/97329] POWER9 default cache and line sizes appear to be wrong

2020-10-08 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97329

--- Comment #4 from Kip Warner  ---
I'm going to do some more testing tonight and report back after.

[Bug target/97329] POWER9 default cache and line sizes appear to be wrong

2020-10-08 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97329

--- Comment #7 from Kip Warner  ---
So it looks like even with GCC 11 in trunk it's still sometimes wrong on
power9.

Wrong L2 cache size when no -mcpu specified:

$ gcc -Q --help=param | grep -i cache
  --param=l1-cache-line-size=   128
  --param=l1-cache-size=32
  --param=l2-cache-size=256

Correct when manually specifying native (power9) cpu:

$ gcc -Q -mcpu=native --help=param | grep -i cache
  --param=l1-cache-line-size=   128
  --param=l1-cache-size=32
  --param=l2-cache-size=512

Correct when manually specifying power9 cpu:

$ gcc -Q -mcpu=power9 --help=param | grep -i cache
  --param=l1-cache-line-size=   128
  --param=l1-cache-size=32
  --param=l2-cache-size=512

Wrong L2 cache size when powerpc64le is selected in place of power9:

$ gcc -Q -mcpu=powerpc64le --help=param | grep -i cach
  --param=l1-cache-line-size=   128
  --param=l1-cache-size=32
  --param=l2-cache-size=256

Looks like this might be a clue. GCC did not identify the host/build/target as
power9 automatically:

$ gcc -dumpmachine
powerpc64le-unknown-linux-gnu

I built it from trunk last night on a power9 machine. I've attached my
config.log.

$ gcc --version
gcc (GCC) 11.0.0 20201008 (experimental)
(...)

[Bug target/97329] POWER9 default cache and line sizes appear to be wrong

2020-10-08 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97329

--- Comment #6 from Kip Warner  ---
Created attachment 49333
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49333&action=edit
Autoconf configuration log on POWER9.

[Bug c++/98368] New: Seg fault on template method missing required return statement

2020-12-17 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98368

Bug ID: 98368
   Summary: Seg fault on template method missing required return
statement
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kip at thevertigo dot com
  Target Milestone: ---

Created attachment 49792
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49792&action=edit
Example to generate seg fault.

I am experiencing a core dump when attempting to compile code that is missing a
required return statement in a function that returns a non-void type.

$ g++ --version
g++ (Ubuntu 10.2.0-13ubuntu1) 10.2.0
Copyright (C) 2020 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.

Minimal attached.

$ g++ test2.cpp -o test2 -O3 -std=c++17 && ./test2
test2.cpp: In instantiation of ‘SomeTemplate::NodeOffsetType
SomeTemplate::Foo(const Type3&) const [with Type3 = int; Type1 =
int; Type2 = int; SomeTemplate::NodeOffsetType = long int]’:
test2.cpp:25:16:   required from here
test2.cpp:20:1: warning: no return statement in function returning non-void
[-Wreturn-type]
   20 | }
  | ^
Segmentation fault (core dumped)

[Bug c++/98368] Seg fault on template method missing required return statement

2020-12-18 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98368

--- Comment #3 from Kip Warner  ---
Sorry, the _compiler_ crashing is expected behaviour?

[Bug c++/98368] Seg fault on template method missing required return statement

2020-12-18 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98368

--- Comment #5 from Kip Warner  ---
*face palm* Yes, you are right! I totally forgot about the invocation at the
end of the CLI! That's what happens when I don't get enough sleep.

[Bug libstdc++/79700] std::fabsf and std::fabsl missing from

2020-12-22 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79700

Kip Warner  changed:

   What|Removed |Added

 CC||kip at thevertigo dot com

--- Comment #5 from Kip Warner  ---
I am experiencing the same problem with GCC 10.2.0.

I have included  and I am attempting to rely on std::ceilf. g++(1) bails
with:

error: ‘ceilf’ is not a member of ‘std’; did you mean ‘ceil’

$ g++ --version
g++ (Ubuntu 10.2.0-13ubuntu1) 10.2.0

[Bug libstdc++/79700] std::fabsf and std::fabsl missing from

2020-12-23 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79700

--- Comment #7 from Kip Warner  ---
Not if I want any certainty at compile time that it is single precision.

[Bug libstdc++/79700] std::fabsf and std::fabsl missing from

2020-12-23 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79700

--- Comment #10 from Kip Warner  ---
Thanks Jonathan, but I disagree. The point is that the caller might be wrong in
any number of assumptions. The library designers were in agreement, hence why
there is an explicit ceilf function.

[Bug libstdc++/79700] std::fabsf and std::fabsl missing from

2020-12-23 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79700

--- Comment #12 from Kip Warner  ---
I didn't say STL. I said library designers which includes the standard C
runtime. And no, I don't agree with you. Separate names are helpful for greater
certainty. As for std::ceilf existing just for consistency with C, that's
speculative and, in my view doubtful.

[Bug libstdc++/79700] std::fabsf and std::fabsl missing from

2020-12-23 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79700

--- Comment #14 from Kip Warner  ---
Thanks Jonathan, but I still think you are mistaken in that you don't
understand why the function exists in its various forms. Your explanation is
technical and not philosophical.

Whether it was originally inherited from the standard C library or was a
creature of a C++ WG committee isn't material. And yes, you are being
speculative. 

We can discuss another day the history, design choices, and rationale behind
how floating point calculations have been done. In any event, we are going
around in circles.

But the important thing is that this is thankfully being patched.

[Bug libstdc++/101228] New: #include triggers Intel TBB warning for tbb/task.h

2021-06-26 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101228

Bug ID: 101228
   Summary: #include  triggers Intel TBB warning for
tbb/task.h
   Product: gcc
   Version: 11.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kip at thevertigo dot com
  Target Milestone: ---

I've managed to reproduce this issue on two different machines, one amd64 and
the other ppc64le. Both were using g++-11 (Ubuntu 11.1.0-1ubuntu1~21.04)
11.1.0.

Here is a minimal:

#include 
#include 

using namespace std;

int main()
{
vector Container(3'000'000);
iota(begin(Container), end(Container), 1);

sort(execution::par, begin(Container), end(Container));

return 0;
}

Compiling raises the following pragma in header generated warning:

$ g++-11 test.cpp -o test -Wall -Werror -std=c++17 -ltbb && ./test
In file included from /usr/include/c++/11/pstl/parallel_backend_tbb.h:26,
 from /usr/include/c++/11/pstl/parallel_backend.h:20,
 from /usr/include/c++/11/pstl/algorithm_impl.h:22,
 from /usr/include/c++/11/pstl/glue_execution_defs.h:50,
 from /usr/include/c++/11/execution:32,
 from test.cpp:4:
/usr/include/tbb/task.h:21:139: note: ‘#pragma message: TBB Warning: tbb/task.h
is deprecated. For details, please see Deprecated Features appendix in the TBB
reference manual.’
   21 | ("TBB Warning: tbb/task.h is deprecated. For details, please see
Deprecated Features appendix in the TBB reference manual.")
  |
   ^

Compiling again with #define TBB_SUPPRESS_DEPRECATED_MESSAGES 1 prepended to
the beginning and the warning disappears.

This appears to have crept in some how with the 11 series. The 
header is indirectly including some deprecated Intel header from the TBB
library.

[Bug libstdc++/101228] #include triggers Intel TBB warning for tbb/task.h

2021-06-26 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101228

--- Comment #1 from Kip Warner  ---
Suggestion: Maybe a unit test that includes all the standard STL headers, does
nothing with them, and that's expected to emit no warnings would mitigate
problems like this occurring in the future.

[Bug libstdc++/101228] tbb/task.h is Deprecated in newer TBB.

2021-06-27 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101228

--- Comment #3 from Kip Warner  ---
Thanks Andrew. I've opened an issue downstream:

https://bugs.launchpad.net/gcc/+bug/1933775

[Bug c++/107140] New: Potential false positive uninitialized variable warning with -Wmaybe-uninitialized

2022-10-03 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107140

Bug ID: 107140
   Summary: Potential false positive uninitialized variable
warning with -Wmaybe-uninitialized
   Product: gcc
   Version: 12.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kip at thevertigo dot com
  Target Milestone: ---

I am aware there have been other related issues that have already been opened.
I am not sure if this adds anything new to the discussion, but I have, with
some effort, managed to isolate a minimal that reproduces the issue.

This code is not meant to be run, but it's merely a heavily butchered minimal
to re-create a "'MaximumPriorityQueue' may be used uninitialized" warning. This
originates in Test.cpp on L71. Here is the code: 

https://godbolt.org/z/a17Eoc3f3

This only appears to happen with >= -O2. My guess is this may be a result of a
complex interaction with the optimizer and how part of the instantiated
template was inlined.

I note that if I reorder m_LessThanComparison with m_MinMaxHeap in Test.cpp,
the warning is suppressed.

[Bug c++/107140] Potential false positive uninitialized variable warning with -Wmaybe-uninitialized

2022-10-06 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107140

--- Comment #2 from Kip Warner  ---
Created attachment 53673
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53673&action=edit
Minimal

[Bug c++/107140] Potential false positive uninitialized variable warning with -Wmaybe-uninitialized

2022-10-06 Thread kip at thevertigo dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107140

--- Comment #3 from Kip Warner  ---
If you click the Save button in Godbolt's CE, you can download a compressed
archive. I've attached it for you.