1 1.1 mrg #!/usr/bin/env python3 2 1.1 mrg 3 1.1.1.3 mrg # Copyright (C) 2020-2024 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.1.3 mrg Copyright (C) 2014-2024 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.1.3 mrg Copyright (C) 1987-2024 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.1.3 mrg * ipa-icf.c: Move 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