https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109018
--- Comment #8 from qingzhe huang ---
I gdb a little bit and I feel this issue is fixable. See the comparison of
"unq" and "function" below is not compatible because "function" is
"IDENTIFIER_NODE" and "unq" is "VIEW_CONVERT_EXPR". If we check
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109018
--- Comment #7 from qingzhe huang ---
I find another argument from decltype in cppreference
(https://en.cppreference.com/w/cpp/language/decltype#Explanation)
quote:
Because no temporary object is created, the type need not be complete or have
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109018
--- Comment #6 from qingzhe huang ---
I agree "Note g can be still found after the declaration via argument dependent
lookup."
Can we view this issue from a different angle? The real work of parsing should
be started at "template function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109018
qingzhe huang changed:
What|Removed |Added
Resolution|INVALID |FIXED
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109018
Bug ID: 109018
Summary: decltype of dependent expressions lookup should be
done only when doing template function definition
Product: gcc
Version: 13.0
Status:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104699
--- Comment #6 from qingzhe huang ---
Really appreciate the detailed explanation!
Very clear and completely convinced.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104706
Bug ID: 104706
Summary: make_unique cannot create struct of size of 0 due to
default_delete's static_assert failure
Product: gcc
Version: 12.0
Status: UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104699
qingzhe huang changed:
What|Removed |Added
CC||nickhuang99 at hotmail dot com
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104699
Bug ID: 104699
Summary: zero-length-array is not considered as an array
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104568
Bug ID: 104568
Summary: ICE [regression c++20] caused by option "-std=c++20
-Wall" when operand of operator new has size equal to
0
Product: gcc
Version: 12.0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104548
Bug ID: 104548
Summary: parser rejects alias template id of lambda in
unevaluated-context and accepts when no alias is used
Product: gcc
Version: 12.0
Status:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104537
Bug ID: 104537
Summary: ICE when generic-lambda as function parameter fails to
be converted to pointer to function
Product: gcc
Version: 12.0
Status: UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104358
--- Comment #2 from qingzhe huang ---
Here are more tests (https://www.godbolt.org/z/5qc8jTGa8) to show that only
msvc is giving the correct result.
It just illustrates the use cases of this definition and why it should be
allowed.
1. By
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104358
--- Comment #1 from qingzhe huang ---
Sorry about the long description and here is the short version to highlight the
core issue. Given this template function with a templated lambda as parameter:
template
using Lambda=decltype(+[](T){});
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104319
--- Comment #10 from qingzhe huang ---
Here I have another test case. It involves an anonymous template argument which
confuses me for a lot at the time which clang is doing a great job to clarify
the reason for me.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104319
--- Comment #6 from qingzhe huang ---
But clang can give similar clear message by pointing out the space.
Just like ">>" instead "> >" after c++98, I think GCC can do better to
recognize ">>=" is possible of "> >=". Just considering even though
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104358
Bug ID: 104358
Summary: Assignable template lambda as function parameter is
incorrectly reduced to type of "int"
Product: gcc
Version: 12.0
Status: UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104319
--- Comment #2 from qingzhe huang ---
A slightly different case with operator ">=" after template-id causing
identical error message is: https://www.godbolt.org/z/7ajvfM4rb
#include
template
constexpr std::size_t zero=0;
template
constexpr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104319
Bug ID: 104319
Summary: "parse error of template argument list" due to missing
space in ">==", a better error message should be given
Product: gcc
Version: 12.0
Status:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104255
--- Comment #4 from qingzhe huang ---
(In reply to Patrick Palka from comment #2)
>
> error: use of parameter outside function body before ‘)’ token
>
> due to 'e' being used outside of an unevaluated context within the signature
> of the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104255
--- Comment #3 from qingzhe huang ---
(In reply to Patrick Palka from comment #2)
> The error message is obscure, but it seems what GCC has issue with here is
> the use of the function parameter seq2 in the trailing return type occurring
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104255
--- Comment #1 from qingzhe huang ---
Just a FYI, this version is a bit simplified from this original code.
(https://www.godbolt.org/z/n7ajzr46f) because this is an actual meaningful
function to reverse a given index_sequence. You can see if
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104255
Bug ID: 104255
Summary: parsing trailing return type fails with parameter pack
expansion when two parameter packs at present
Product: gcc
Version: 12.0
Status:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104113
--- Comment #6 from qingzhe huang ---
How about this simple fix? (see the patch above.)
Instead of return "error_mark_node" by condition of
"!cp_parser_simulate_error", we now report error immediately. The rational of
this fix is that
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104113
--- Comment #5 from qingzhe huang ---
Created attachment 52257
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52257=edit
cp_parser_simulate_error logic
diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index b262b765a9a..988631a4248
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104138
--- Comment #2 from qingzhe huang ---
Can we remove the phrase "with -g" from subject because it doesn't require to
compile with "-g" option? This will help for future subject search.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104138
Bug ID: 104138
Summary: ICE when lambda is passed as parameter
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104137
Bug ID: 104137
Summary: ICE when lambda has parameter of decltype of a
non-convertable lambda
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104113
Bug ID: 104113
Summary: DR 625 forbids "auto" being used in template argument
and parser fails to issue correct error message for it
Product: gcc
Version: 12.0
Status:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104091
Bug ID: 104091
Summary: -std=c++20 causing meaningless error message "'auto'
not allowed in alias declaration" which should be
"missing template arguments after ..."
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102925
--- Comment #2 from qingzhe huang ---
I suspect this is related to template-specialization-related issue because if I
use original implementation of "std::convertible_to" to declare my concept
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102925
Bug ID: 102925
Summary: [11.2]ICE with concept of std::convertible_to with
lambda in unevaluated-context
Product: gcc
Version: 12.0
Status: UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24666
Bug 24666 depends on bug 102033, which changed state.
Bug 102033 Summary: template function signature incorrectly drops top-level
cv-qualifiers causing template specialization failing to match
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102033
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102033
qingzhe huang changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24666
Bug 24666 depends on bug 102044, which changed state.
Bug 102044 Summary: another case of template function signature incorrectly
dropping top-level cv-qualifier with function parameter of array of template
function pointer
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102044
qingzhe huang changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24666
Bug 24666 depends on bug 102039, which changed state.
Bug 102039 Summary: another case of template function signature incorrectly
dropping top-level cv-qualifier with function parameter dependent on template
argument
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102039
qingzhe huang changed:
What|Removed |Added
Resolution|--- |FIXED
Status|UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102799
--- Comment #1 from qingzhe huang ---
Forget to mention that obviously this only happens with "-std=c++20" because of
lambda in unevaluated context support.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102799
Bug ID: 102799
Summary: decltype with lambda without body error cause ICE
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102735
Bug ID: 102735
Summary: privatization-1-compute.c results in both XFAIL and
PASS
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102728
Bug ID: 102728
Summary: requires statement fails to recognize lambda in
unevaluated context
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102721
--- Comment #5 from qingzhe huang ---
(In reply to qingzhe huang from comment #4)
> (In reply to Andrew Pinski from comment #2)
> > Note it is not array related either:
> > template<>
> > void A::foo(const decltype(+[]{}))
> > {}
>
> Yes, it
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102721
--- Comment #4 from qingzhe huang ---
(In reply to Andrew Pinski from comment #2)
> Note it is not array related either:
> template<>
> void A::foo(const decltype(+[]{}))
> {}
Yes, it is not array-related. But it is definitely member function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102721
Bug ID: 102721
Summary: out-of-line member function definition fails to allow
lambda in unevaluated-context of new feature in c++20
Product: gcc
Version: 12.0
Status:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102624
--- Comment #2 from qingzhe huang ---
(In reply to Richard Biener from comment #1)
> so it looks like some diagnostics affect current_function_decl, the key
> is omitting -quiet from the command-line that's usually added by the driver.
That
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92010
--- Comment #16 from qingzhe huang ---
> Ah yeah, I can reproduce the crash when invoking cc1plus directly and also
> when
> passing -Q to the driver. Might be better to open a separate PR for this as
> it
> seems to be a latent bug.
just
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102624
Bug ID: 102624
Summary: testcase lambda-uneval11.C causes cc1plus segment
fault
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92010
--- Comment #15 from qingzhe huang ---
>>Might be better to open a separate PR for this as it
seems to be a latent bug.
thanks, I will file a new bug.
From: ppalka at gcc dot gnu.org
Sent: October 5, 2021 5:05 PM
To:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92010
--- Comment #13 from qingzhe huang ---
(In reply to Patrick Palka from comment #12)
> (In reply to qingzhe huang from comment #11)
> > The testcase g++.dg/cpp2a/lambda-uneval11.C still suffers a segment fault if
> > run by compiler cc1plus with
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92010
qingzhe huang changed:
What|Removed |Added
CC||nickhuang99 at hotmail dot com
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102449
Bug ID: 102449
Summary: template parameter with default argument is used
without being verified during explicit specialization
Product: gcc
Version: 12.0
Status:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102410
Bug ID: 102410
Summary: parameter pack expansion twice when there is default
parameter during template specialization
Product: gcc
Version: 11.2.0
Status: UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102235
Bug ID: 102235
Summary: array not decay to pointer for template function
parameter during specialization with parameter pack as
template argument
Product: gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94501
qingzhe huang changed:
What|Removed |Added
CC||nickhuang99 at hotmail dot com
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102122
--- Comment #1 from qingzhe huang ---
I can see now this is maybe a testcase "gcc.dg/Wvla-parameter-2.c" issue: Do we
expect XFAIL and PASS happen at the same time?
For example, the input can be simplified as following:
XFAIL:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102122
Bug ID: 102122
Summary: contrib/compare_tests reports different result with
identical sum input
Product: gcc
Version: 11.1.0
Status: UNCONFIRMED
Severity:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102044
--- Comment #2 from qingzhe huang ---
The root cause of this issue maybe similar to those PR102033, PR102034,
PR102042 etc., however, this is still a distinctive case because of its nature.
It is not a "typename" indicating its a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102038
--- Comment #2 from qingzhe huang ---
Understand. Thank you.
BTW, is it possible to ask somebody to submit the patch on my behalf? I am very
lost of the whole procedure. Sorry for this dumb question.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102042
--- Comment #2 from qingzhe huang ---
Just tested with my fix, it can be fixed with my suggested patch in PR102033.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102042
--- Comment #1 from qingzhe huang ---
Slightly change the prototype of "g" from reference to pointer, you have exact
same error. (please note #0 changes to pointer type)
#include
template
void f(const T[N]){}
template
using
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102044
Bug ID: 102044
Summary: another case of template function signature
incorrectly dropping top-level cv-qualifier with
function parameter of array of template function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102042
Bug ID: 102042
Summary: specialization after instantiation error possibly
rooted from mis-calculating template function
signature of parameter of array of template function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102039
Bug ID: 102039
Summary: another case of template function signature
incorrectly dropping top-level cv-qualifier with
function parameter dependent on template argument
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102038
Bug ID: 102038
Summary: another case of template function signature
incorrectly dropping top-level cv-qualifier with
function parameter of decltype from qualified-id of
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102033
--- Comment #3 from qingzhe huang ---
I can give tons of similar cases with even more complicated template levels
combined with using/typedefs/default arguments. i.e.
template
struct A{
template
struct B{
using
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102034
Bug ID: 102034
Summary: template function signature incorrectly drops
top-level cv-qualifiers of parameter from
typedef-array of template-template
Product: gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102033
Bug ID: 102033
Summary: template function signature incorrectly drops
top-level cv-qualifiers causing template
specialization failing to match
Product: gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51851
--- Comment #7 from qingzhe huang ---
Thank you for clarifications!
I just found a solution for this 10-year-old issue and preparing a patch.
However, the solution is not able to solve more complicated cases which
requires more work.
This issue
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101783
--- Comment #9 from qingzhe huang ---
OK, Thank you very much!
From: redi at gcc dot gnu.org
Sent: August 23, 2021 9:37 AM
To: nickhuan...@hotmail.com
Subject: [Bug c++/101783] unnecessary error when top
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101783
--- Comment #7 from qingzhe huang ---
Jonathan,
Is it possible for you to review and commit my patch?
(https://gcc.gnu.org/pipermail/gcc-patches/2021-August/577040.html).
Thank you!
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51851
--- Comment #4 from qingzhe huang ---
At least since release/gcc-10, this test code has been successfully compiled.
Can we change its status to Resolved?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101402
--- Comment #3 from qingzhe huang ---
bug 51851 has been fixed by latest release/gcc-10, but not this issue. So, I
suggest to change this bug status to New.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102002
--- Comment #2 from qingzhe huang ---
Thank you and my apology.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102002
Bug ID: 102002
Summary: spec requires typename can be dropped when used as
template function return type consisting of template
parameter which is at global scope
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101982
--- Comment #3 from qingzhe huang ---
Thank you for clarifications!
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101982
Bug ID: 101982
Summary: function parameter should not accept auto as
placeholder-type-specifier
Product: gcc
Version: 7.5.0
Status: UNCONFIRMED
Severity:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101783
nick huang changed:
What|Removed |Added
CC||nickhuang99 at hotmail dot com
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101783
--- Comment #1 from nick huang ---
The following snippet of code and error gives more clear the issue.
Considering:
template struct A{
typedef T& Type;
};
template
void f(const typename A::Type){}
struct B{};
template <>
void f(const
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101783
Bug ID: 101783
Summary: unnecessary error when top level cv qualifier is
dropped
Product: gcc
Version: 10.2.0
Status: UNCONFIRMED
Severity: normal
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101402
Bug ID: 101402
Summary: top cv qualifier not dropped for array type typedef in
template class (core 1001)
Product: gcc
Version: 10.2.0
Status: UNCONFIRMED
81 matches
Mail list logo