aboutsummaryrefslogtreecommitdiff
path: root/contrib/test_mklog.py
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-05-21 10:14:56 +0200
committerMartin Liska <mliska@suse.cz>2020-05-21 10:14:56 +0200
commite7c7cdc5f427281c675b7a42a1554dfdaa03e185 (patch)
treefe2130bc8667df58770a448f7ec9299628bb6a04 /contrib/test_mklog.py
parentf094665d465cdf8903797cc58bea13007e588616 (diff)
downloadgcc-e7c7cdc5f427281c675b7a42a1554dfdaa03e185.zip
gcc-e7c7cdc5f427281c675b7a42a1554dfdaa03e185.tar.gz
gcc-e7c7cdc5f427281c675b7a42a1554dfdaa03e185.tar.bz2
mklog: support parsing of DR.
* mklog.py: Support DR parsing. * test_mklog.py: New test for DR parsing.
Diffstat (limited to 'contrib/test_mklog.py')
-rwxr-xr-xcontrib/test_mklog.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/contrib/test_mklog.py b/contrib/test_mklog.py
index 774b6ea..ef7f2b1 100755
--- a/contrib/test_mklog.py
+++ b/contrib/test_mklog.py
@@ -344,6 +344,41 @@ gcc/ChangeLog:
'''
+PATCH7 = '''\
+diff --git a/gcc/testsuite/g++.dg/DRs/dr2237.C b/gcc/testsuite/g++.dg/DRs/dr2237.C
+new file mode 100644
+index 00000000000..f3d6d11e61e
+--- /dev/null
++++ b/gcc/testsuite/g++.dg/DRs/dr2237.C
+@@ -0,0 +1,18 @@
++// DR 2237 - Can a template-id name a constructor?
++
++template<class T>
++struct X {
++ X<T>(); // { dg-error "expected" "" { target c++20 } }
++ X(int); // OK, injected-class-name used
++ ~X<T>(); // { dg-error "template-id not allowed for destructor" "" { target c++20 } }
++};
++
++// ill-formed since DR1435
++template<typename T> X<T>::X<T>() {} // { dg-error "names the constructor|as no template constructors" }
++template<typename T> X<T>::~X<T>() {} // { dg-error "template-id not allowed for destructor" "" { target c++20 } }
++
++struct Q {
++ // ill-formed since DR1435
++ template<typename T> friend X<T>::X<T>(); // { dg-error "names the constructor|as no template constructors" }
++ template<typename T> friend X<T>::~X<T>(); // { dg-error "template-id not allowed for destructor" "" { target c++20 } }
++};
+'''
+
+EXPECTED7 = '''\
+gcc/testsuite/ChangeLog:
+
+ DR 2237
+ * g++.dg/DRs/dr2237.C: New test.
+
+'''
+
class TestMklog(unittest.TestCase):
def test_macro_definition(self):
changelog = generate_changelog(PATCH1)
@@ -372,3 +407,7 @@ class TestMklog(unittest.TestCase):
def test_gty_in_struct(self):
changelog = generate_changelog(PATCH6, fill_pr_titles=True)
assert changelog == EXPECTED6
+
+ def test_dr_detection_in_test_case(self):
+ changelog = generate_changelog(PATCH7)
+ assert changelog == EXPECTED7