test_mklog.py revision 1.1.1.2 1 1.1 mrg #!/usr/bin/env python3
2 1.1 mrg
3 1.1 mrg # Copyright (C) 2020 Free Software Foundation, Inc.
4 1.1 mrg #
5 1.1 mrg # This file is part of GCC.
6 1.1 mrg #
7 1.1 mrg # GCC is free software; you can redistribute it and/or modify
8 1.1 mrg # it under the terms of the GNU General Public License as published by
9 1.1 mrg # the Free Software Foundation; either version 3, or (at your option)
10 1.1 mrg # any later version.
11 1.1 mrg #
12 1.1 mrg # GCC is distributed in the hope that it will be useful,
13 1.1 mrg # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 1.1 mrg # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 1.1 mrg # GNU General Public License for more details.
16 1.1 mrg #
17 1.1 mrg # You should have received a copy of the GNU General Public License
18 1.1 mrg # along with GCC; see the file COPYING. If not, write to
19 1.1 mrg # the Free Software Foundation, 51 Franklin Street, Fifth Floor,
20 1.1 mrg # Boston, MA 02110-1301, USA.
21 1.1 mrg
22 1.1 mrg # This script parses a .diff file generated with 'diff -up' or 'diff -cp'
23 1.1 mrg # and adds a skeleton ChangeLog file to the file. It does not try to be
24 1.1 mrg # too smart when parsing function names, but it produces a reasonable
25 1.1 mrg # approximation.
26 1.1 mrg #
27 1.1 mrg # Author: Martin Liska <mliska (at] suse.cz>
28 1.1 mrg
29 1.1 mrg import unittest
30 1.1 mrg
31 1.1 mrg from mklog import generate_changelog
32 1.1 mrg
33 1.1 mrg import unidiff
34 1.1 mrg
35 1.1 mrg unidiff_supports_renaming = hasattr(unidiff.PatchedFile(), 'is_rename')
36 1.1 mrg
37 1.1 mrg
38 1.1 mrg PATCH1 = '''\
39 1.1 mrg diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h
40 1.1 mrg index 567c23380fe..e6209ede9d6 100644
41 1.1 mrg --- a/gcc/config/riscv/riscv.h
42 1.1 mrg +++ b/gcc/config/riscv/riscv.h
43 1.1 mrg @@ -920,6 +920,7 @@ extern unsigned riscv_stack_boundary;
44 1.1 mrg #define SHIFT_RS1 15
45 1.1 mrg #define SHIFT_IMM 20
46 1.1 mrg #define IMM_BITS 12
47 1.1 mrg +#define C_S_BITS 5
48 1.1 mrg #define C_SxSP_BITS 6
49 1.1 mrg
50 1.1 mrg #define IMM_REACH (1LL << IMM_BITS)
51 1.1 mrg @@ -929,6 +930,10 @@ extern unsigned riscv_stack_boundary;
52 1.1 mrg #define SWSP_REACH (4LL << C_SxSP_BITS)
53 1.1 mrg #define SDSP_REACH (8LL << C_SxSP_BITS)
54 1.1 mrg
55 1.1 mrg +/* This is the maximum value that can be represented in a compressed load/store
56 1.1 mrg + offset (an unsigned 5-bit value scaled by 4). */
57 1.1 mrg +#define CSW_MAX_OFFSET ((4LL << C_S_BITS) - 1) & ~3
58 1.1 mrg +
59 1.1 mrg /* Called from RISCV_REORG, this is defined in riscv-sr.c. */
60 1.1 mrg
61 1.1 mrg extern void riscv_remove_unneeded_save_restore_calls (void);
62 1.1 mrg
63 1.1 mrg '''
64 1.1 mrg
65 1.1 mrg EXPECTED1 = '''\
66 1.1 mrg gcc/ChangeLog:
67 1.1 mrg
68 1.1 mrg * config/riscv/riscv.h (C_S_BITS):
69 1.1 mrg (CSW_MAX_OFFSET):
70 1.1 mrg
71 1.1 mrg '''
72 1.1 mrg
73 1.1 mrg PATCH2 = '''\
74 1.1 mrg diff --git a/gcc/targhooks.h b/gcc/targhooks.h
75 1.1 mrg index 9704d23f1db..b572a36e8cf 100644
76 1.1 mrg --- a/gcc/targhooks.h
77 1.1 mrg +++ b/gcc/targhooks.h
78 1.1 mrg @@ -120,7 +120,7 @@ extern bool default_empty_mask_is_expensive (unsigned);
79 1.1 mrg extern void *default_init_cost (class loop *);
80 1.1 mrg extern unsigned default_add_stmt_cost (class vec_info *, void *, int,
81 1.1 mrg enum vect_cost_for_stmt,
82 1.1 mrg - class _stmt_vec_info *, int,
83 1.1 mrg + class _stmt_vec_info *, tree, int,
84 1.1 mrg enum vect_cost_model_location);
85 1.1 mrg extern void default_finish_cost (void *, unsigned *, unsigned *, unsigned *);
86 1.1 mrg extern void default_destroy_cost_data (void *);
87 1.1 mrg @@ -186,6 +186,7 @@ extern tree default_emutls_var_init (tree, tree, tree);
88 1.1 mrg extern unsigned int default_hard_regno_nregs (unsigned int, machine_mode);
89 1.1 mrg extern bool default_hard_regno_scratch_ok (unsigned int);
90 1.1 mrg extern bool default_mode_dependent_address_p (const_rtx, addr_space_t);
91 1.1 mrg +extern bool default_new_address_profitable_p (rtx, rtx_insn *, rtx);
92 1.1 mrg extern bool default_target_option_valid_attribute_p (tree, tree, tree, int);
93 1.1 mrg extern bool default_target_option_pragma_parse (tree, tree);
94 1.1 mrg extern bool default_target_can_inline_p (tree, tree);
95 1.1 mrg
96 1.1 mrg '''
97 1.1 mrg
98 1.1 mrg EXPECTED2 = '''\
99 1.1 mrg gcc/ChangeLog:
100 1.1 mrg
101 1.1 mrg * targhooks.h (default_add_stmt_cost):
102 1.1 mrg (default_new_address_profitable_p):
103 1.1 mrg
104 1.1 mrg '''
105 1.1 mrg
106 1.1 mrg PATCH3 = '''\
107 1.1 mrg diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
108 1.1 mrg index 2b1e33f94ae..7f47402f9b9 100644
109 1.1 mrg --- a/libcpp/include/cpplib.h
110 1.1 mrg +++ b/libcpp/include/cpplib.h
111 1.1 mrg @@ -173,7 +173,7 @@ enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11, CLK_GNUC17, CLK_GNUC2X,
112 1.1 mrg CLK_STDC2X,
113 1.1 mrg CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11,
114 1.1 mrg CLK_GNUCXX14, CLK_CXX14, CLK_GNUCXX17, CLK_CXX17,
115 1.1 mrg - CLK_GNUCXX2A, CLK_CXX2A, CLK_ASM};
116 1.1 mrg + CLK_GNUCXX20, CLK_CXX20, CLK_ASM};
117 1.1 mrg
118 1.1 mrg /* Payload of a NUMBER, STRING, CHAR or COMMENT token. */
119 1.1 mrg struct GTY(()) cpp_string {
120 1.1 mrg @@ -484,7 +484,7 @@ struct cpp_options
121 1.1 mrg /* Nonzero for C2X decimal floating-point constants. */
122 1.1 mrg unsigned char dfp_constants;
123 1.1 mrg
124 1.1 mrg - /* Nonzero for C++2a __VA_OPT__ feature. */
125 1.1 mrg + /* Nonzero for C++20 __VA_OPT__ feature. */
126 1.1 mrg unsigned char va_opt;
127 1.1 mrg
128 1.1 mrg /* Nonzero for the '::' token. */
129 1.1 mrg
130 1.1 mrg '''
131 1.1 mrg
132 1.1 mrg EXPECTED3 = '''\
133 1.1 mrg libcpp/ChangeLog:
134 1.1 mrg
135 1.1 mrg * include/cpplib.h (enum c_lang):
136 1.1 mrg (struct cpp_options):
137 1.1 mrg
138 1.1 mrg '''
139 1.1 mrg
140 1.1 mrg EXPECTED3B = '''\
141 1.1 mrg libcpp/ChangeLog:
142 1.1 mrg
143 1.1 mrg * include/cpplib.h:
144 1.1 mrg
145 1.1 mrg '''
146 1.1 mrg
147 1.1 mrg PATCH4 = '''\
148 1.1 mrg diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
149 1.1 mrg index aab79492357..f0df1002488 100644
150 1.1 mrg --- a/gcc/ipa-icf.c
151 1.1 mrg +++ b/gcc/ipa-icf.c
152 1.1 mrg @@ -1,5 +1,7 @@
153 1.1 mrg
154 1.1 mrg
155 1.1 mrg +
156 1.1 mrg +
157 1.1 mrg /* Interprocedural Identical Code Folding pass
158 1.1 mrg Copyright (C) 2014-2020 Free Software Foundation, Inc.
159 1.1 mrg
160 1.1 mrg diff --git a/gcc/testsuite/gcc.dg/pr32374.c b/gcc/testsuite/gcc.dg/pr32374.c
161 1.1 mrg deleted file mode 100644
162 1.1 mrg index de15d559f5b..00000000000
163 1.1 mrg --- a/gcc/testsuite/gcc.dg/pr32374.c
164 1.1 mrg +++ /dev/null
165 1.1 mrg @@ -1,20 +0,0 @@
166 1.1 mrg -/* { dg-do compile } */
167 1.1 mrg -/* { dg-options "-O2" } */
168 1.1 mrg -
169 1.1 mrg -extern int *stderr;
170 1.1 mrg -
171 1.1 mrg -void f (int *, const char *, ...);
172 1.1 mrg -
173 1.1 mrg -void g (const char *conf_name)
174 1.1 mrg -{
175 1.1 mrg - typedef struct
176 1.1 mrg - {
177 1.1 mrg - const char *label;
178 1.1 mrg - const int value;
179 1.1 mrg - } Section;
180 1.1 mrg -
181 1.1 mrg - const Section sections[2] = { {"", 0}, {"", 1} };
182 1.1 mrg -
183 1.1 mrg - f (stderr, "", "", conf_name, 0, sections[0]);
184 1.1 mrg - f (stderr, "", "", conf_name, 0, sections[0]);
185 1.1 mrg -}
186 1.1 mrg diff --git a/gcc/testsuite/gcc.dg/pr40209.c b/gcc/testsuite/gcc.dg/pr40209.c
187 1.1 mrg index 4e77df5c2e6..c23d69d1f1b 100644
188 1.1 mrg --- a/gcc/testsuite/gcc.dg/pr40209.c
189 1.1 mrg +++ b/gcc/testsuite/gcc.dg/pr40209.c
190 1.1 mrg @@ -1,6 +1,8 @@
191 1.1 mrg /* { dg-do compile } */
192 1.1 mrg /* { dg-options "-O2 -fprofile-use -fopt-info -Wno-missing-profile" } */
193 1.1 mrg
194 1.1 mrg +
195 1.1 mrg +
196 1.1 mrg void process(const char *s);
197 1.1 mrg
198 1.1 mrg struct BaseHolder {
199 1.1 mrg diff --git a/gcc/testsuite/gcc.dg/pr50209.c b/gcc/testsuite/gcc.dg/pr50209.c
200 1.1 mrg new file mode 100644
201 1.1 mrg index 00000000000..b28b04f6431
202 1.1 mrg --- /dev/null
203 1.1 mrg +++ b/gcc/testsuite/gcc.dg/pr50209.c
204 1.1 mrg @@ -0,0 +1,3 @@
205 1.1 mrg +
206 1.1 mrg +
207 1.1 mrg +
208 1.1 mrg diff --git a/gcc/testsuite/gcc.dg/pr63567-1.c b/gcc/testsuite/gcc.dg/pr63567-1.c
209 1.1 mrg index 97da171563e..00c5ecc11fa 100644
210 1.1 mrg --- a/gcc/testsuite/gcc.dg/pr63567-1.c
211 1.1 mrg +++ b/gcc/testsuite/gcc.dg/pr63567-1.c
212 1.1 mrg @@ -1,3 +1,4 @@
213 1.1 mrg +
214 1.1 mrg /* PR c/63567 */
215 1.1 mrg /* { dg-do compile } */
216 1.1 mrg /* { dg-options "" } */
217 1.1 mrg diff --git a/gcc/varasm.c b/gcc/varasm.c
218 1.1 mrg index f062e48071f..fd3c7ca8cf3 100644
219 1.1 mrg --- a/gcc/varasm.c
220 1.1 mrg +++ b/gcc/varasm.c
221 1.1 mrg @@ -1,3 +1,5 @@
222 1.1 mrg +
223 1.1 mrg +
224 1.1 mrg /* Output variables, constants and external declarations, for GNU compiler.
225 1.1 mrg Copyright (C) 1987-2020 Free Software Foundation, Inc.
226 1.1 mrg
227 1.1 mrg diff --git a/libssp/gets-chk.c b/libssp/gets-chk.c
228 1.1 mrg index 4ad78c1f77b..6687b368038 100644
229 1.1 mrg --- a/libssp/gets-chk.c
230 1.1 mrg +++ b/libssp/gets-chk.c
231 1.1 mrg @@ -32,6 +32,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
232 1.1 mrg <http://www.gnu.org/licenses/>. */
233 1.1 mrg
234 1.1 mrg
235 1.1 mrg +
236 1.1 mrg +
237 1.1 mrg #include "config.h"
238 1.1 mrg #include <ssp/ssp.h>
239 1.1 mrg #include <stdarg.h>
240 1.1 mrg '''
241 1.1 mrg
242 1.1 mrg EXPECTED4 = '''\
243 1.1 mrg
244 1.1 mrg PR 50209
245 1.1 mrg
246 1.1 mrg gcc/ChangeLog:
247 1.1 mrg
248 1.1 mrg * ipa-icf.c:
249 1.1 mrg * varasm.c:
250 1.1 mrg
251 1.1 mrg libssp/ChangeLog:
252 1.1 mrg
253 1.1 mrg * gets-chk.c:
254 1.1 mrg
255 1.1 mrg gcc/testsuite/ChangeLog:
256 1.1 mrg
257 1.1 mrg * gcc.dg/pr40209.c:
258 1.1 mrg * gcc.dg/pr63567-1.c:
259 1.1 mrg * gcc.dg/pr32374.c: Removed.
260 1.1 mrg * gcc.dg/pr50209.c: New test.
261 1.1 mrg
262 1.1 mrg '''
263 1.1 mrg
264 1.1 mrg PATCH5 = '''\
265 1.1 mrg diff --git a/gcc/testsuite/gcc.target/i386/pr95046-6.c b/gcc/testsuite/gcc.target/i386/pr95046-6.c
266 1.1 mrg new file mode 100644
267 1.1 mrg index 00000000000..dcc8999c446
268 1.1 mrg --- /dev/null
269 1.1 mrg +++ b/gcc/testsuite/gcc.target/i386/pr95046-6.c
270 1.1 mrg @@ -0,0 +1,44 @@
271 1.1 mrg +/* PR target/95046 */
272 1.1 mrg +/* { dg-do compile { target { ! ia32 } } } */
273 1.1 mrg +/* { dg-options "-O3 -mavx512vl" } */
274 1.1 mrg +
275 1.1 mrg +
276 1.1 mrg +double r[2];
277 1.1 mrg +int s[2];
278 1.1 mrg +unsigned int u[2];
279 1.1 mrg +
280 1.1 mrg +void
281 1.1 mrg +test_float (void)
282 1.1 mrg +{
283 1.1 mrg + for (int i = 0; i < 2; i++)
284 1.1 mrg + r[i] = s[i];
285 1.1 mrg +}
286 1.1 mrg +
287 1.1 mrg +/* { dg-final { scan-assembler "\tvcvtdq2pd" } } */
288 1.1 mrg +
289 1.1 mrg +void
290 1.1 mrg +test_ufloat (void)
291 1.1 mrg +{
292 1.1 mrg + for (int i = 0; i < 2; i++)
293 1.1 mrg + r[i] = u[i];
294 1.1 mrg +}
295 1.1 mrg +
296 1.1 mrg +/* { dg-final { scan-assembler "\tvcvtudq2pd" } } */
297 1.1 mrg +
298 1.1 mrg +void
299 1.1 mrg +test_fix (void)
300 1.1 mrg +{
301 1.1 mrg + for (int i = 0; i < 2; i++)
302 1.1 mrg + s[i] = r[i];
303 1.1 mrg +}
304 1.1 mrg +
305 1.1 mrg +/* { dg-final { scan-assembler "\tvcvttpd2dqx" } } */
306 1.1 mrg +
307 1.1 mrg +void
308 1.1 mrg +test_ufix (void)
309 1.1 mrg +{
310 1.1 mrg + for (int i = 0; i < 2; i++)
311 1.1 mrg + u[i] = r[i];
312 1.1 mrg +}
313 1.1 mrg +
314 1.1 mrg +/* { dg-final { scan-assembler "\tvcvttpd2udqx" } } */
315 1.1 mrg --
316 1.1 mrg 2.26.2
317 1.1 mrg
318 1.1 mrg '''
319 1.1 mrg
320 1.1 mrg EXPECTED5 = '''\
321 1.1 mrg PR target/95046 - Vectorize V2SFmode operations
322 1.1 mrg
323 1.1 mrg PR target/95046
324 1.1 mrg
325 1.1 mrg gcc/testsuite/ChangeLog:
326 1.1 mrg
327 1.1 mrg * gcc.target/i386/pr95046-6.c: New test.
328 1.1 mrg
329 1.1 mrg '''
330 1.1 mrg
331 1.1 mrg PATCH6 = '''\
332 1.1 mrg diff --git a/gcc/cgraph.h b/gcc/cgraph.h
333 1.1 mrg index 5ddeb65269b..cfae6e91da9 100644
334 1.1 mrg --- a/gcc/cgraph.h
335 1.1 mrg +++ b/gcc/cgraph.h
336 1.1 mrg @@ -937,7 +937,8 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node
337 1.1 mrg split_part (false), indirect_call_target (false), local (false),
338 1.1 mrg versionable (false), can_change_signature (false),
339 1.1 mrg redefined_extern_inline (false), tm_may_enter_irr (false),
340 1.1 mrg - ipcp_clone (false), m_uid (uid), m_summary_id (-1)
341 1.1 mrg + ipcp_clone (false), declare_variant_alt (false),
342 1.1 mrg + calls_declare_variant_alt (false), m_uid (uid), m_summary_id (-1)
343 1.1 mrg {}
344 1.1 mrg
345 1.1 mrg /* Remove the node from cgraph and all inline clones inlined into it.
346 1.1 mrg
347 1.1 mrg '''
348 1.1 mrg
349 1.1 mrg EXPECTED6 = '''\
350 1.1 mrg gcc/ChangeLog:
351 1.1 mrg
352 1.1 mrg * cgraph.h (struct cgraph_node):
353 1.1 mrg
354 1.1 mrg '''
355 1.1 mrg
356 1.1 mrg PATCH7 = '''\
357 1.1 mrg diff --git a/gcc/testsuite/g++.dg/DRs/dr2237.C b/gcc/testsuite/g++.dg/DRs/dr2237.C
358 1.1 mrg new file mode 100644
359 1.1 mrg index 00000000000..f3d6d11e61e
360 1.1 mrg --- /dev/null
361 1.1 mrg +++ b/gcc/testsuite/g++.dg/DRs/dr2237.C
362 1.1 mrg @@ -0,0 +1,18 @@
363 1.1 mrg +// DR 2237 - Can a template-id name a constructor?
364 1.1 mrg +
365 1.1 mrg +template<class T>
366 1.1 mrg +struct X {
367 1.1 mrg + X<T>(); // { dg-error "expected" "" { target c++20 } }
368 1.1 mrg + X(int); // OK, injected-class-name used
369 1.1 mrg + ~X<T>(); // { dg-error "template-id not allowed for destructor" "" { target c++20 } }
370 1.1 mrg +};
371 1.1 mrg +
372 1.1 mrg +// ill-formed since DR1435
373 1.1 mrg +template<typename T> X<T>::X<T>() {} // { dg-error "names the constructor|as no template constructors" }
374 1.1 mrg +template<typename T> X<T>::~X<T>() {} // { dg-error "template-id not allowed for destructor" "" { target c++20 } }
375 1.1 mrg +
376 1.1 mrg +struct Q {
377 1.1 mrg + // ill-formed since DR1435
378 1.1 mrg + template<typename T> friend X<T>::X<T>(); // { dg-error "names the constructor|as no template constructors" }
379 1.1 mrg + template<typename T> friend X<T>::~X<T>(); // { dg-error "template-id not allowed for destructor" "" { target c++20 } }
380 1.1 mrg +};
381 1.1 mrg '''
382 1.1 mrg
383 1.1 mrg EXPECTED7 = '''\
384 1.1 mrg
385 1.1 mrg DR 2237
386 1.1 mrg
387 1.1 mrg gcc/testsuite/ChangeLog:
388 1.1 mrg
389 1.1 mrg * g++.dg/DRs/dr2237.C: New test.
390 1.1 mrg
391 1.1 mrg '''
392 1.1 mrg
393 1.1 mrg PATCH8 = '''\
394 1.1 mrg diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf2.c
395 1.1 mrg similarity index 100%
396 1.1 mrg rename from gcc/ipa-icf.c
397 1.1 mrg rename to gcc/ipa-icf2.c
398 1.1 mrg '''
399 1.1 mrg
400 1.1 mrg EXPECTED8 = '''\
401 1.1 mrg gcc/ChangeLog:
402 1.1 mrg
403 1.1 mrg * ipa-icf.c: Moved to...
404 1.1 mrg * ipa-icf2.c: ...here.
405 1.1 mrg
406 1.1 mrg '''
407 1.1 mrg
408 1.1 mrg PATCH9 = '''\
409 1.1 mrg diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
410 1.1 mrg index 2a260c1cfbd..7f03fc491c3 100644
411 1.1 mrg --- a/gcc/config/i386/sse.md
412 1.1 mrg +++ b/gcc/config/i386/sse.md
413 1.1 mrg @@ -17611,6 +17611,23 @@ (define_insn "avx2_<code>v16qiv16hi2<mask_name>"
414 1.1 mrg (set_attr "prefix" "maybe_evex")
415 1.1 mrg (set_attr "mode" "OI")])
416 1.1 mrg
417 1.1 mrg +(define_insn_and_split "*avx2_zero_extendv16qiv16hi2_1"
418 1.1 mrg + [(set (match_operand:V32QI 0 "register_operand" "=v")
419 1.1 mrg + (vec_select:V32QI
420 1.1 mrg + (vec_concat:V64QI
421 1.1 mrg + (match_operand:V32QI 1 "nonimmediate_operand" "vm")
422 1.1 mrg + (match_operand:V32QI 2 "const0_operand" "C"))
423 1.1 mrg + (match_parallel 3 "pmovzx_parallel"
424 1.1 mrg + [(match_operand 4 "const_int_operand" "n")])))]
425 1.1 mrg + "TARGET_AVX2"
426 1.1 mrg + "#"
427 1.1 mrg + "&& reload_completed"
428 1.1 mrg + [(set (match_dup 0) (zero_extend:V16HI (match_dup 1)))]
429 1.1 mrg +{
430 1.1 mrg + operands[0] = lowpart_subreg (V16HImode, operands[0], V32QImode);
431 1.1 mrg + operands[1] = lowpart_subreg (V16QImode, operands[1], V32QImode);
432 1.1 mrg +})
433 1.1 mrg +
434 1.1 mrg (define_expand "<insn>v16qiv16hi2"
435 1.1 mrg [(set (match_operand:V16HI 0 "register_operand")
436 1.1 mrg (any_extend:V16HI
437 1.1 mrg '''
438 1.1 mrg
439 1.1 mrg EXPECTED9 = '''\
440 1.1 mrg gcc/ChangeLog:
441 1.1 mrg
442 1.1 mrg * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1):
443 1.1 mrg
444 1.1 mrg '''
445 1.1 mrg
446 1.1.1.2 mrg PATCH10 = '''\
447 1.1.1.2 mrg diff --git a/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst b/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst
448 1.1.1.2 mrg new file mode 100644
449 1.1.1.2 mrg index 00000000000..ad3c6d856fc
450 1.1.1.2 mrg --- /dev/null
451 1.1.1.2 mrg +++ b/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst
452 1.1.1.2 mrg @@ -0,0 +1,3 @@
453 1.1.1.2 mrg +
454 1.1.1.2 mrg +
455 1.1.1.2 mrg +
456 1.1.1.2 mrg
457 1.1.1.2 mrg '''
458 1.1.1.2 mrg
459 1.1.1.2 mrg EXPECTED10 = '''\
460 1.1.1.2 mrg libgomp/ChangeLog:
461 1.1.1.2 mrg
462 1.1.1.2 mrg * doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst:
463 1.1.1.2 mrg New file.
464 1.1.1.2 mrg
465 1.1.1.2 mrg '''
466 1.1.1.2 mrg
467 1.1 mrg class TestMklog(unittest.TestCase):
468 1.1 mrg def test_macro_definition(self):
469 1.1 mrg changelog = generate_changelog(PATCH1)
470 1.1 mrg assert changelog == EXPECTED1
471 1.1 mrg
472 1.1 mrg def test_changed_argument(self):
473 1.1 mrg changelog = generate_changelog(PATCH2)
474 1.1 mrg assert changelog == EXPECTED2
475 1.1 mrg
476 1.1 mrg def test_enum_and_struct(self):
477 1.1 mrg changelog = generate_changelog(PATCH3)
478 1.1 mrg assert changelog == EXPECTED3
479 1.1 mrg
480 1.1 mrg def test_no_function(self):
481 1.1 mrg changelog = generate_changelog(PATCH3, True)
482 1.1 mrg assert changelog == EXPECTED3B
483 1.1 mrg
484 1.1 mrg def test_sorting(self):
485 1.1 mrg changelog = generate_changelog(PATCH4)
486 1.1 mrg assert changelog == EXPECTED4
487 1.1 mrg
488 1.1 mrg def test_pr_bugzilla_download(self):
489 1.1 mrg changelog = generate_changelog(PATCH5, fill_pr_titles=True)
490 1.1 mrg assert changelog == EXPECTED5
491 1.1 mrg
492 1.1 mrg def test_gty_in_struct(self):
493 1.1 mrg changelog = generate_changelog(PATCH6, fill_pr_titles=True)
494 1.1 mrg assert changelog == EXPECTED6
495 1.1 mrg
496 1.1 mrg def test_dr_detection_in_test_case(self):
497 1.1 mrg changelog = generate_changelog(PATCH7)
498 1.1 mrg assert changelog == EXPECTED7
499 1.1 mrg
500 1.1 mrg @unittest.skipIf(not unidiff_supports_renaming,
501 1.1 mrg 'Newer version of unidiff is needed (0.6.0+)')
502 1.1 mrg def test_renaming(self):
503 1.1 mrg changelog = generate_changelog(PATCH8)
504 1.1 mrg assert changelog == EXPECTED8
505 1.1 mrg
506 1.1 mrg def test_define_macro_parsing(self):
507 1.1 mrg changelog = generate_changelog(PATCH9)
508 1.1 mrg assert changelog == EXPECTED9
509 1.1.1.2 mrg
510 1.1.1.2 mrg def test_long_filenames(self):
511 1.1.1.2 mrg changelog = generate_changelog(PATCH10)
512 1.1.1.2 mrg assert changelog == EXPECTED10
513