[Bug middle-end/26163] [meta-bug] missed optimization in SPEC (2k17, 2k and 2k6 and 95)

2024-07-24 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163
Bug 26163 depends on bug 116064, which changed state.

Bug 116064 Summary: [15 Regression] SPEC 2017 523.xalancbmk_r failed to build
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116064

   What|Removed |Added

 Status|RESOLVED|ASSIGNED
 Resolution|INVALID |---

[Bug c++/116064] [15 Regression] SPEC 2017 523.xalancbmk_r failed to build

2024-07-24 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116064

Patrick Palka  changed:

   What|Removed |Added

   Last reconfirmed||2024-07-24
 Status|RESOLVED|ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Ever confirmed|0   |1
 Resolution|INVALID |---
 CC||jason at gcc dot gnu.org,
   ||ppalka at gcc dot gnu.org

--- Comment #4 from Patrick Palka  ---
FWIW -fdelayed-template-parsing seems to originally have been introduced as an
MSVC compatibility flag:
https://clang.llvm.org/docs/MSVCCompatibility.html#template-instantiation-and-name-lookup

It can change the meaning of valid code since it causes unqualified lookup to
be performed from the point of instantiation instead of from the template
definition:

  int g(long) { return 0; }

  template
  int f() { return g(0); }

  int g(int) { return 1; }

  int main() {
return f(); // returns 1 with -fdelayed-template-parsing, 0 without
  }

That it also suppresses errors inside uninstantiated templates seems to be a
convenient coincidence, so it doesn't seem to be an ideal workaround.

I'm going to try downgrading these name lookup errors into permerrors when
inside an uninstantiated template, so that they can be worked around by passing
-fpermissive (which doesn't change the meaning of valid code).

[Bug c++/115656] [12/13/14 Regression] Templated ctor use rejected in non-deduced context if class template has template template parameter

2024-07-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115656

--- Comment #11 from Patrick Palka  ---
Should be fixed on trunk so far.

[Bug c++/115656] [12/13/14 Regression] Templated ctor use rejected in non-deduced context if class template has template template parameter

2024-07-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115656

--- Comment #10 from Patrick Palka  ---
*** Bug 115672 has been marked as a duplicate of this bug. ***

[Bug c++/115672] [12/13/14/15 Regression] Incorrect template type parameter deduced in non-deduced context if class template has template template parameter

2024-07-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115672

Patrick Palka  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #14 from Patrick Palka  ---
This too is fixed on trunk by r15-2230-g2861eb34e30973, so let's also call this
one a dup of PR115656

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

[Bug c++/115656] [12/13/14 Regression] Templated ctor use rejected in non-deduced context if class template has template template parameter

2024-07-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115656

--- Comment #9 from Patrick Palka  ---
*** Bug 115778 has been marked as a duplicate of this bug. ***

[Bug c++/115778] Internal compiler error: in keep_template_parm, at cp/pt.cc:10960

2024-07-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115778

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #5 from Patrick Palka  ---
It seems this is fixed on trunk by r15-2230-g2861eb34e30973, so let's just call
this a dup of PR115656

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

[Bug c++/115656] [12/13/14 Regression] Templated ctor use rejected in non-deduced context if class template has template template parameter

2024-07-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115656

Patrick Palka  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
Summary|[12/13/14/15 Regression]|[12/13/14 Regression]
   |Templated ctor use rejected |Templated ctor use rejected
   |in non-deduced context if   |in non-deduced context if
   |class template has template |class template has template
   |template parameter  |template parameter
  Known to work||15.0

[Bug c++/103953] Leak of coroutine return object

2024-07-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103953

Patrick Palka  changed:

   What|Removed |Added

   Target Milestone|--- |11.4
 CC||ppalka at gcc dot gnu.org

[Bug c++/115783] GCC accepts invalid program involving calling explicit object member function from static member function

2024-07-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115783

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #4 from Patrick Palka  ---
Fixed for GCC 14.2

[Bug libstdc++/116038] ambiguous overload in bind_front caused by deducing this

2024-07-22 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116038

Patrick Palka  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
 Ever confirmed|0   |1
   Last reconfirmed||2024-07-22
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org

--- Comment #6 from Patrick Palka  ---
I think we just need to explicitly qualify the ambiguous member lookups:

--- a/libstdc++-v3/include/std/functional
+++ b/libstdc++-v3/include/std/functional
@@ -1015,8 +1015,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
decltype(auto)
_S_call(_Tp&& __g, index_sequence<_Ind...>, _CallArgs&&... __call_args)
{
- return std::invoke(std::forward<_Tp>(__g)._M_fd,
- std::get<_Ind>(std::forward<_Tp>(__g)._M_bound_args)...,
+ return std::invoke(std::forward<_Tp>(__g)._Bind_front::_M_fd,
+
std::get<_Ind>(std::forward<_Tp>(__g)._Bind_front::_M_bound_args)...,
  std::forward<_CallArgs>(__call_args)...);
}

_Bind_back and the other users of deducing this in the stdlib should get
audited/fixed accordingly.

FWIW the deducing this paper has a couple of sections about this pitfall:
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0847r7.html#name-lookup-within-member-functions
and the one after that.

[Bug c++/115897] [14/15 Regression] vector_size attribute on alias template has no effect when used in a dependent variable template-id

2024-07-22 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115897

--- Comment #9 from Patrick Palka  ---
Looks like we also need to consider dependent attributes when stripping
non-template aliases.  Patch posted at
https://gcc.gnu.org/pipermail/gcc-patches/2024-July/657706.html, I wonder if it
fully handles your use case?

[Bug c++/104981] [coroutines] Internal compiler error when promise object's constructor takes a base class of the object parameter

2024-07-22 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104981

Patrick Palka  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Status|NEW |ASSIGNED

--- Comment #6 from Patrick Palka  ---
Since I already had a small patch nearly done, I finished and posted it at
https://gcc.gnu.org/pipermail/gcc-patches/2024-July/657920.html

[Bug c++/114104] nodiscard not diagnosed on synthesized operator!=

2024-07-18 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114104

Patrick Palka  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
   Target Milestone|--- |15.0
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org

--- Comment #6 from Patrick Palka  ---
Fixed for GCC 15

[Bug c++/115731] Coroutine lambda type is incomplete when selecting promise constructor

2024-07-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115731

Patrick Palka  changed:

   What|Removed |Added

   Last reconfirmed||2024-07-18
 CC||ppalka at gcc dot gnu.org
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1

--- Comment #1 from Patrick Palka  ---
Interesting, confirmed.  It seems only non-generic lambdas are affected,
generic lambdas aren't affected because the coroutine transformation is
performed on the instantiated operator() well after completion of the lambda
type.

[Bug c++/110855] std::source_location doesn't work with C++20 coroutine

2024-07-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110855

Patrick Palka  changed:

   What|Removed |Added

  Known to work||14.1.0, 15.0
 CC||ppalka at gcc dot gnu.org

--- Comment #4 from Patrick Palka  ---
Seems to work since r14-4140.  We should probably add a regression test before
closing this.

[Bug c++/109227] coroutines: ICE in tree check: expected record_type or union_type or qual_union_type, have array_type in build_special_member_call, at cp/call.cc:11067

2024-07-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109227

Patrick Palka  changed:

   What|Removed |Added

 CC||tobi at gcc dot gnu.org

--- Comment #10 from Patrick Palka  ---
*** Bug 112557 has been marked as a duplicate of this bug. ***

[Bug c++/112557] ICE with coroutines in build_special_member_call, at cp/call.cc:11093

2024-07-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112557

Patrick Palka  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 CC||ppalka at gcc dot gnu.org
 Status|UNCONFIRMED |RESOLVED

--- Comment #2 from Patrick Palka  ---
GCC 14 accepts since r14-8437, so let's call this a dup of PR109227

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

[Bug c++/115550] [coroutines] Reference to reference in promise constructor template argument corresponding to coroutine *this

2024-07-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115550

Patrick Palka  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Depends on||104981
   Last reconfirmed||2024-07-17
 Ever confirmed|0   |1
 CC||ppalka at gcc dot gnu.org

--- Comment #1 from Patrick Palka  ---
Confirmed, thanks for the detailed bug report.

> This may have the same underlying cause as bug 104981. It would not be 
> surprising if some internal compiler code removed the outer reference and 
> expected to be left with a type that is not a reference. I can't preclude 
> this being just a coincidence, however.

You're spot on, the proposed patch in PR104981#c3 seems to also fix this.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104981
[Bug 104981] [coroutines] Internal compiler error when promise object's
constructor takes a base class of the object parameter

[Bug c++/115897] [14/15 Regression] vector_size attribute on alias template has no effect when used in a dependent variable template-id

2024-07-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115897

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #6 from Patrick Palka  ---
Fixed for GCC 14.2

[Bug c++/104981] [coroutines] Internal compiler error when promise object's constructor takes a base class of the object parameter

2024-07-15 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104981

Patrick Palka  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org

--- Comment #3 from Patrick Palka  ---
The problem seems to be that we're passing the unlowered reference 'this_ref'
to the ctor call, which overload resolution doesn't expect.  Using
convert_from_reference fixes this:

diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc
index 97bc211ff67..31d0cb7fd16 100644
--- a/gcc/cp/coroutines.cc
+++ b/gcc/cp/coroutines.cc
@@ -4851,6 +4851,7 @@ morph_fn_to_coro (tree orig, tree *resumer, tree
*destroyer)
  this_ref = convert_to_reference (rt, this_ref, CONV_STATIC,
   LOOKUP_NORMAL, NULL_TREE,
   tf_warning_or_error);
+ this_ref = convert_from_reference (this_ref);
  vec_safe_push (promise_args, this_ref);
}
  else if (parm.rv_ref)

or equivalently, removing the call to convert_to_reference above which seems to
be unneeded?

[Bug c++/109464] gcc does not instantiate constructor for explicitly instantiated template

2024-07-15 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109464

Patrick Palka  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=113208
 CC||ppalka at gcc dot gnu.org

--- Comment #6 from Patrick Palka  ---
It seems this is fixed on trunk since r15-521-g6ad7ca1bb90573?

I see that trunk now emits the shallow() ctor:

shallow::shallow() [base object constructor]:
mov DWORD PTR [rdi], 0
ret
use_shallow::s_zstr:
.zero   4

[Bug c++/115897] [14/15 Regression] vector_size attribute on alias template has no effect when used in a dependent variable template-id

2024-07-12 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115897

Patrick Palka  changed:

   What|Removed |Added

   Target Milestone|--- |14.2
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
  Known to fail||14.1.0, 15.0
  Known to work||13.3.0
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2024-07-12
 Ever confirmed|0   |1
Summary|[14/15 Regression]  |[14/15 Regression]
   |vector_si   |vector_size attribute on
   ||alias template has no
   ||effect when used in a
   ||dependent variable
   ||template-id

--- Comment #3 from Patrick Palka  ---
... which means the comment #2 testcase using a class instead of variable
template-id has been failing for much longer, and r14-2170 just caused this
preexisting issue to affect variable template-ids too.

The problem seems to be that we're stripping the alias template-id _Vp<_Tp> to
_Tp too soon, before we have an argument for _Tp, because we wrongly think the
two types are equivalent, but they're not due to the attribute. 
complex_alias_template_id probably should return true for alias attributes that
have an attribute.

A workaround is to give _Vp a dummy defaulted template parameter, e.g.

template 
  using _Vp [[gnu::vector_size(16)]] = int;

[Bug c++/115897] [14/15 Regression] vector_si

2024-07-12 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115897

Patrick Palka  changed:

   What|Removed |Added

Summary|[14/15 Regression]  |[14/15 Regression]
   |__is_same fails for vector  |vector_si
   |builtin |
 CC||ppalka at gcc dot gnu.org

--- Comment #2 from Patrick Palka  ---
Started with r14-2170-g4cf64d9cc2faf4, which means 

template 
  struct is_same { static constexpr bool value = __is_same(_Tp, _Up); };

template 
  using _Vp [[gnu::vector_size(16)]] = _Tp;

template 
  struct Test
  {
static_assert(not is_same<_Tp, _Vp<_Tp>>::value);
  };

Test x;

[Bug c++/111890] ICE in tsubst_friend_function with friend function declared inside a concept constrainted class inside a template class

2024-07-11 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111890

Patrick Palka  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 CC||ppalka at gcc dot gnu.org
 Status|NEW |ASSIGNED

[Bug c++/104255] parsing function signature fails when it uses a function parameter outside of an unevaluated context

2024-07-06 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104255

Patrick Palka  changed:

   What|Removed |Added

 CC||linuxnyasha at tutanota dot com

--- Comment #9 from Patrick Palka  ---
*** Bug 115809 has been marked as a duplicate of this bug. ***

[Bug c++/115809] paramater packed of function argument inside decltype of trailing return type is rejected

2024-07-06 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115809

Patrick Palka  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ppalka at gcc dot gnu.org
 Resolution|--- |DUPLICATE

--- Comment #3 from Patrick Palka  ---
dup

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

[Bug c++/115783] GCC accepts invalid program involving calling explicit object member function from static member function

2024-07-06 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115783

Patrick Palka  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Target Milestone|--- |14.2
 CC||ppalka at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org

[Bug c++/115296] CTAD fails

2024-07-05 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115296

Patrick Palka  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org
 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org

[Bug c++/115672] [11/12/13/14/15 Regression] Incorrect template type parameter deduced in non-deduced context if class template has template template parameter

2024-07-05 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115672

Patrick Palka  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Status|NEW |ASSIGNED

[Bug c++/115778] Internal compiler error: in keep_template_parm, at cp/pt.cc:10960

2024-07-05 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115778

Patrick Palka  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=115672
 CC||ppalka at gcc dot gnu.org

--- Comment #4 from Patrick Palka  ---
Likely related to PR115672

[Bug c++/115672] [11/12/13/14/15 Regression] Incorrect template type parameter deduced in non-deduced context if class template has template template parameter

2024-07-05 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115672

Patrick Palka  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org
   Keywords|needs-bisection |

--- Comment #12 from Patrick Palka  ---
Started with r11-4859 as well

[Bug c++/115364] [11/12/13/14/15 Regression] ICE-on-invalid when calling non-const template member on const object

2024-06-28 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115364

Patrick Palka  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org
 Resolution|--- |DUPLICATE
 Status|ASSIGNED|RESOLVED

--- Comment #3 from Patrick Palka  ---
Started with r12-3346.. looks like this is basically a dup of PR106760.

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

[Bug c++/106760] [12/13/14/15 Regression] ICE: tree check: expected function_decl, have template_decl in get_fndecl_argument_location, at cp/call.cc:7801

2024-06-28 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106760

Patrick Palka  changed:

   What|Removed |Added

 CC||blubban at gmail dot com

--- Comment #4 from Patrick Palka  ---
*** Bug 115364 has been marked as a duplicate of this bug. ***

[Bug c++/115504] [14/15 Regression] Wrong decltype result for a captured reference inside lambda since r14-5330

2024-06-28 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115504

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #5 from Patrick Palka  ---
Fixed for GCC 14.2, thanks for the bug report.

[Bug c++/115198] Class template argument deduction fails for copy ctor when used with an alias template if the aliased class template has explicitly defaulted copy ctor

2024-06-28 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115198

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #7 from Patrick Palka  ---
Fixed for GCC 14.2, thanks for the bug report.

[Bug c++/115358] [13 Regression] template argument deduction/substitution failed in generic lambda function use of static constexpr array type whos initializer defines the size since r13-2540

2024-06-28 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115358

Patrick Palka  changed:

   What|Removed |Added

Summary|[13/14/15 Regression]   |[13 Regression] template
   |template argument   |argument
   |deduction/substitution  |deduction/substitution
   |failed in generic lambda|failed in generic lambda
   |function use of static  |function use of static
   |constexpr array type whos   |constexpr array type whos
   |initializer defines the |initializer defines the
   |size since r13-2540 |size since r13-2540

--- Comment #10 from Patrick Palka  ---
Fixed for GCC 14.2 so far.

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

2024-06-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
Bug 67491 depends on bug 115596, which changed state.

Bug 115596 Summary: Default arguments are erroneously allowed for parameters of 
a requires expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115596

   What|Removed |Added

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

[Bug c++/115596] Default arguments are erroneously allowed for parameters of a requires expression

2024-06-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115596

Patrick Palka  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org
 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #2 from Patrick Palka  ---
dup

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

[Bug c++/99511] default arguments are allowed for parameters of a requires expression

2024-06-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99511

Patrick Palka  changed:

   What|Removed |Added

 CC||fchelnokov at gmail dot com

--- Comment #2 from Patrick Palka  ---
*** Bug 115596 has been marked as a duplicate of this bug. ***

[Bug c++/115583] [14/15 Regression] C++23: Call to consteval function in `if consteval` immediate function context rejected at -O1 since r14-4140

2024-06-21 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115583

Patrick Palka  changed:

   What|Removed |Added

  Known to fail||14.1.0, 15.0
  Known to work||13.3.0
 CC||mpolacek at gcc dot gnu.org,
   ||ppalka at gcc dot gnu.org
   Target Milestone|--- |14.2
Summary|C++23: Call to consteval|[14/15 Regression] C++23:
   |function in `if consteval`  |Call to consteval function
   |immediate function context  |in `if consteval` immediate
   |rejected at -O1 |function context rejected
   ||at -O1 since r14-4140

--- Comment #2 from Patrick Palka  ---
Started with r14-4140

[Bug c++/115561] [14/15 Regression] ICE checking constraints when a local class is involved since r14-9659

2024-06-20 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115561

Patrick Palka  changed:

   What|Removed |Added

  Known to fail||14.1.0, 15.0
 CC||mpolacek at gcc dot gnu.org,
   ||ppalka at gcc dot gnu.org
   Keywords||ice-on-valid-code
 Status|UNCONFIRMED |NEW
  Known to work||13.3.0
   Last reconfirmed||2024-06-20
   Target Milestone|--- |14.2
 Ever confirmed|0   |1
Summary|[14/15 Regression] ICE  |[14/15 Regression] ICE
   |checking constraints when a |checking constraints when a
   |local class is involved |local class is involved
   ||since r14-9659

--- Comment #1 from Patrick Palka  ---
Confirmed, seems the ICE started with r14-9659.

[Bug c++/115358] [13/14/15 Regression] template argument deduction/substitution failed in generic lambda function use of static constexpr array type whos initializer defines the size since r13-2540

2024-06-18 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115358

Patrick Palka  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Status|NEW |ASSIGNED

--- Comment #7 from Patrick Palka  ---
Non-constexpr testcase exhibiting an even older regression (since
r8-2720-gf44a8dd56f5bfb):

template 
void f(int (&)[N]);

template 
struct A {
  static int STR[];
  A() { [](auto){ f(STR); }; }
};

template
int A::STR[] = {1,2,3};

A a;

[Bug c++/115504] [14/15 Regression] Wrong decltype result for a captured reference inside lambda since r14-5330

2024-06-18 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115504

Patrick Palka  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org

[Bug c++/99678] [concepts] requires-clause allows undeclared identifier

2024-06-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99678

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #6 from Patrick Palka  ---
Fixed for GCC 14.2, thanks for the bug report.

[Bug c++/115239] [14 Regression] ICE: Segmentation fault with ambiguous function call in some cases (`const char*` vs `char` with `long` vs `unsigned`) since r14-6522

2024-06-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115239

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #7 from Patrick Palka  ---
Fixed for GCC 14.2, thanks for the bug report.

[Bug c++/115283] [14 Regression] "used but never defined" with extern templates

2024-06-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115283

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #6 from Patrick Palka  ---
Fixed for GCC 14.2, thanks for the bug report.

[Bug c++/115239] [14 Regression] ICE: Segmentation fault with ambiguous function call in some cases (`const char*` vs `char` with `long` vs `unsigned`) since r14-6522

2024-06-14 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115239

Patrick Palka  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
Summary|[14/15 Regression] ICE: |[14 Regression] ICE:
   |Segmentation fault with |Segmentation fault with
   |ambiguous function call in  |ambiguous function call in
   |some cases (`const char*`   |some cases (`const char*`
   |vs `char` with `long` vs|vs `char` with `long` vs
   |`unsigned`) since r14-6522  |`unsigned`) since r14-6522
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org

[Bug c++/99678] [concepts] requires-clause allows undeclared identifier

2024-06-13 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99678

Patrick Palka  changed:

   What|Removed |Added

   Target Milestone|--- |14.2

[Bug c++/115283] [14 Regression] "used but never defined" with extern templates

2024-06-12 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115283

Patrick Palka  changed:

   What|Removed |Added

Summary|[14/15 Regression] "used|[14 Regression] "used but
   |but never defined" with |never defined" with extern
   |extern templates|templates
   Assignee|unassigned at gcc dot gnu.org      |ppalka at gcc dot 
gnu.org
   Keywords||link-failure
 Status|NEW |ASSIGNED

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

2024-06-12 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
Bug 67491 depends on bug 115429, which changed state.

Bug 115429 Summary: requires clause wrongly accepts unqualified access to 
inherited static members
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115429

   What|Removed |Added

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

[Bug c++/99678] [concepts] requires-clause allows undeclared identifier

2024-06-12 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99678

Patrick Palka  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Status|UNCONFIRMED |ASSIGNED
 Ever confirmed|0   |1
   Last reconfirmed||2024-06-12

[Bug c++/99678] [concepts] requires-clause allows undeclared identifier

2024-06-12 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99678

Patrick Palka  changed:

   What|Removed |Added

 CC||eratchias at gmail dot com

--- Comment #3 from Patrick Palka  ---
*** Bug 115429 has been marked as a duplicate of this bug. ***

[Bug c++/115429] requires clause wrongly accepts unqualified access to inherited static members

2024-06-12 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115429

Patrick Palka  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ppalka at gcc dot gnu.org
 Resolution|--- |DUPLICATE

--- Comment #2 from Patrick Palka  ---
This is essentially a dup of PR99678 -- we should have rejected the
requires-clause at parse time since unqualified lookup for 'con' failed, but
because we didn't we naturally ended up repeating unqualified lookup at
instantiation time which succeeded.

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

[Bug c++/115378] [14/15 Regression] ICE with lambda function as a default template argument with variadic templates in some cases

2024-06-10 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115378

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #9 from Patrick Palka  ---
Fixed for GCC 14.2

[Bug c++/115378] [14/15 Regression] ICE with lambda function as a default template argument with variadic templates in some cases

2024-06-07 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115378

Patrick Palka  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Keywords|needs-bisection |
 CC||ppalka at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org

--- Comment #6 from Patrick Palka  ---
Started with r14-9943.

[Bug c++/115223] [15 regression] ICE when building KDE kontrast with LTO (error: ‘TYPE_CANONICAL’ has different ‘TYPE_CANONICAL’) since r15-779-g3c98d06a9016a0

2024-05-29 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115223

Patrick Palka  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|UNCONFIRMED |RESOLVED
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org

--- Comment #5 from Patrick Palka  ---
Fixed

[Bug c++/115198] Class template argument deduction fails for copy ctor when used with an alias template if the aliased class template has explicitly defaulted copy ctor

2024-05-23 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115198

Patrick Palka  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Status|NEW |ASSIGNED
 CC||ppalka at gcc dot gnu.org
   Target Milestone|--- |14.2

[Bug c++/115159] internal compiler error: in nothrow_spec_p, at cp/except.cc:1206 when using modules and QCoreApplication

2024-05-22 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115159

Patrick Palka  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
  Known to fail||14.1.0
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
  Known to work||15.0

--- Comment #5 from Patrick Palka  ---
Should be fixed on trunk now, sadly the fix isn't suitable for backporting.

[Bug c++/115139] [14 Regression] Enum inside variadic template class can't define one of self with usage another value from this enum

2024-05-21 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115139

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #4 from Patrick Palka  ---
Fixed for GCC 14.2, thanks for the bug report.

[Bug c++/115159] internal compiler error: in nothrow_spec_p, at cp/except.cc:1206 when using modules and QCoreApplication

2024-05-21 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115159

Patrick Palka  changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed|2024-05-19 00:00:00 |2024-05-21
 Status|UNCONFIRMED |NEW
 CC||ppalka at gcc dot gnu.org

--- Comment #3 from Patrick Palka  ---
Confirmed, thanks for the reproducer.

Reduced:

$ cat 115159_a.H
struct QDebug;

template void f(T);

template struct QList {
  QDebug operator<(QList ) noexcept(noexcept(f(other)));
  QDebug operator>(QList ) noexcept(noexcept(f(other)));
};

struct QObjectData {
  QList children;
};

struct QIODevice {
  QObjectData d_ptr;
};

struct QDebug {
  QDebug(QIODevice);
};

$ cat 115159_b.C
import "115159_a.H";

$ g++ -fno-module-lazy -fmodules-ts -std=c++20 115159_{a.H,b.C}
115159_b.C:1:22: internal compiler error: in nothrow_spec_p, at
cp/except.cc:1202

[Bug c++/115114] aggregate initialization with parens fails when there is a base class

2024-05-20 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115114

Patrick Palka  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 CC||ppalka at gcc dot gnu.org
   Target Milestone|--- |14.2
 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #4 from Patrick Palka  ---
Fixed for GCC 14.2, thanks for the bug report.

[Bug c++/114994] [14/15 Regression] fmtlib named argument compiler error introduced in g++-14.1

2024-05-20 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114994

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #8 from Patrick Palka  ---
Fixed for GCC 14.2, thanks for the bug report.

[Bug libstdc++/115126] TU-local entity exposures in libstdc++

2024-05-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115126

Patrick Palka  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org

--- Comment #1 from Patrick Palka  ---
For __is_unique_ptr, seems we could just remove it since it isn't actually used
anywhere.

[Bug c++/115139] [14 Regression] Enum inside variadic template class can't define one of self with usage another value from this enum

2024-05-17 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115139

Patrick Palka  changed:

   What|Removed |Added

   Target Milestone|--- |14.2
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Ever confirmed|0   |1
   Last reconfirmed||2024-05-17
 Status|UNCONFIRMED |ASSIGNED
   Keywords||ice-on-valid-code
Summary|Enum inside variadic|[14 Regression] Enum inside
   |template class can't define |variadic template class
   |one of self with usage  |can't define one of self
   |another value from this |with usage another value
   |enum|from this enum
 CC||ppalka at gcc dot gnu.org

--- Comment #1 from Patrick Palka  ---
Confirmed, started with r14-4796-g3e3d73ed5e85e7.  Interestingly
r15-123-gf04dc89a991ddc made us accept this testcase on trunk, so this is a 14
regression only.

[Bug c++/114850] co_await a async function which result type is std::unique_ptr<...> or shared_ptr in a initializer list causes ICE

2024-05-16 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114850

Patrick Palka  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org
 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #4 from Patrick Palka  ---
(In reply to Jeremy Pewterschmidt from comment #3)
> This issue is no longer reproducible in GCC 14.
> Should I mark this as `RESOLVED` ?
Yes, the ICE disappeared after r14-8437-g44868e7298de50, so I reckon this is a
dup of 109227.

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

[Bug c++/109227] coroutines: ICE in tree check: expected record_type or union_type or qual_union_type, have array_type in build_special_member_call, at cp/call.cc:11067

2024-05-16 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109227

Patrick Palka  changed:

   What|Removed |Added

 CC||jeremypewterschmidt at gmail 
dot c
   ||om

--- Comment #9 from Patrick Palka  ---
*** Bug 114850 has been marked as a duplicate of this bug. ***

[Bug c++/86933] GCC fails to recognize specialization of variadic non-type template parameter declared with `auto`

2024-05-15 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86933

Patrick Palka  changed:

   What|Removed |Added

 CC||420 at zerberste dot es

--- Comment #1 from Patrick Palka  ---
*** Bug 115079 has been marked as a duplicate of this bug. ***

[Bug c++/115079] unexpected error with partial specialization of template

2024-05-15 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115079

Patrick Palka  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 CC||ppalka at gcc dot gnu.org
 Status|NEW |RESOLVED

--- Comment #1 from Patrick Palka  ---
dup of PR86933 I think

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

[Bug c++/115061] Compiling gcc failed when using clang 16.0.6

2024-05-13 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115061

Patrick Palka  changed:

   What|Removed |Added

   Target Milestone|--- |15.0
 CC||ppalka at gcc dot gnu.org

[Bug c++/113332] [12/13 regression] checking ICE when building fcitx-5.1.6

2024-05-13 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113332

Patrick Palka  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED
   Target Milestone|12.4|14.0

--- Comment #6 from Patrick Palka  ---
It doesn't seem worth backporitng this relatively risky patch just to fix a
checking-only assertion failure that we otherwise gracefully handle.

[Bug c++/112658] [12/13 Regression] ICE: finish_expr_stmt with casting an temp array to pointer and constructor call

2024-05-13 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112658

Patrick Palka  changed:

   What|Removed |Added

 Resolution|--- |FIXED
   Target Milestone|12.4|14.0
 Status|ASSIGNED|RESOLVED

--- Comment #9 from Patrick Palka  ---
Not backporting any of these fixes since this never properly worked -- it was
either wrong-code, rejects-valid or (most recently) ice-on-valid -- and so not
really a regression.

[Bug c++/114903] constraint of CTAD alias deduction guide is evaluated on a wrong type

2024-05-13 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114903

Patrick Palka  changed:

   What|Removed |Added

 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Status|UNCONFIRMED |RESOLVED
   Target Milestone|--- |14.2
 CC||ppalka at gcc dot gnu.org

--- Comment #3 from Patrick Palka  ---
Fixed for GCC 14.2

[Bug c++/114901] GCC internal_error on CTAD alias

2024-05-13 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114901

Patrick Palka  changed:

   What|Removed |Added

   Target Milestone|--- |14.2
 CC||ppalka at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #7 from Patrick Palka  ---
Fixed for GCC 14.2

[Bug c++/114974] CTAD; templated inner class of template class seems to be handled incorrectly

2024-05-13 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114974

Patrick Palka  changed:

   What|Removed |Added

   Target Milestone|--- |14.2
 Resolution|--- |FIXED
 Status|NEW |RESOLVED
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 CC||ppalka at gcc dot gnu.org

--- Comment #4 from Patrick Palka  ---
Fixed for GCC 14.2, thanks for the reports.

[Bug c++/114990] Compiler errors in compiling a module-based app

2024-05-11 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114990

--- Comment #3 from Patrick Palka  ---
I reckon it's not something we can fix/implement in a point release of GCC 14,
but hopefully for 15...

[Bug c++/114994] [14/15 Regression] fmtlib named argument compiler error introduced in g++-14.1

2024-05-08 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114994

Patrick Palka  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Status|NEW |ASSIGNED

--- Comment #5 from Patrick Palka  ---
A bit more reduced, demostrating it's not specific to UDLs:

struct udl_arg {
  udl_arg operator=(int);
};

void g(udl_arg&&);

template
void h() {
  udl_arg x;
  g(x=42);
}

int main() {
  h();
}

[Bug c++/114990] Compiler errors in compiling a module-based app

2024-05-08 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114990

Patrick Palka  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org
 Depends on||99000

--- Comment #1 from Patrick Palka  ---
After preprocessing, it seems Main.cpp basically boils down to:

import CompilerVersions; // #1
#include// #2
import TypeTraits;   // #3

int main()
{
return 0;
}

The issue here seems to be the #include  appearing after the
import of CompilerVersions which (indirectly) also includes  (in
its GMF).  GCC currently supports import-after-include GMF merging (so #2
followed by #3 is OK) not but include-after-import.  See also
https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Modules.html

So one workaround would be to arrange that all #includes come before imports
which might include the same thing.  Another workaround would be to compile the
problematic headers ( in this case) as a header unit so that
#includes thereof implicitly translated into imports, via e.g.

g++ -fmodules-ts -x c++-system-header type_traits


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99000
[Bug 99000] [modules] merging of textual redefinitions: declaration
std::__copy_move_a2 conflicts with import

[Bug c++/103524] [meta-bug] modules issue

2024-05-07 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103524
Bug 103524 depends on bug 114889, which changed state.

Bug 114889 Summary: [modules] ICE in friend_accessible_p with imported class 
template specialization befriending class template
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114889

   What|Removed |Added

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

[Bug c++/114889] [modules] ICE in friend_accessible_p with imported class template specialization befriending class template

2024-05-07 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114889

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #3 from Patrick Palka  ---
Fixed for GCC 14.2

[Bug c++/99678] [concepts] requires-clause allows undeclared identifier

2024-05-07 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99678

Patrick Palka  changed:

   What|Removed |Added

Summary|c++20 trailing requires |[concepts] requires-clause
   |clauses allows undeclared   |allows undeclared
   |identifier  |identifier
 CC||ppalka at gcc dot gnu.org

--- Comment #2 from Patrick Palka  ---
>From PR114946:

(In reply to Nathaniel Shead from comment #0)
> The following sample compiles fine with 'g++ -std=c++20 -pedantic-errors':
> 
>   template 
> requires 
>   struct S {};
> 
>   template 
> requires 
>   void foo() {}
> 
> Note that '' has not been declared or defined.  Both MSVC and Clang
> complain about the undeclared identifier.  GCC does error if we attempt to
> instantiate either of these specialisations, but they always (silently) lose
> to a better match:
> 
>   template  struct S {};
>   template  requires  struct S {};
> 
>   template  void foo() {}
>   template  requires  void foo() {}
> 
>   int main() {
> S x;
> foo();
>   }

[Bug c++/99678] c++20 trailing requires clauses allows undeclared identifier

2024-05-07 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99678

Patrick Palka  changed:

   What|Removed |Added

 CC||nshead at gcc dot gnu.org

--- Comment #1 from Patrick Palka  ---
*** Bug 114946 has been marked as a duplicate of this bug. ***

[Bug c++/114946] [concepts] No error for invalid requires constraint in declaration

2024-05-07 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114946

Patrick Palka  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||ppalka at gcc dot gnu.org
 Resolution|--- |DUPLICATE

--- Comment #1 from Patrick Palka  ---
dup

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

[Bug c++/114913] "verify_gimple failed" due to addition of two constexpr strings

2024-05-02 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114913

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #8 from Patrick Palka  ---
PR110822 rather seems closely related if not a dup.

[Bug c++/114913] "verify_gimple failed" due to addition of two constexpr strings

2024-05-02 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114913

Patrick Palka  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=110802
 CC||ppalka at gcc dot gnu.org

--- Comment #7 from Patrick Palka  ---
PR110802

[Bug c++/113141] [13 Regression] ICE on conversion to reference in aggregate initialization

2024-05-01 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113141

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #12 from Patrick Palka  ---
Fixed for 13.3/14.

[Bug c++/114630] [14/15 Regression] [modules] building module with submodule causes corrupt gcm

2024-04-30 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114630

--- Comment #7 from Patrick Palka  ---
The following seems to minimally fix it:

diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index c35e70b8cb8..57ccaec5ebd 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -6798,7 +6798,7 @@ trees_in::core_vals (tree t)
   body) anyway.  */
decl = maybe_duplicate (decl);

-   if (!DECL_P (decl) || DECL_CHAIN (decl))
+   if (!DECL_P (decl) || (*chain && *chain != decl))
  {
set_overrun ();
break;

In 114630_c.C end up streaming the definition of _M_do_parse() twice, once
from modB and once from the transitive import of modA (which seems wasteful). 
The second time around the chain of local types _M_do_parse::A/B get
streamed as simple back references and therefore on stream-in they'll already
have DECL_CHAIN properly set, so we shouldn't give up just because DECL_CHAIN
is already set.  Rather, only give up if DECL_CHAIN of the previous decl isn't
what we expect it to be, i.e. either empty or what we want to set it to.

This raises the question, why do we stream the definition of _M_do_parse()
from the GMF of modA even though the same definition is already reachable (and
has been deduplicated) from the import of modB?  Seems like this is something
we could/should avoid.

[Bug c++/103524] [meta-bug] modules issue

2024-04-30 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103524
Bug 103524 depends on bug 106820, which changed state.

Bug 106820 Summary: [modules] ICE  in function_and_variable_visibility with 
modules and weakref
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106820

   What|Removed |Added

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

[Bug c++/99227] [meta-bug] [modules] Bugs relating to header-units of STL header files

2024-04-30 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99227
Bug 99227 depends on bug 106820, which changed state.

Bug 106820 Summary: [modules] ICE  in function_and_variable_visibility with 
modules and weakref
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106820

   What|Removed |Added

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

[Bug c++/106820] [modules] ICE in function_and_variable_visibility with modules and weakref

2024-04-30 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106820

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #11 from Patrick Palka  ---
Fixed for GCC 14(?)

[Bug c++/108059] internal compiler error: in tsubst_copy, at cp/pt.c:16425

2024-04-30 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108059

--- Comment #6 from Patrick Palka  ---
FWIW a workaround for most valid code is to replace e.g. ignore_index_t,
where v is the problematic NTTP argument, with ignore_index_t.

[Bug c++/114889] [modules] ICE in friend_accessible_p with imported class template specialization befriending class template

2024-04-29 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114889

Patrick Palka  changed:

   What|Removed |Added

   Target Milestone|--- |14.2

[Bug c++/114888] [14/15 Regression] ICE when cross compiling binutils

2024-04-29 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114888

Patrick Palka  changed:

   What|Removed |Added

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

--- Comment #9 from Patrick Palka  ---
Fixed.

[Bug c++/114888] [14/15 Regression] ICE when cross compiling binutils

2024-04-29 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114888

--- Comment #6 from Patrick Palka  ---
Yeah I think the TREE_TYPE of a compound type should never be null, at least as
far as type dependence is concerned.

[Bug c++/114888] [14/15 Regression] ICE when cross compiling binutils

2024-04-29 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114888

Patrick Palka  changed:

   What|Removed |Added

Summary|[14 Regression] ICE when|[14/15 Regression] ICE when
   |cross compiling binutils|cross compiling binutils
   Keywords||ice-checking,
   ||ice-on-valid-code
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
 Status|NEW |ASSIGNED

--- Comment #3 from Patrick Palka  ---
Seems we're missing a dependence check in the sizeof / sizeof code:

diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc
index e5a52dc2b39..284f6e29e36 100644
--- a/gcc/cp/typeck.cc
+++ b/gcc/cp/typeck.cc
@@ -5500,7 +5500,7 @@ cp_build_binary_op (const op_location_t ,
type0 = TREE_TYPE (type0);
  if (!TYPE_P (type1))
type1 = TREE_TYPE (type1);
- if (type0
+ if (type0 && type1
  && INDIRECT_TYPE_P (type0)
  && same_type_p (TREE_TYPE (type0), type1))
{

[Bug c++/114889] [modules] ICE in friend_accessible_p with imported class template specialization befriending class template

2024-04-29 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114889

Patrick Palka  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
 Blocks||103524
 Ever confirmed|0   |1
   Keywords||ice-checking, rejects-valid
   Last reconfirmed||2024-04-29
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103524
[Bug 103524] [meta-bug] modules issue

[Bug c++/114889] New: [modules] ICE in friend_accessible_p with imported class template specialization befriending class template

2024-04-29 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114889

Bug ID: 114889
   Summary: [modules] ICE in friend_accessible_p with imported
class template specialization befriending class
template
   Product: gcc
   Version: 14.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ppalka at gcc dot gnu.org
  Target Milestone: ---

$ cat testcase_a.C
export module mymod;

template 
struct _Hashtable;

export
template 
struct _Map_base {
  void f() {
_Hashtable<_Key, _Val> __h;
__h._M_hash_code(0);
  }
};

template 
struct _Hashtable {
  template  friend struct _Map_base;
protected:
  void _M_hash_code(int);
};

_Hashtable m;

$ cat testcase_b.C
import mymod;

int main() {
  _Map_base m;
  m.f();
}

$ g++ -fmodules-ts testcase_*
In module mymod, imported at testcase_b.C:1:
testcase_a.C: In instantiation of ‘void _Map_base@mymod<_Key, _Val>::f() [with
_Key = int; _Val = int]’:
testcase_b.C:5:6:   required from here
5 |   m.f();
  |   ~~~^~
testcase_a.C:11:21: internal compiler error: in friend_accessible_p, at
cp/search.cc:803
   11 | __h._M_hash_code(0);
  | ^~~

[Bug libstdc++/111258] std::string cannot to be moved in constant evaluated expression

2024-04-26 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111258

--- Comment #4 from Patrick Palka  ---
Many of these testcases (from here and the related PRs) are now accepted by GCC
14 after r14-10134.

[Bug c++/114630] [14/15 Regression] [modules] building module with submodule causes corrupt gcm

2024-04-26 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114630

--- Comment #6 from Patrick Palka  ---
(In reply to Nathaniel Shead from comment #5)
> That said, my version doesn't actually solve the underlying issue: my
> adjustment of your testcase to put instantiations into the module purview
> (and force emission there) still gives the same error for me.  So it sounds
> like there's something else being affected by DECL_MODULE_PURVIEW_P being
> set when maybe it shouldn't for an explicit specialisation.
Interesting, I guess one difference with your approach is that for 114630_b.C
we'll still end up installing the imported instantiations of
_M_do_parse()::A/B instead of instantiating them ourselves (within the
GMF), and so DECL_MODULE_IMPORT_P will be set on these local type
instantiations, and yet not on _M_do_parse() because this function
specialization was formed (but not instantiated) within the GMF.

That seems like a weird inconsistency, that DECL_MODULE_IMPORT_P is set on the
local types but not on the containing function..

[Bug c++/114630] [14/15 Regression] [modules] building module with submodule causes corrupt gcm

2024-04-26 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114630

--- Comment #4 from Patrick Palka  ---
(In reply to Patrick Palka from comment #3)
> And in 114630_c.C we no longer try to stream in the definition
> of _M_do_parse() twice, for some reason.
Oops, looks like we still stream in the definition twice with the fix but the
local types therein get deduplicated correctly now.

  1   2   3   4   5   6   7   8   9   10   >