[Bug c++/101603] [meta-bug] pointer to member functions issues

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101603
Bug 101603 depends on bug 90780, which changed state.

Bug 90780 Summary: references to pmf types mess up
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90780

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

[Bug c++/70097] Cannot assign ref-qualified non-static member function

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70097

Andrew Pinski  changed:

   What|Removed |Added

 CC||language.lawyer at gmail dot 
com

--- Comment #2 from Andrew Pinski  ---
*** Bug 90780 has been marked as a duplicate of this bug. ***

[Bug c++/90780] references to pmf types mess up

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90780

Andrew Pinski  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #3 from Andrew Pinski  ---
This is a dup of bug 70097.

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

[Bug c++/90780] references to pmf types mess up

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90780

Andrew Pinski  changed:

   What|Removed |Added

Summary|GCC loses ref-qualifiers|references to pmf types
   ||mess up
 Blocks||101603

--- Comment #2 from Andrew Pinski  ---
Reduced testcase:
using abominable = void() &;
struct s {
abominable f;
};
abominable s::* ptr = ::f;


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101603
[Bug 101603] [meta-bug] pointer to member functions issues

[Bug c++/67491] [meta-bug] concepts issues

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
Bug 67491 depends on bug 78802, which changed state.

Bug 78802 Summary: ICE with auto placeholder concept in 
synthesize_implicit_template_parm
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78802

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

[Bug c++/82768] ICE in synthesize_implicit_template_parm, at cp/parser.c:39338

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82768

Andrew Pinski  changed:

   What|Removed |Added

 CC||pkeir at outlook dot com

--- Comment #5 from Andrew Pinski  ---
*** Bug 78802 has been marked as a duplicate of this bug. ***

[Bug c++/78802] ICE with auto placeholder concept in synthesize_implicit_template_parm

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78802

Andrew Pinski  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #3 from Andrew Pinski  ---
Dup of bug 82768.

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

[Bug c++/89642] gcc rejects valid implicit typename context in cast

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89642

--- Comment #3 from Andrew Pinski  ---
GCC, ICC, clang and MSVC all reject this at -std=c++20 (or /std:c++latest for
MSVC).

[Bug c++/68138] "operator== is ambiguous" when comparing a tuple containing values with one containing refs

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68138

--- Comment #4 from Andrew Pinski  ---
The original testcase and the one in comment #2 started to work in GCC 11+.

[Bug c++/87327] [8 Regression] Calling member functions on captured constexpr variables "is not a constant expression"

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87327

Andrew Pinski  changed:

   What|Removed |Added

 CC||rcc.dark at gmail dot com

--- Comment #7 from Andrew Pinski  ---
*** Bug 89643 has been marked as a duplicate of this bug. ***

[Bug c++/89643] [8 Regression] constexpr capture not working inside expression

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89643

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|NEW |RESOLVED

--- Comment #1 from Andrew Pinski  ---
This was a regression in 8.1.0-8.3.0 and was fixed for 8.4.0.  This is a dup of
bug 87327.

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

[Bug c++/67491] [meta-bug] concepts issues

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
Bug 67491 depends on bug 82768, which changed state.

Bug 82768 Summary: ICE in synthesize_implicit_template_parm, at 
cp/parser.c:39338
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82768

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

[Bug c++/71543] [concepts] ICE on ill-formed declaration of a parameter with a constrained-type-specifier in a requires expression

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71543

Andrew Pinski  changed:

   What|Removed |Added

 CC||gomboc at cs dot ucr.edu

--- Comment #6 from Andrew Pinski  ---
*** Bug 82768 has been marked as a duplicate of this bug. ***

[Bug c++/82768] ICE in synthesize_implicit_template_parm, at cp/parser.c:39338

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82768

Andrew Pinski  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #4 from Andrew Pinski  ---
Dup of bug 71543.

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

[Bug c++/67491] [meta-bug] concepts issues

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
Bug 67491 depends on bug 78511, which changed state.

Bug 78511 Summary: ICE on using concept name as a "requires" parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78511

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

[Bug c++/71543] [concepts] ICE on ill-formed declaration of a parameter with a constrained-type-specifier in a requires expression

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71543

Andrew Pinski  changed:

   What|Removed |Added

 CC||gcc-bugzilla at minijackson 
dot 33
   ||mail.com

--- Comment #5 from Andrew Pinski  ---
*** Bug 78511 has been marked as a duplicate of this bug. ***

[Bug c++/78511] ICE on using concept name as a "requires" parameter

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78511

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|NEW |RESOLVED

--- Comment #2 from Andrew Pinski  ---
Dup so closing as such.

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

[Bug c++/89085] call of overload is ambiguous with parameter packs

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89085

Andrew Pinski  changed:

   What|Removed |Added

  Known to work||10.2.0, 10.3.0, 11.1.0,
   ||11.2.0
  Known to fail||10.1.0, 9.4.0

--- Comment #1 from Andrew Pinski  ---
Seems fixed in GCC 10.3 and GCC 11+.

[Bug c++/88694] constexpr isn't captured correctly in lambda

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88694

Andrew Pinski  changed:

   What|Removed |Added

  Known to fail||10.3.0
  Known to work||11.1.0

--- Comment #5 from Andrew Pinski  ---
Seems fixed in GCC 11+.

[Bug libstdc++/88736] nullptr_t available without namespace qualification

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88736

Andrew Pinski  changed:

   What|Removed |Added

   Keywords|accepts-invalid |
   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=54249
  Component|c++ |libstdc++

--- Comment #2 from Andrew Pinski  ---
GCC's gcc/ginclude/stddef.h has:
#if defined(__cplusplus) && __cplusplus >= 201103L
#ifndef _GXX_NULLPTR_T
#define _GXX_NULLPTR_T
  typedef decltype(nullptr) nullptr_t;
#endif
#endif /* C++11.  */

Which was added for PR 54249.

It looks like it is still needed but I think could pull that into
libstdc++/include/c_compatibility/stddef.h instead.

[Bug c++/86669] [7 regression] Complete object constructor clone omits length for a c++11 braced initialiser

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86669

Andrew Pinski  changed:

   What|Removed |Added

 CC||jengelh at inai dot de

--- Comment #13 from Andrew Pinski  ---
*** Bug 88517 has been marked as a duplicate of this bug. ***

[Bug c++/88517] Virtual-base class class constructor with for-loop with initializer list referencing local variable not executed

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88517

Andrew Pinski  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE
   Target Milestone|--- |7.5

--- Comment #3 from Andrew Pinski  ---
This is fixed in GCC 7.5.0, GCC 8.3.0 and 9+.

THis is actually a dup of bug 86669.

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

[Bug c++/94619] String literals as non-type template parameter fails to compile with partial specialization of calling function

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94619

Andrew Pinski  changed:

   What|Removed |Added

  Known to work||10.3.0, 11.1.0
  Known to fail||10.2.0

--- Comment #3 from Andrew Pinski  ---
Seems to be fixed in GCC 10.3.0 and 11+.

[Bug c++/86369] constexpr const char* comparison fails

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86369

--- Comment #3 from Andrew Pinski  ---
GCC accepts both with GCC 10+.

[Bug c++/82204] G++ doesn't connect friend and extern declarations

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82204

--- Comment #3 from Andrew Pinski  ---
Seems fixed in GCC 11+.

[Bug c++/85612] ADL lookup with parameter pack and defaulted argument not considered ambiguous

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85612

--- Comment #1 from Andrew Pinski  ---
GCC, ICC, clang and MSVC all reject this code the same way.

[Bug c++/54367] [meta-bug] lambda expressions

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54367
Bug 54367 depends on bug 81700, which changed state.

Bug 81700 Summary: Unresolved function type when taking address of operator() 
of generic lambda
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81700

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

[Bug c++/81700] Unresolved function type when taking address of operator() of generic lambda

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81700

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Pinski  ---
Fixed in 9.4, 10.3.0 and 11+.  Most likely by the patch which fixed PR  95675.

[Bug c++/43064] improve location and text of diagnostics in constructor initializer lists

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43064

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |9.0

[Bug c++/85514] g++ accepts invalid template code

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85514

--- Comment #2 from Andrew Pinski  ---
clang started to accept this code in clang 5.0.0.
ICC started to accept it between 13 and 16.
MSVC started to accept it in v19.23 (19.23.28105.4).

So I think this one can be closed as invalid.

[Bug c++/101786] P1143R2 constinit implementation is incomplete (joining with thread_local)

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101786

Andrew Pinski  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2021-08-05

--- Comment #2 from Andrew Pinski  ---
Confirmed.  We most likely could get rid of the check in this case.  It is a
missed optimization only really.

[Bug c++/101786] P1143R2 constinit implementation is incomplete (joining with thread_local)

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101786

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||missed-optimization
   Severity|normal  |minor

--- Comment #1 from Andrew Pinski  ---
_ZTH1x must have been declared as weak.

[Bug c++/66839] g++ accepts NSDMI with -std=c++98 when the intializer is a macro defined in a standard header

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66839

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2021-08-05
 Ever confirmed|0   |1

--- Comment #2 from Andrew Pinski  ---
Confirmed.

[Bug c++/101786] New: P1143R2 constinit implementation is incomplete (joining with thread_local)

2021-08-04 Thread jpegqs at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101786

Bug ID: 101786
   Summary: P1143R2 constinit implementation is incomplete
(joining with thread_local)
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jpegqs at gmail dot com
CC: mpolacek at gcc dot gnu.org
  Target Milestone: ---

The paper says:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1143r2.html

> constinit can also be useful to compilers for non-initializing declarations
> of thread_local variables:
> 
> extern thread_local constinit x;
> int f() { return x; }
> 
> Without constinit, runtime code must be executed to perform a check of a
> guard variable and conditionally initialize x each time it is used. (Other
> techniques exist, but this approach is common.) If the variable is known to
> have constant initialization, this can be avoided.

Let's fix the missing type for x and try:

extern thread_local constinit int x;
int f() { return x; }

In case of compilation, GCC does not remove the TLS wrapper function as it
should according to this paper:

_ZTW1x:
pushrbp
mov rbp, rsp
mov eax, OFFSET FLAT:_ZTH1x
testrax, rax
je  .L2
call_ZTH1x
.L2:
mov rdx, QWORD PTR fs:0
mov rax, QWORD PTR x@gottpoff[rip]
add rax, rdx
pop rbp
ret
_Z1fv:
pushrbp
mov rbp, rsp
call_ZTW1x
mov eax, DWORD PTR [rax]
pop rbp
ret

The code it should produce should look like this: 

_Z1fv:
pushrbp
mov rbp, rsp
mov rax, QWORD PTR x@gottpoff[rip]
mov eax, DWORD PTR fs:[rax]
pop rbp
ret

What I can get now is only by replacing "thread_local constinit" with
"__thread".

Clang implements this feature.

[Bug c++/61543] static_cast(static_cast(enum_value)) doesn't get an error

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61543

Andrew Pinski  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
   Target Milestone|--- |9.0
  Known to work||9.1.0
 Resolution|--- |FIXED

--- Comment #5 from Andrew Pinski  ---
GCC 8+ rejects the first "// accepted" in the reduced testcase.
GCC 9+ rejects both.

Note both are only with C++11 standard (or greater).

Because in C++98 the constant expression which evulates to 0 is considered a
null pointer :).

[Bug c++/80651] Non-type template argument deduction fails

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80651

--- Comment #1 from Andrew Pinski  ---
Seems fixed in GCC 11.

[Bug c++/88092] class nontype template deduction failed when providing type to class

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88092

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |10.0

[Bug c++/57466] [DR 1584] Argument deduction fails for 'const T*' when T is function type

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57466

--- Comment #19 from Andrew Pinski  ---
(In reply to Jonathan Wakely from comment #17)
> Fine by me.
> 
> EDG agrees with GCC, but Clang accepts the original example. I guess they'll
> change when 1584 gets resolved.

clang started to reject in clang 7.0.0.

Is there anything else that needs to be done?

[Bug c++/81051] virtual base access during construction crashes

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81051

--- Comment #3 from Andrew Pinski  ---
The vtable is not set until after the call of the constructor of B::B which is
after the call to f(this).  When is the vtable supposed to be put in the this
object?

[Bug c++/79416] Internal compiler error for recursive template expansion

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79416

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||compile-time-hog,
   ||memory-hog
   Severity|normal  |minor
   Target Milestone|5.5 |---

[Bug c++/79735] C++14: syntax error in attribute deprecated silently ignored

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79735

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2021-08-05
 Ever confirmed|0   |1

--- Comment #3 from Andrew Pinski  ---
Confirmed.

[Bug c++/18296] Misleading diagnostic for recursive template instantiation

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18296
Bug 18296 depends on bug 15538, which changed state.

Bug 15538 Summary: Misleading diagnostic for recursive template instantiation
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15538

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

[Bug c++/15538] Misleading diagnostic for recursive template instantiation

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15538

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #10 from Andrew Pinski  ---
Fixed by r7-4510.

[Bug c++/15538] Misleading diagnostic for recursive template instantiation

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15538

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |7.0

--- Comment #9 from Andrew Pinski  ---
(In reply to Martin Sebor from comment #8)
> No change in GCC 7.0.

> t.C: In instantiation of ‘struct A >’:
> t.C:5:8:   required from ‘struct H’
> t.C:7:9:   required from here
> t.C:2:26: error: invalid use of incomplete type ‘struct H’
>  struct A { typename D::Q r;};
>   ^
> t.C:5:8: note: declaration of ‘struct H’
>  struct H : A > { typedef G* Q; };
> ^

No that is what we want.  Before it was "no type named 'Q' in 'struct
H'".

[Bug c++/55004] [meta-bug] constexpr issues

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55004
Bug 55004 depends on bug 86607, which changed state.

Bug 86607 Summary: constexpr function does not treat function pointers with 
external linkage as constexpr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86607

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

[Bug c++/77911] Comparing function pointers in a constexpr function can produce an error.

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77911

Andrew Pinski  changed:

   What|Removed |Added

 CC||tadeus.prastowo at unitn dot it

--- Comment #5 from Andrew Pinski  ---
*** Bug 86607 has been marked as a duplicate of this bug. ***

[Bug c++/86607] constexpr function does not treat function pointers with external linkage as constexpr

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86607

Andrew Pinski  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Andrew Pinski  ---
This is a dup of bug 77911.

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

[Bug c++/77911] Comparing function pointers in a constexpr function can produce an error.

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77911

Andrew Pinski  changed:

   What|Removed |Added

   Last reconfirmed||2021-08-05
 Depends on||69681
 Ever confirmed|0   |1
 Status|UNCONFIRMED |NEW

--- Comment #4 from Andrew Pinski  ---
Confirmed,  I suspect this is the same problem as PR 69681.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69681
[Bug 69681] C/C++ FEs do not consider comparisons of distinct function pointers
to be constant expressions

[Bug c++/77815] access to destructor via decltype-specifier

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77815

Andrew Pinski  changed:

   What|Removed |Added

 CC||xmh970252187 at gmail dot com

--- Comment #2 from Andrew Pinski  ---
*** Bug 99262 has been marked as a duplicate of this bug. ***

[Bug c++/99262] The decltype-specifier that denotes a destructor in a function call is rejected by GCC

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99262

Andrew Pinski  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Andrew Pinski  ---
This is a dup of bug 77815.

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

[Bug c++/101603] [meta-bug] pointer to member functions issues

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101603
Bug 101603 depends on bug 74744, which changed state.

Bug 74744 Summary: Fails to select overridden function when determined by 
template parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=74744

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

[Bug c++/74744] Fails to select overridden function when determined by template parameter

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=74744

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED
   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=83137

--- Comment #2 from Andrew Pinski  ---
Fixed in GCC 8+.

[Bug c++/88538] parse error with class nontype template parameter

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88538

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |9.0

[Bug c++/70585] Bogus 'ambiguous template instantiation' error with partial specializations involving a pack expansion

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70585

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||rejects-valid

--- Comment #1 from Andrew Pinski  ---
GCC and ICC reject it with a similar error message.
Clang and MSVC both accept it.

[Bug c++/70983] False ambiguity on member function rvalue overload using auto

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70983

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Pinski  ---
Fixed in GCC 6+.

[Bug c++/70737] Invalid C++ code compiles when using explicit template conversions

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70737

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #3 from Andrew Pinski  ---
Fixed in GCC 6.4.0 and 7+.

[Bug c++/71267] [C++14] recursive metafunction won't compile: no type named 'type'

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71267

Andrew Pinski  changed:

   What|Removed |Added

  Known to fail||10.3.0, 11.1.0
  Known to work||11.2.0

--- Comment #2 from Andrew Pinski  ---
Looks fixed in GCC 11.2.0 and GCC12+.

[Bug c++/71502] Fold expression unpacks (I < ...) the wrong way

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71502

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |INVALID
 Status|UNCONFIRMED |RESOLVED

--- Comment #4 from Andrew Pinski  ---
Invalid as explained.

[Bug c++/84464] Pack expansion in mem-initializer-list with expression-list

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84464

Andrew Pinski  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=97819

--- Comment #2 from Andrew Pinski  ---
This looks fixed on the trunk.

[Bug c++/69957] Ambiguous overload due to incorrect partial ordering of V<> and V

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69957

Andrew Pinski  changed:

   What|Removed |Added

   Last reconfirmed||2021-08-05
   Keywords||rejects-valid
 Ever confirmed|0   |1
 Status|UNCONFIRMED |NEW

--- Comment #1 from Andrew Pinski  ---
GCC and MSVC reject this for similar reasons.
Clang and ICC accept this.

[Bug sanitizer/101744] [12 regression] hwasan new failures since r12-2424

2021-08-04 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101744

--- Comment #6 from Hongtao.liu  ---
(In reply to Martin Liška from comment #5)
> > > ``` 
> > Just want to clarify that it's our developping lam version which is at
> > https://gitlab.com/x86-gcc/gcc/-/tree/users/intel/lam/master
> 
> What can you see for a vanilla GCC compiler?

hwasan is not enabled by x86 on the trunk which means there must be no impact
for a vanilla x86 GCC compiler.

[Bug c++/97819] Pack expansion in member initializer lists nested with their parameter list got rejected.

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97819

Andrew Pinski  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=65422
  Known to fail||11.1.0

--- Comment #2 from Andrew Pinski  ---
This looks fixed on the trunk

[Bug c++/65422] [C++11] Rejected valid double expansion packs.

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65422

Andrew Pinski  changed:

   What|Removed |Added

  Known to fail||10.1.0, 11.1.0, 11.2.0,
   ||8.1.0

--- Comment #1 from Andrew Pinski  ---
Looks like this is fixed on the trunk.

[Bug c++/69372] GCC allows array and function types to be caught by reference.

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69372

Andrew Pinski  changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed||2021-08-05
 Status|UNCONFIRMED |NEW
   Keywords|accepts-invalid |wrong-code

--- Comment #2 from Andrew Pinski  ---
Confirmed. ICC and clang does not assert in both cases.

[Bug c++/80176] [5/6 Regression] cannot bind reference to static member function using object access expression

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80176

--- Comment #8 from Andrew Pinski  ---
*** Bug 68386 has been marked as a duplicate of this bug. ***

[Bug c++/68386] error: invalid initialization of reference of type 'void (&&)()' from expression of type 'void()'

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68386

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
  Known to work||6.4.0, 7.1.0
 Status|NEW |RESOLVED
   Target Milestone|--- |6.4

--- Comment #3 from Andrew Pinski  ---
Fixed in GCC 6.4.0 and GCC7+.

This is a dup of bug 80176.

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

[Bug c++/69302] parentheses cause address of register variable to be requested (c++1y)

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69302

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #7 from Andrew Pinski  ---
Fixed in GCC 8+.

Note GCC11+ default to C++17 and register storage class is rejected.

[Bug target/101785] aarch64-linux-android is not supported

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101785

--- Comment #3 from Andrew Pinski  ---
*** Bug 99964 has been marked as a duplicate of this bug. ***

[Bug libgcc/99964] android(bionic) cannot find crti.o and crtn.o on aarch64

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99964

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|UNCONFIRMED |RESOLVED

--- Comment #10 from Andrew Pinski  ---
There is really no support for aarch64-linux-android included.  The target
headers for aarch64 don't include any support at all.

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

[Bug c++/68077] Namespace having the same name as contained class should not compile

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68077

Andrew Pinski  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=68188
   Keywords||accepts-invalid
 Ever confirmed|0   |1
   Last reconfirmed||2021-08-05
 Status|UNCONFIRMED |NEW

--- Comment #1 from Andrew Pinski  ---
Confirmed. related to PR 68188.

[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784

--- Comment #8 from Andrew Pinski  ---
(In reply to Andrew Pinski from comment #7)
> (In reply to cqwrteur from comment #6)
> > (In reply to Andrew Pinski from comment #5)
> > > Dup of bug 101785 really.  There is no supported at all included.
> > > 
> > > *** This bug has been marked as a duplicate of bug 101785 ***
> > 
> > but i am sure __NR_newfstatat does not exist on linux kernel header files
> > for aarch64 anymore.
> 
> It does.
> asm-generic/unistd.h:
> 
> #define __NR3264_fstatat 79
> __SC_3264(__NR3264_fstatat, sys_fstatat64, sys_newfstatat)
> 
> 
> #define __NR_newfstatat __NR3264_fstatat

This is 4.14's headers but I really doubt they have changed that much since
then.

[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784

--- Comment #7 from Andrew Pinski  ---
(In reply to cqwrteur from comment #6)
> (In reply to Andrew Pinski from comment #5)
> > Dup of bug 101785 really.  There is no supported at all included.
> > 
> > *** This bug has been marked as a duplicate of bug 101785 ***
> 
> but i am sure __NR_newfstatat does not exist on linux kernel header files
> for aarch64 anymore.

It does.
asm-generic/unistd.h:

#define __NR3264_fstatat 79
__SC_3264(__NR3264_fstatat, sys_fstatat64, sys_newfstatat)


#define __NR_newfstatat __NR3264_fstatat

[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android

2021-08-04 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784

--- Comment #6 from cqwrteur  ---
(In reply to Andrew Pinski from comment #5)
> Dup of bug 101785 really.  There is no supported at all included.
> 
> *** This bug has been marked as a duplicate of bug 101785 ***

but i am sure __NR_newfstatat does not exist on linux kernel header files for
aarch64 anymore.

[Bug target/101785] aarch64-linux-android is not supported

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101785

--- Comment #2 from Andrew Pinski  ---
*** Bug 101784 has been marked as a duplicate of this bug. ***

[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|UNCONFIRMED |RESOLVED

--- Comment #5 from Andrew Pinski  ---
Dup of bug 101785 really.  There is no supported at all included.

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

[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android

2021-08-04 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784

--- Comment #4 from cqwrteur  ---
(In reply to Andrew Pinski from comment #3)
> This is a bug in android headers.
> 
> I really doubt anyone really cares enough about gcc support for android
> these days.  I also really double anyone has really ported aarch64 android
> support to gcc. Google moved over to clang/llvm around the same time as
> moving to armv8.

I do care tbh.

Google does not care that is their fault.

[Bug target/101785] Android macro is not defined for aarch64-linux-android

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101785

Andrew Pinski  changed:

   What|Removed |Added

   Severity|normal  |enhancement
   Keywords||build

--- Comment #1 from Andrew Pinski  ---
ANDROID_TARGET_OS_CPP_BUILTINS is not called from TARGET_OS_CPP_BUILTINS in
config/aarch64/aarch64-linux.h .


That is there is no support for android for aarch64 at all.

[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784

--- Comment #3 from Andrew Pinski  ---
This is a bug in android headers.

I really doubt anyone really cares enough about gcc support for android these
days.  I also really double anyone has really ported aarch64 android support to
gcc. Google moved over to clang/llvm around the same time as moving to armv8.

[Bug c++/101785] New: Android macro is not defined for aarch64-linux-android

2021-08-04 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101785

Bug ID: 101785
   Summary: Android macro is not defined for aarch64-linux-android
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: unlvsur at live dot com
  Target Milestone: ---

int main()
{
#if defined(__ANDROID__) || defined(__BIONIC__) || defined(ANDROID)
dgdsg;
#endif
}

aarch64-linux-android-g++ -c a.cc

compilation success. ANDROID macro is not defined

[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android

2021-08-04 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784

--- Comment #2 from cqwrteur  ---
Created attachment 51264
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51264=edit
more errors

[Bug sanitizer/101784] __NR_newfstatat is not defined on aarch64-linux-android

2021-08-04 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784

--- Comment #1 from cqwrteur  ---
Created attachment 51263
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51263=edit
log file

[Bug sanitizer/101784] New: __NR_newfstatat is not defined on aarch64-linux-android

2021-08-04 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101784

Bug ID: 101784
   Summary: __NR_newfstatat is not defined on
aarch64-linux-android
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: sanitizer
  Assignee: unassigned at gcc dot gnu.org
  Reporter: unlvsur at live dot com
CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at 
gcc dot gnu.org
  Target Milestone: ---

Created attachment 51262
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51262=edit
error message

../../../../../gcc/libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc:13:23:
error: '__NR_newfstatat' was not declared in this scope
   13 | #define SYSCALL(name) __NR_ ## name
  |   ^
../../../../../gcc/libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc:80:24:
note: in definition of macro '__internal_syscall4'
   80 |   (__internal_syscall)(n, (u64)(a1), (long)(a2), (long)(a3),
(long)(a4))
  |^

[Bug c++/101782] [12 regression] Excess errors in g++.dg/cpp2a/concepts-pr67774.C after r12-2729

2021-08-04 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101782

--- Comment #2 from Jonathan Wakely  ---
I think we can probably do this to stop the test failing:

--- a/gcc/testsuite/g++.dg/cpp2a/concepts-pr67774.C
+++ b/gcc/testsuite/g++.dg/cpp2a/concepts-pr67774.C
@@ -1,5 +1,4 @@
 // { dg-do compile { target c++20 } }
-// { dg-additional-options "-fconcepts-ts" }

 #include 
 #include 


Because that flag was present to enable concepts support, but concepts are
always enabled for c++20 now, and it gets run with -std=c++2a

But the FE bug still needs to be fixed.

[Bug tree-optimization/94356] Missed optimisation: useless multiplication generated for pointer comparison

2021-08-04 Thread glisse at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94356

--- Comment #6 from Marc Glisse  ---
(In reply to Andrew Pinski from comment #5)
> Hmm, the following is worse:

That looks like a separate issue. We have fold_comparison for GENERIC, and
match.pd has related patterns for integers, or for pointers with ==, but not
for pointers with <. Strange, I thought I had added those, possibly together
with pointer_diff since the behavior is similar.

[Bug c++/101782] [12 regression] Excess errors in g++.dg/cpp2a/concepts-pr67774.C after r12-2729

2021-08-04 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101782

Jonathan Wakely  changed:

   What|Removed |Added

   Keywords||rejects-valid
   Assignee|redi at gcc dot gnu.org|unassigned at gcc dot 
gnu.org
 Status|ASSIGNED|NEW
  Component|testsuite   |c++

--- Comment #1 from Jonathan Wakely  ---
This is a C++ FE bug.

This valid C++20 code:

template concept foo = true;

template requires foo
[[nodiscard]]
int bar(T) { return 1; }

is rejected with the -fconcepts-ts flag (as both C++20 and C++17):

conc.C:4:1: error: two consecutive ‘[’ shall only introduce an attribute before
‘[’ token
4 | [[nodiscard]]
  | ^

For C++17 mode, -fconcepts-ts defines __cpp_concepts=201507L so we could use
that to suppress the [[nodiscard]] attributes when the flag is given.

But we can't detect it for C++20 mode (which is when the testsuite errors
happen) because C++20 defines __cpp_concepts=201907L and -fconcepts-ts doesn't
change that. So I'm not sure what we can do, other than not apply the attribute
to constrained functions with a requires-clause.

[Bug c++/53660] function pointer conversion function template with nested-name-specifier ignored

2021-08-04 Thread potswa at mac dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53660

--- Comment #2 from David Krauss  ---
(In reply to Andrew Pinski from comment #1)
> I don't think this is a bug.

Right, the behavior looks correct.

As for a nested-name-specifier working in this context, it works if it's not
dependent. As for the declaration being a function template, it works as long
as the conversion-type-id is not dependent.

Oddly, a dependent conversion-type-id *is* allowed when the function is not
templated.

Anyway, the standard says to inspect the conversion function declarations and
find the ones referring to function (-pointer, -reference) types. That doesn't
admit application of template default arguments, as implicit or explicit
conversion does.

[Bug analyzer/101570] [12 Regression] ICE in maybe_reconstruct_from_def_stmt, at analyzer/analyzer.cc:133

2021-08-04 Thread dmalcolm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101570

David Malcolm  changed:

   What|Removed |Added

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

--- Comment #3 from David Malcolm  ---
Should be fixed by the above commit.

[Bug analyzer/101570] [12 Regression] ICE in maybe_reconstruct_from_def_stmt, at analyzer/analyzer.cc:133

2021-08-04 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101570

--- Comment #2 from CVS Commits  ---
The master branch has been updated by David Malcolm :

https://gcc.gnu.org/g:ded2c2c068f6f2825474758cb03a05070a5837e8

commit r12-2749-gded2c2c068f6f2825474758cb03a05070a5837e8
Author: David Malcolm 
Date:   Wed Aug 4 18:21:21 2021 -0400

analyzer: initial implementation of asm support [PR101570]

gcc/ChangeLog:
PR analyzer/101570
* Makefile.in (ANALYZER_OBJS): Add analyzer/region-model-asm.o.

gcc/analyzer/ChangeLog:
PR analyzer/101570
* analyzer.cc (maybe_reconstruct_from_def_stmt): Add GIMPLE_ASM
case.
* analyzer.h (class asm_output_svalue): New forward decl.
(class reachable_regions): New forward decl.
* complexity.cc (complexity::from_vec_svalue): New.
* complexity.h (complexity::from_vec_svalue): New decl.
* engine.cc (feasibility_state::maybe_update_for_edge): Handle
asm stmts by calling on_asm_stmt.
* region-model-asm.cc: New file.
* region-model-manager.cc
(region_model_manager::maybe_fold_asm_output_svalue): New.
(region_model_manager::get_or_create_asm_output_svalue): New.
(region_model_manager::log_stats): Log m_asm_output_values_map.
* region-model.cc (region_model::on_stmt_pre): Handle GIMPLE_ASM.
* region-model.h (visitor::visit_asm_output_svalue): New.
(region_model_manager::get_or_create_asm_output_svalue): New decl.
(region_model_manager::maybe_fold_asm_output_svalue): New decl.
(region_model_manager::asm_output_values_map_t): New typedef.
(region_model_manager::m_asm_output_values_map): New field.
(region_model::on_asm_stmt): New.
* store.cc (binding_cluster::on_asm): New.
* store.h (binding_cluster::on_asm): New decl.
* svalue.cc (svalue::cmp_ptr): Handle SK_ASM_OUTPUT.
(asm_output_svalue::dump_to_pp): New.
(asm_output_svalue::dump_input): New.
(asm_output_svalue::input_idx_to_asm_idx): New.
(asm_output_svalue::accept): New.
* svalue.h (enum svalue_kind): Add SK_ASM_OUTPUT.
(svalue::dyn_cast_asm_output_svalue): New.
(class asm_output_svalue): New.
(is_a_helper ::test): New.
(struct default_hash_traits): New.

gcc/testsuite/ChangeLog:
PR analyzer/101570
* gcc.dg/analyzer/asm-x86-1.c: New test.
* gcc.dg/analyzer/asm-x86-lp64-1.c: New test.
* gcc.dg/analyzer/asm-x86-lp64-2.c: New test.
* gcc.dg/analyzer/pr101570.c: New test.
* gcc.dg/analyzer/torture/asm-x86-linux-array_index_mask_nospec.c:
New test.
* gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c: New
test.
* gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-2.c: New
test.
* gcc.dg/analyzer/torture/asm-x86-linux-cpuid.c: New test.
* gcc.dg/analyzer/torture/asm-x86-linux-rdmsr-paravirt.c: New
test.
* gcc.dg/analyzer/torture/asm-x86-linux-rdmsr.c: New test.
* gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-full.c:
New test.
*
gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-reduced.c:
New test.

Signed-off-by: David Malcolm 

[Bug c++/67048] [9/10/11/12 Regression] GCC rejects well-formed program using empty anonymous enum specifier in a variable declaration

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67048

Andrew Pinski  changed:

   What|Removed |Added

  Known to work||4.8.5
   Target Milestone|--- |9.5
  Known to fail||10.1.0, 11.1.0, 4.9.0,
   ||9.4.0
Summary|GCC rejects well-formed |[9/10/11/12 Regression] GCC
   |program using empty |rejects well-formed program
   |anonymous enum specifier in |using empty anonymous enum
   |a variable declaration  |specifier in a variable
   ||declaration

--- Comment #1 from Andrew Pinski  ---
This was almost definitely caused by PR 54216 .

[Bug target/101611] AVX2 vector arithmetic shift lowered to scalar unnecessarily

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101611

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |12.0

[Bug c++/67777] unsigned wchar_t and signed wchar_t should cause compiler errors but do not.

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=6

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||diagnostic
 Resolution|--- |FIXED
   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=84701
 Status|UNCONFIRMED |RESOLVED
   Target Milestone|--- |9.0

--- Comment #3 from Andrew Pinski  ---
This changed in GCC9+ to always reject.  Most likely by the patch which fixed
PR 84701.

[Bug c++/97475] An unnamed class with a typedef name for linkage purposes having a method.

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97475

Andrew Pinski  changed:

   What|Removed |Added

 Depends on||46589

--- Comment #1 from Andrew Pinski  ---
I think this is a dup of bug 46589.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46589
[Bug 46589] struct member function not declared global

[Bug c++/31584] [DR502] nested enum not considered dependent

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31584

--- Comment #12 from Andrew Pinski  ---
GCC, ICC, clang and MSVC all accept the testcase in comment #11.

[Bug c++/60705] ill-formed member access in alias template ignored

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60705

Andrew Pinski  changed:

   What|Removed |Added

   Last reconfirmed|2014-03-29 00:00:00 |2021-8-4

--- Comment #3 from Andrew Pinski  ---
Clang and GCC both accept it.
ICC and MSVC both reject it.

ICC error message:
(8): error #308: class "A::B" (declared at line 4) is inaccessible
  using C = A::B; // Already the declaration of this alias template is
ill-formed
   ^
  detected during instantiation of type "C" at line 12

(8): error #308: class "A::B" (declared at line 4) is inaccessible
  using C = A::B; // Already the declaration of this alias template is
ill-formed
   ^
  detected during instantiation of type "C" at line 13

(14): warning #1: last line of file ends without a newline
  }
   ^


MSVC error message:

(8): error C2248: 'A::B': cannot access private struct declared in
class 'A'
(4): note: see declaration of 'A::B'
(2): note: see declaration of 'A'
Compiler returned: 2

[Bug c++/66698] Multiple inheritance from instantiations of template class and what about access to member functions

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66698

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|UNCONFIRMED |RESOLVED

--- Comment #2 from Andrew Pinski  ---
Also fixed in GCC 7+.

[Bug c++/66698] Multiple inheritance from instantiations of template class and what about access to member functions

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66698

Andrew Pinski  changed:

   What|Removed |Added

  Known to fail||6.1.0, 6.4.0
   Target Milestone|--- |7.0
  Known to work||7.1.0, 8.1.0

--- Comment #1 from Andrew Pinski  ---
More self contained testcase (rather than the code snipit in comment #0):
#include 
#include 
template 
class S {
public:
void add (C c) { ++cnt; }
size_t size () const { return cnt; }

private:
size_t cnt {}; 
};

struct Foo1 {};
struct Foo2 {};
struct Foo3 {};

class Z : public S, public S, public S {
public:
using S::add;
using S::add;
using S::add;

using S::size;// (1)
using S::size;// (2)
using S::size;// (3)
};

int main(void)
{

Z z;

z.add (Foo1 {});
z.add (Foo1 {});
z.add (Foo2 {});

std::cout << z.size () << std::endl;
}

[Bug c++/66484] Exception specification can declare a pointer to incomplete type, which is against C++ standard section 15.1

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66484

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||diagnostic

--- Comment #3 from Andrew Pinski  ---
We have been erroring out with -pedantic-errors since at least GCC 5.1.0.
The question becomes do we want to turn this into a non-pedwarn and do we care
enough about throw() since they are deprecated in C++11 and the default C++
standard in GCC11+ is C++17 where throw() is no longer supported?

[Bug testsuite/101782] [12 regression] Excess errors in g++.dg/cpp2a/concepts-pr67774.C after r12-2729

2021-08-04 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101782

Jonathan Wakely  changed:

   What|Removed |Added

   Last reconfirmed||2021-08-04
   Assignee|unassigned at gcc dot gnu.org  |redi at gcc dot gnu.org
 Ever confirmed|0   |1
 Status|UNCONFIRMED |ASSIGNED
   Target Milestone|--- |12.0

[Bug fortran/101350] ICE in build_function_decl, at fortran/trans-decl.c:2376

2021-08-04 Thread kargl at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101350

--- Comment #2 from kargl at gcc dot gnu.org ---
(In reply to kargl from comment #1)
> diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
> index 45c3ad387ac..897cfde3ed3 100644
> --- a/gcc/fortran/resolve.c
> +++ b/gcc/fortran/resolve.c
> @@ -15307,6 +15308,15 @@ resolve_symbol (gfc_symbol *sym)
>  return;
>sym->resolve_symbol_called = 1;
>  
> +  /* Symbol cannot have an external attribute and be a contained procedure.
> */
> +  if (sym->attr.external && sym->attr.contained)
> +{
> +  gfc_error ("Contained procedure %qs at %L conflicts with "
> +  "a previously declared EXTERNAL procedure",
> +  sym->name, >declared_at);
> +  return;
> +}
> +
>/* No symbol will ever have union type; only components can be unions.
>   Union type declaration symbols have type BT_UNKNOWN but flavor FL_UNION
>   (just like derived type declaration symbols have flavor FL_DERIVED). */

This patch works to fix the reported problem.  It, however, causes
a number regressions, which can be traced to confusing and conflicting
settings of attributes.  In particular, attr.external=1 is often set
when attr.proc=PROC_MODULE or attr.module_procedure=1 occur.  This 
should not happen as an external procedure can never be a module
procedure.

[Bug c++/65869] Incorrect overload resolution in function return statement

2021-08-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65869

Andrew Pinski  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=80452,
   ||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=91427

--- Comment #5 from Andrew Pinski  ---
Some interesting history here:

GCC7.5.0 and before accepted the code in C++11, C++14 and C++17 modes
GCC8+ reject the code in C++11, C++14, and C++17 modes with the following error
message:
: In function 'Derived foo()':
:14:10: error: cannot bind rvalue reference of type 'Base&&' to lvalue
of type 'Base'
   return result;
  ^~
:9:5: note:   initializing argument 1 of 'Derived::Derived(Base&&)'
 Derived(Base&&);
 ^~~

GCC11+ started to accept the code in C++20 mode.



GCC8 change was due to PR 80452.

GCC11 in C++20 mode seems most likely due to PR 91427.  The patch for PR 91427,
made it sound like it was defect report for earlier versions of the C++
standards too:
For the time being I'm limiting the new semantics to C++20 mode; since it
was moved as a DR, we will probably want to apply the change to other
standard modes as well once we have a better sense of the impact on
existing
code, probably in GCC 12.

  1   2   3   4   >