diff options
author | Patrick Palka <ppalka@redhat.com> | 2023-10-25 09:03:52 -0400 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2023-10-25 09:03:52 -0400 |
commit | fb28d5c6b0a47ab704290d0122f978d1e6346551 (patch) | |
tree | 483db80fc898d266bbf79130673fd215dd0ecf74 | |
parent | ac66744d94226a2763690dee2bfe4805b82bf90e (diff) | |
download | gcc-fb28d5c6b0a47ab704290d0122f978d1e6346551.zip gcc-fb28d5c6b0a47ab704290d0122f978d1e6346551.tar.gz gcc-fb28d5c6b0a47ab704290d0122f978d1e6346551.tar.bz2 |
c++: add fixed testcase [PR99804]
We accept the non-dependent call f(e) here ever since the
NON_DEPENDENT_EXPR removal patch r14-4793-gdad311874ac3b3.
I haven't looked closely into why but I suspect wrapping 'e'
in a NON_DEPENDENT_EXPR was causing the argument conversion
to misbehave.
PR c++/99804
gcc/testsuite/ChangeLog:
* g++.dg/template/enum9.C: New test.
-rw-r--r-- | gcc/testsuite/g++.dg/template/enum9.C | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/enum9.C b/gcc/testsuite/g++.dg/template/enum9.C new file mode 100644 index 0000000..c992cd5 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/enum9.C @@ -0,0 +1,12 @@ +// PR c++/99804 + +struct S { + enum E { A, B } e : 1; + void f(E); + template<class> void g() { f(e); } +}; + +int main() { + S s; + s.g<int>(); +} |