12019-02-22 Release Manager 2 3 * GCC 8.3.0 released. 4 52019-02-07 Jakub Jelinek <jakub@redhat.com> 6 7 Backported from mainline 8 2019-02-06 Jakub Jelinek <jakub@redhat.com> 9 10 PR c/89211 11 * c-parser.c (c_parser_declaration_or_fndef): Don't update 12 DECL_ARGUMENTS of d if it has been defined already. Use a single if 13 instead of 3 nested ifs. 14 152019-01-15 Joseph Myers <joseph@codesourcery.com> 16 17 Backport from mainline 18 2019-01-07 Joseph Myers <joseph@codesourcery.com> 19 20 PR c/88720 21 PR c/88726 22 * c-decl.c (pop_scope): Use TREE_PUBLIC and b->nested to determine 23 whether a function is nested, not DECL_EXTERNAL. Diagnose inline 24 functions declared but never defined only for external scope, not 25 for other scopes. 26 272019-01-08 Jakub Jelinek <jakub@redhat.com> 28 29 Backported from mainline 30 2018-12-11 Jakub Jelinek <jakub@redhat.com> 31 32 PR sanitizer/88426 33 * c-convert.c (convert): Call c_fully_fold before calling 34 ubsan_instrument_float_cast. 35 362018-01-02 Segher Boessenkool <segher@kernel.crashing.org> 37 38 Backport from trunk 39 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org> 40 41 PR inline-asm/55681 42 * c-parser.c (c_parser_asm_statement): Update grammar. Allow any 43 combination of volatile and goto, in any order, without repetitions. 44 45 Backport from trunk 46 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org> 47 48 * c-parser.c (c_parser_asm_statement): Detect the inline keyword 49 after asm. Pass a flag for it to build_asm_expr. 50 * c-tree.h (build_asm_expr): Update declaration. 51 * c-typeck.c (build_asm_stmt): Add is_inline parameter. Use it to 52 set ASM_INLINE_P. 53 54 Backport from trunk 55 2018-12-08 Segher Boessenkool <segher@kernel.crashing.org> 56 57 * c-parser (c_parser_asm_statement) [RID_INLINE]: Delete stray line 58 setting "quals". 59 60 Backport from trunk 61 2018-12-19 Segher Boessenkool <segher@kernel.crashing.org> 62 63 * c-parser.c (c_parser_asm_statement): Rewrite the loop to work without 64 "done" boolean variable. 65 66 Backport from trunk 67 2018-12-19 Segher Boessenkool <segher@kernel.crashing.org> 68 69 * c-parser.c (c_parser_asm_statement): Keep track of the location each 70 asm qualifier is first seen; use that to give nicer "duplicate asm 71 qualifier" messages. Delete 'quals" variable, instead pass the 72 "is_volatile_ flag to build_asm_stmt directly. 73 * c-tree.h (build_asm_stmt): Make the first arg bool instead of tree. 74 * c-typeck.c (build_asm_stmt): Ditto; adjust. 75 76 Backport from trunk 77 2018-12-19 Segher Boessenkool <segher@kernel.crashing.org> 78 79 * c-parser.c (c_parser_asm_statement) <RID_CONST, RID_RESTRICT>: Give 80 a more specific error message (instead of just falling through). 81 82 And extra for the backport 83 2019-01-02 Segher Boessenkool <segher@kernel.crashing.org> 84 85 * c-parser.c (c_parser_asm_statement): Output a warning instead of an 86 error for const and restrict. 87 882018-08-01 Jakub Jelinek <jakub@redhat.com> 89 90 PR c/85704 91 * c-typeck.c (init_field_decl_cmp): New function. 92 (output_pending_init_elements): Use it for field comparisons 93 instead of pure bit_position comparisons. 94 952018-07-26 Release Manager 96 97 * GCC 8.2.0 released. 98 992018-07-12 Jakub Jelinek <jakub@redhat.com> 100 101 * c-decl.c (c_decl_attributes): Don't diagnose vars without mappable 102 type here, instead add "omp declare target implicit" attribute. 103 (finish_decl): Diagnose vars without mappable type here. 104 1052018-06-20 Jakub Jelinek <jakub@redhat.com> 106 107 Backported from mainline 108 2018-06-15 Jakub Jelinek <jakub@redhat.com> 109 110 PR c/86093 111 * c-typeck.c (pointer_diff): Cast both pointers to unqualified types 112 before doing POINTER_DIFF_EXPR. 113 1142018-05-30 Jakub Jelinek <jakub@redhat.com> 115 116 Backported from mainline 117 2018-05-10 Jakub Jelinek <jakub@redhat.com> 118 119 PR c++/85662 120 * c-fold.c (c_fully_fold_internal): Use fold_offsetof rather than 121 fold_offsetof_1, pass TREE_TYPE (expr) as TYPE to it and drop the 122 fold_convert_loc. 123 * c-typeck.c (build_unary_op): Use fold_offsetof rather than 124 fold_offsetof_1, pass argtype as TYPE to it and drop the 125 fold_convert_loc. 126 1272018-05-02 Release Manager 128 129 * GCC 8.1.0 released. 130 1312018-03-21 Joseph Myers <joseph@codesourcery.com> 132 133 * c-parser.c (c_parser_postfix_expression): For __builtin_tgmath 134 where all functions return the same _FloatN or _FloatNx type, 135 treat integer types as _Float64 instead of double. 136 1372018-03-21 Jakub Jelinek <jakub@redhat.com> 138 139 PR c/84999 140 * c-typeck.c (build_binary_op): If c_common_type_for_size fails when 141 building vector comparison, diagnose it and return error_mark_node. 142 1432018-03-15 Jakub Jelinek <jakub@redhat.com> 144 145 PR c/84853 146 * c-typeck.c (build_binary_op) <case RSHIFT_EXPR, case LSHIFT_EXPR>: 147 If code1 is INTEGER_TYPE, only allow code0 VECTOR_TYPE if it has 148 INTEGER_TYPE element type. 149 1502018-03-13 David Pagan <dave.pagan@oracle.com> 151 152 PR c/46921 153 * c-typeck.c (output_init_element): Ensure field initializer 154 expression is always evaluated if there are side effects. 155 1562018-03-06 Jakub Jelinek <jakub@redhat.com> 157 158 PR c/84721 159 * c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if 160 !building_stmt_list_p (). 161 1622018-02-13 Richard Sandiford <richard.sandiford@linaro.org> 163 164 PR c/84305 165 * c-decl.c (grokdeclarator): Create an anonymous TYPE_DECL 166 in PARM and TYPENAME contexts too, but attach it to a BIND_EXPR 167 and include the BIND_EXPR in the list of things that need to be 168 pre-evaluated. 169 1702018-02-09 Nathan Sidwell <nathan@acm.org> 171 172 PR c/84293 173 * c-typeck.c (build_indirect_ref, build_c_cast): Pass expr location 174 to strict_aliasing_warning. 175 1762018-02-02 Paolo Carlini <paolo.carlini@oracle.com> 177 178 * c-typeck.c (really_start_incremental_init, push_init_level, 179 set_nonincremental_init, output_init_element, process_init_element): 180 Use DECL_UNNAMED_BIT_FIELD. 181 1822018-01-31 Marek Polacek <polacek@redhat.com> 183 184 PR c/81779 185 * c-parser.c (c_parser_compound_statement_nostart): Call 186 expansion_point_location_if_in_system_header. 187 1882018-01-17 David Malcolm <dmalcolm@redhat.com> 189 190 PR c++/83814 191 * c-fold.c (fold_for_warn): Move from c-common.c, reducing to just 192 the C part. 193 1942018-01-13 Jakub Jelinek <jakub@redhat.com> 195 196 PR c/83801 197 * c-tree.h (decl_constant_value_1): Add a bool argument. 198 * c-typeck.c (decl_constant_value_1): Add IN_INIT argument, allow 199 returning a CONSTRUCTOR if it is true. Use error_operand_p. 200 (decl_constant_value): Adjust caller. 201 * c-fold.c (c_fully_fold_internal): If in_init, pass true to 202 decl_constant_value_1 as IN_INIT. Otherwise, punt if 203 decl_constant_value returns initializer that has BLKmode or 204 array type. 205 (c_fully_fold_internal) <case COMPONENT_REF>: Fold if !lval. 206 2072018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 208 Alan Hayward <alan.hayward@arm.com> 209 David Sherwood <david.sherwood@arm.com> 210 211 * c-typeck.c (comptypes_internal, build_binary_op): Handle polynomial 212 TYPE_VECTOR_SUBPARTS. 213 2142018-01-03 Jakub Jelinek <jakub@redhat.com> 215 216 Update copyright years. 217 2182018-01-01 Jakub Jelinek <jakub@redhat.com> 219 220 PR c/83595 221 * c-parser.c (c_parser_braced_init, c_parser_initelt, 222 c_parser_conditional_expression, c_parser_cast_expression, 223 c_parser_sizeof_expression, c_parser_alignof_expression, 224 c_parser_postfix_expression, c_parser_omp_declare_reduction, 225 c_parser_transaction_expression): Use set_error () method instead 226 of setting value member to error_mark_node. 227 2282017-12-28 Michael Meissner <meissner@linux.vnet.ibm.com> 229 230 * c-decl.c (header_for_builtin_fn): Add integer rounding _Float<N> 231 and _Float<N>X built-in functions. 232 2332017-12-22 Jakub Jelinek <jakub@redhat.com> 234 235 PR debug/83550 236 * c-decl.c (finish_struct): Set DECL_SOURCE_LOCATION on 237 TYPE_STUB_DECL and call rest_of_type_compilation before processing 238 incomplete vars rather than after it. 239 240 PR debug/83547 241 * c-typeck.c (c_finish_stmt_expr): Ignore !TREE_SIDE_EFFECTS as 242 indicator of ({ }), instead skip all trailing DEBUG_BEGIN_STMTs first, 243 and consider empty ones if there are no other stmts. For 244 -Wunused-value walk all statements before the one only followed by 245 DEBUG_BEGIN_STMTs. 246 2472017-12-22 Mike Stump <mikestump@comcast.net> 248 Eric Botcazou <ebotcazou@adacore.com> 249 250 * c-parser.c (c_parser_while_statement): Add unroll parameter and 251 build ANNOTATE_EXPR if present. Add 3rd operand to ANNOTATE_EXPR. 252 (c_parser_do_statement): Likewise. 253 (c_parser_for_statement): Likewise. 254 (c_parser_statement_after_labels): Adjust calls to above. 255 (c_parse_pragma_ivdep): New static function. 256 (c_parser_pragma_unroll): Likewise. 257 (c_parser_pragma) <PRAGMA_IVDEP>: Add support for pragma Unroll. 258 <PRAGMA_UNROLL>: New case. 259 2602017-12-19 Jakub Jelinek <jakub@redhat.com> 261 262 * c-typeck.c (comptypes_internal, function_types_compatible_p, 263 perform_integral_promotions, digest_init): Replace Yoda conditions 264 with typical order conditions. 265 * c-decl.c (check_bitfield_type_and_width): Likewise. 266 2672017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de> 268 269 * c-typeck.c (c_safe_arg_type_equiv_p, 270 c_safe_function_type_cast_p): New function. 271 (build_c_cast): Implement -Wcast-function-type. 272 2732017-12-14 Richard Biener <rguenther@suse.de> 274 275 PR c/83415 276 * c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR 277 like REALPART_EXPR for the behavior of whether its operand 278 is an lvalue. 279 2802017-12-12 Marek Polacek <polacek@redhat.com> 281 282 PR c/82679 283 * c-decl.c (grokdeclarator): Check declspecs insted of atomicp. 284 2852017-12-12 Alexandre Oliva <aoliva@redhat.com> 286 287 * c-objc-common.h (LANG_HOOKS_EMITS_BEGIN_STMT): Redefine as true. 288 * c-parser.c (add_debug_begin_stmt): New. 289 (c_parser_declaration_or_fndef): Call it. 290 (c_parser_compound_statement_nostart): Likewise. 291 (c_parser_statement_after_labels): Likewise. 292 * c-typeck (c_finish_stmt_expr): Skip begin stmts markers. 293 2942017-12-07 Joseph Myers <joseph@codesourcery.com> 295 296 * c-decl.c (build_compound_literal): Add parameter alignas_align 297 and set alignment of decl if nonzero. 298 * c-parser.c (c_keyword_starts_typename): Allow RID_ALIGNAS. 299 (c_parser_declspecs): Allow RID_ALIGNAS to follow a type, like a 300 qualifier. 301 (c_parser_struct_declaration): Update syntax comment. 302 (c_parser_type_name): Add alignas_ok argument and pass it to 303 c_parser_declspecs. 304 (c_parser_cast_expression): Pass true to c_parser_type_name and 305 give error if a cast used an _Alignas specifier. 306 (c_parser_sizeof_expression): Pass true to c_parser_type_name and 307 give error if sizeof (type-name) used an _Alignas specifier. 308 (c_parser_alignof_expression): Pass true to c_parser_type_name and 309 give error if _Alignof (type-name) used an _Alignas specifier. 310 (c_parser_postfix_expression_after_paren_type): Check specified 311 alignment for a compound literal and pass it to 312 build_compound_literal. 313 * c-parser.h (c_parser_type_name): Update prototype. 314 * c-tree.h (build_compound_literal): Update prototype. 315 3162017-12-07 Martin Sebor <msebor@redhat.com> 317 318 PR c/81544 319 * c-decl.c (c_decl_attributes): Look up existing declaration and 320 pass it to decl_attributes. 321 3222017-12-06 David Malcolm <dmalcolm@redhat.com> 323 324 PR c/83236 325 * c-decl.c (lookup_name_fuzzy): Don't suggest names that are 326 reserved for use by the implementation. 327 3282017-12-06 David Malcolm <dmalcolm@redhat.com> 329 330 * c-decl.c: Include "c-family/c-spellcheck.h". 331 3322017-12-05 Martin Liska <mliska@suse.cz> 333 Jakub Jelinek <jakub@redhat.com> 334 335 * c-typeck.c (pointer_diff): Add new argument and instrument 336 pointer subtraction. 337 (build_binary_op): Similar for pointer comparison. 338 3392017-12-01 Jakub Jelinek <jakub@redhat.com> 340 341 PR c/79153 342 * c-parser.c: Include tree-iterator.h. 343 (c_parser_switch_statement): Emit LABEL_EXPR for the break label 344 into SWITCH_BODY instead of after it and set SWITCH_BREAK_LABEL_P 345 on it. 346 347 PR c/83222 348 * c-tree.h (decl_constant_value_1): Declare. 349 * c-typeck.c (decl_constant_value_1): New function. 350 (decl_constant_value): Use it. 351 * c-fold.c (c_fully_fold_internal): If in_init, use 352 decl_constant_value_1 instead of decl_constant_value. 353 3542017-11-30 Jakub Jelinek <jakub@redhat.com> 355 356 * c-parser.c (c_parser_postfix_expression): Use ; instead of ;;. 357 3582017-11-28 Jakub Jelinek <jakub@redhat.com> 359 360 PR sanitizer/81275 361 * c-typeck.c (c_finish_case): Set SWITCH_ALL_CASES_P if 362 c_switch_covers_all_cases_p returns true. 363 3642017-11-28 Julia Koval <julia.koval@intel.com> 365 Sebastian Peryt <sebastian.peryt@intel.com> 366 367 * Make-lang.in (c/c-array-notation.o): Remove. 368 * c-array-notation.c: Delete. 369 * c-decl.c: Remove cilkplus condition. 370 * c-parser.c (c_parser_cilk_simd, c_parser_cilk_for, 371 c_parser_cilk_verify_simd, c_parser_array_notation, 372 c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize, 373 c_parser_cilk_simd_fn_vector_attrs, 374 c_finish_cilk_simd_fn_tokens): Delete. 375 (c_parser_declaration_or_fndef): Remove cilkplus condition. 376 (c_parser_direct_declarator_inner): Ditto. 377 (CILK_SIMD_FN_CLAUSE_MASK): Delete. 378 (c_parser_attributes, c_parser_compound_statement, 379 c_parser_statement_after_labels, c_parser_if_statement, 380 c_parser_switch_statement, c_parser_while_statement, 381 c_parser_do_statement, c_parser_for_statement, 382 c_parser_unary_expression, c_parser_postfix_expression, 383 c_parser_postfix_expression_after_primary, 384 c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses, 385 c_parser_omp_for_loop, c_finish_omp_declare_simd): Remove cilkplus 386 support. 387 * c-typeck.c (build_array_ref, build_function_call_vec, 388 convert_arguments, 389 lvalue_p, build_compound_expr, c_finish_return, c_finish_if_stmt, 390 c_finish_loop, build_binary_op): Remove cilkplus support. 391 3922017-11-28 Jakub Jelinek <jakub@redhat.com> 393 394 * c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead 395 of build3. 396 3972017-11-14 Boris Kolpackov <boris@codesynthesis.com> 398 399 * Make-lang.in (c.install-plugin): Install backend import library. 400 4012017-11-23 Jakub Jelinek <jakub@redhat.com> 402 403 * c-parser.c (c_parser_omp_declare_simd): Reject declare simd in 404 pragma_stmt context. 405 4062017-11-23 Mike Stump <mikestump@comcast.net> 407 Eric Botcazou <ebotcazou@adacore.com> 408 409 * c-parser.c (c_parser_while_statement): Pass 3rd operand to 410 ANNOTATE_EXPR. 411 (c_parser_do_statement): Likewise. 412 (c_parser_for_statement): Likewise. 413 4142017-11-22 David Malcolm <dmalcolm@redhat.com> 415 416 PR c++/62170 417 * c-objc-common.c (c_tree_printer): Convert penultimate param from 418 bool to bool *. Within '%T' handling, if showing an "aka", use 419 "quoted" param to add appropriate quoting. 420 4212017-11-22 Marek Polacek <polacek@redhat.com> 422 423 PR c++/60336 424 PR middle-end/67239 425 PR target/68355 426 * c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields. 427 4282017-11-21 David Malcolm <dmalcolm@redhat.com> 429 430 PR c/83056 431 * c-decl.c (lookup_name_fuzzy): Don't suggest names that came from 432 earlier failed lookups. 433 4342017-11-21 Marc Glisse <marc.glisse@inria.fr> 435 436 * c-fold.c (c_fully_fold_internal): Handle POINTER_DIFF_EXPR. 437 * c-typeck.c (pointer_diff): Use POINTER_DIFF_EXPR. 438 4392017-11-20 David Malcolm <dmalcolm@redhat.com> 440 441 PR c/81404 442 * c-decl.c: Include "c-family/known-headers.h". 443 (get_c_name_hint): Rename to get_stdlib_header_for_name and move 444 to known-headers.cc. 445 (class suggest_missing_header): Move to known-header.h. 446 (lookup_name_fuzzy): Call get_c_stdlib_header_for_name rather 447 than get_c_name_hint. 448 4492017-11-20 David Malcolm <dmalcolm@redhat.com> 450 451 * c-decl.c (get_c_name_hint): New function. 452 (class suggest_missing_header): New class. 453 (lookup_name_fuzzy): Call get_c_name_hint and use it to 454 suggest missing headers to the user. 455 4562017-11-20 David Malcolm <dmalcolm@redhat.com> 457 458 * c-decl.c: Define INCLUDE_UNIQUE_PTR before including system.h. 459 Include "c-family/name-hint.h" 460 (implicit_decl_warning): Convert "hint" from 461 const char * to name_hint. Pass location to 462 lookup_name_fuzzy. Suppress any deferred diagnostic if the 463 warning was not printed. 464 (undeclared_variable): Likewise for "guessed_id". 465 (lookup_name_fuzzy): Convert return type from const char * 466 to name_hint. Add location_t param. 467 * c-parser.c: Define INCLUDE_UNIQUE_PTR before including system.h. 468 Include "c-family/name-hint.h" 469 (c_parser_declaration_or_fndef): Convert "hint" from 470 const char * to name_hint. Pass location to lookup_name_fuzzy. 471 (c_parser_parameter_declaration): Likewise. 472 4732017-11-19 Jakub Jelinek <jakub@redhat.com> 474 475 PR c/66618 476 PR c/69960 477 * c-parser.c (c_parser_omp_atomic): Pass true as LVAL to c_fully_fold 478 where needed. 479 * c-typeck.c (build_unary_op, build_modify_expr, build_asm_expr, 480 handle_omp_array_sections): Likewise. 481 (digest_init): Don't call decl_constant_value_for_optimization. 482 * c-tree.h (decl_constant_value_for_optimization): Removed. 483 * c-fold.c (c_fold_array_ref): New function. 484 (c_fully_fold_internal): Add LVAL argument, propagate it through 485 recursive calls. For VAR_P call decl_constant_value and 486 unshare if not LVAL and either optimizing or IN_INIT. Remove 487 decl_constant_value_for_optimization calls. If IN_INIT and not LVAL, 488 fold ARRAY_REF with STRING_CST and INTEGER_CST operands. 489 (c_fully_fold): Add LVAL argument, pass it through to 490 c_fully_fold_internal. 491 (decl_constant_value_for_optimization): Removed. 492 4932017-11-15 Joseph Myers <joseph@codesourcery.com> 494 495 PR c/81156 496 * c-parser.c (check_tgmath_function): New function. 497 (enum tgmath_parm_kind): New enum. 498 (c_parser_postfix_expression): Handle __builtin_tgmath. 499 5002017-10-31 David Malcolm <dmalcolm@redhat.com> 501 502 * c-decl.c (implicit_decl_warning): Update for renaming of 503 pedwarn_at_rich_loc and warning_at_rich_loc. 504 (implicitly_declare): Likewise for renaming of inform_at_rich_loc. 505 (undeclared_variable): Likewise for renaming of error_at_rich_loc. 506 * c-parser.c (c_parser_declaration_or_fndef): Likewise. 507 (c_parser_struct_or_union_specifier): Likewise for renaming of 508 pedwarn_at_rich_loc. 509 (c_parser_parameter_declaration): Likewise for renaming of 510 error_at_rich_loc. 511 * c-typeck.c (build_component_ref): Likewise. 512 (build_unary_op): Likewise for renaming of inform_at_rich_loc. 513 (pop_init_level): Likewise for renaming of warning_at_rich_loc. 514 (set_init_label): Likewise for renaming of error_at_rich_loc. 515 5162017-10-30 Richard Biener <rguenther@suse.de> 517 518 * gimple-parser.c (c_parser_gimple_statement): Parse conditional 519 stmts. 520 5212017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com> 522 523 * c-decl.c (header_for_builtin_fn): Add support for copysign, fma, 524 fmax, fmin, and sqrt _Float<N> and _Float<N>X variants. 525 5262017-10-25 David Malcolm <dmalcolm@redhat.com> 527 528 PR c/7356 529 * c-parser.c (c_parser_declaration_or_fndef): Detect missing 530 semicolons. 531 5322017-10-25 Jakub Jelinek <jakub@redhat.com> 533 534 PR libstdc++/81706 535 * c-decl.c (merge_decls): Copy "omp declare simd" attributes from 536 newdecl to corresponding __builtin_ if any. 537 5382017-10-24 Paolo Carlini <paolo.carlini@oracle.com> 539 540 PR c++/82466 541 * c-decl.c (diagnose_mismatched_decls): Use 542 OPT_Wbuiltin_declaration_mismatch. 543 5442017-10-12 David Malcolm <dmalcolm@redhat.com> 545 546 * c-parser.c (c_parser_require): Add "type_is_unique" param and 547 use it to guard calls to maybe_suggest_missing_token_insertion. 548 (c_parser_parms_list_declarator): Override default value of new 549 "type_is_unique" param to c_parser_require. 550 (c_parser_asm_statement): Likewise. 551 * c-parser.h (c_parser_require): Add "type_is_unique" param, 552 defaulting to true. 553 5542017-10-11 Nathan Sidwell <nathan@acm.org> 555 556 * c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too. 557 5582017-10-10 Richard Sandiford <richard.sandiford@linaro.org> 559 560 * c-parser.c (c_parser_cilk_clause_vectorlength): Use wi::to_wide when 561 operating on trees as wide_ints. 562 * c-typeck.c (build_c_cast, c_finish_omp_clauses): Likewise. 563 (c_tree_equal): Likewise. 564 5652017-10-04 David Malcolm <dmalcolm@redhat.com> 566 567 * c-decl.c (push_parm_decl): Store c_parm's location into the 568 PARAM_DECL. 569 (build_c_parm): Add "loc" param and store it within the c_parm. 570 * c-parser.c (struct c_parser): Add "last_token_location" field. 571 (c_parser_consume_token): Store location of the token into the 572 new field. 573 (c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS 574 when handling a FUNCTION_DECL, if it doesn't already have them. 575 (c_parser_parameter_declaration): Generate a location for the 576 parameter, and pass it to the call to build_c_parm. 577 * c-tree.h (struct c_parm): Add field "loc". 578 (build_c_parm): Add location_t param. 579 * c-typeck.c (get_fndecl_argument_location): New function. 580 (inform_for_arg): New function. 581 (convert_for_assignment): Use inform_for_arg when dealing with 582 ic_argpass. 583 5842017-09-29 Jakub Jelinek <jakub@redhat.com> 585 586 * c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if 587 width is non-NULL. 588 (finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL, 589 don't SET_DECL_C_BIT_FIELD here. 590 591 PR c/82340 592 * c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl 593 instead of trying to set just TREE_READONLY manually. 594 5952017-09-16 Tom de Vries <tom@codesourcery.com> 596 597 PR c/81875 598 * c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not 599 cond itself. 600 6012017-09-15 Joseph Myers <joseph@codesourcery.com> 602 603 PR c/82071 604 * c-typeck.c (ep_convert_and_check): Just call convert_and_check 605 for C11. 606 (build_conditional_expr): For C11, generate result with excess 607 precision when one argument is an integer and the other is of a 608 type using excess precision. 609 6102017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de> 611 612 * c-typeck.c (build_c_cast): Implement -Wcast-align=strict. 613 6142017-09-13 Marek Polacek <polacek@redhat.com> 615 616 PR c/82167 617 * c-typeck.c (c_expr_sizeof_expr): Use the type of expr.value rather 618 than expr.original_type. 619 6202017-09-12 Nathan Sidwell <nathan@acm.org> 621 622 * c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp, 623 resort_sorted_fields): Moved from c-family/c-common.c. 624 * c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h. 625 6262017-09-01 Joseph Myers <joseph@codesourcery.com> 627 628 PR c/82071 629 * c-typeck.c (build_atomic_assign): Handle argument with excess 630 precision. Ensure any EXCESS_PRECISION_EXPR is present in 631 argument passed to build_binary_op and convert_for_assignment but 632 not for call to c_fully_fold. 633 (build_modify_expr): Do not remove EXCESS_PRECISION_EXPR early. 634 Ensure build_binary_op is called with argument with original 635 semantic type. Avoid calling c_fully_fold with an 636 EXCESS_PRECISION_EXPR from build_binary_op. 637 6382017-09-01 Jakub Jelinek <jakub@redhat.com> 639 640 PR c/81887 641 * c-parser.c (c_parser_omp_ordered): Handle -fopenmp-simd. 642 6432017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 644 Alan Hayward <alan.hayward@arm.com> 645 David Sherwood <david.sherwood@arm.com> 646 647 * c-typeck.c (build_binary_op): Use SCALAR_TYPE_MODE. 648 (c_common_type): Likewise. Use as_a <scalar_mode> when setting 649 m1 and m2 to the signed equivalent of a fixed-point 650 SCALAR_TYPE_MODE. 651 6522017-08-24 David Malcolm <dmalcolm@redhat.com> 653 654 * c-tree.h (c_expr::get_location) Use EXPR_HAS_LOCATION rather 655 than CAN_HAVE_LOCATION_P when determining whether to use the 656 location_t value within "value". 657 6582017-08-21 David Malcolm <dmalcolm@redhat.com> 659 660 * c-parser.c (c_parser_expr_list): Use c_expr::get_location () 661 rather than peeking the location of the first token. 662 * c-tree.h (c_expr::get_location): New method. 663 6642017-08-21 David Malcolm <dmalcolm@redhat.com> 665 666 * c-typeck.c (build_function_call_vec): Pass arg_loc to call 667 to check_function_arguments. 668 6692017-08-18 Marek Polacek <polacek@redhat.com> 670 671 * c-parser.c (c_parser_postfix_expression): Remove unused code. Update 672 commentary. 673 6742017-08-18 H.J. Lu <hongjiu.lu@intel.com> 675 676 PR c/53037 677 * c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN. 678 (check_bitfield_type_and_width): Don't allow bit-field with 679 warn_if_not_aligned type. 680 6812017-08-14 Martin Sebor <msebor@redhat.com> 682 683 PR c/81117 684 * c-objc-common.c (c_objc_common_init): Handle 'G'. 685 6862017-08-11 Marek Polacek <polacek@redhat.com> 687 688 PR c/81795 689 * c-decl.c (pushtag): Only print inform if the warning was printed. 690 (grokdeclarator): Likewise. 691 6922017-08-10 David Malcolm <dmalcolm@redhat.com> 693 694 * c-parser.c (c_parser_error): Rename to... 695 (c_parser_error_richloc): ...this, making static, and adding 696 "richloc" parameter, passing it to the c_parse_error call, 697 rather than calling c_parser_set_source_position_from_token. 698 (c_parser_error): Reintroduce, reimplementing in terms of the 699 above, converting return type from void to bool. 700 (class token_pair): New class. 701 (struct matching_paren_traits): New struct. 702 (matching_parens): New typedef. 703 (struct matching_brace_traits): New struct. 704 (matching_braces): New typedef. 705 (get_matching_symbol): New function. 706 (c_parser_require): Add param MATCHING_LOCATION, using it to 707 highlight matching "opening" tokens for missing "closing" tokens. 708 (c_parser_skip_until_found): Likewise. 709 (c_parser_static_assert_declaration_no_semi): Convert explicit 710 parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of 711 class matching_parens, so that the pertinent open parenthesis is 712 highlighted when there are problems locating the close 713 parenthesis. 714 (c_parser_struct_or_union_specifier): Likewise. 715 (c_parser_typeof_specifier): Likewise. 716 (c_parser_alignas_specifier): Likewise. 717 (c_parser_simple_asm_expr): Likewise. 718 (c_parser_braced_init): Likewise, for matching_braces. 719 (c_parser_paren_condition): Likewise, for matching_parens. 720 (c_parser_switch_statement): Likewise. 721 (c_parser_for_statement): Likewise. 722 (c_parser_asm_statement): Likewise. 723 (c_parser_asm_operands): Likewise. 724 (c_parser_cast_expression): Likewise. 725 (c_parser_sizeof_expression): Likewise. 726 (c_parser_alignof_expression): Likewise. 727 (c_parser_generic_selection): Likewise. 728 (c_parser_postfix_expression): Likewise for cases RID_VA_ARG, 729 RID_OFFSETOF, RID_TYPES_COMPATIBLE_P, RID_AT_SELECTOR, 730 RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary. 731 In case CPP_OPEN_PAREN, pass loc_open_paren to the 732 c_parser_skip_until_found call. 733 (c_parser_objc_class_definition): Use class matching_parens as 734 above. 735 (c_parser_objc_method_decl): Likewise. 736 (c_parser_objc_try_catch_finally_statement): Likewise. 737 (c_parser_objc_synchronized_statement): Likewise. 738 (c_parser_objc_at_property_declaration): Likewise. 739 (c_parser_oacc_wait_list): Likewise. 740 (c_parser_omp_var_list_parens): Likewise. 741 (c_parser_omp_clause_collapse): Likewise. 742 (c_parser_omp_clause_default): Likewise. 743 (c_parser_omp_clause_if): Likewise. 744 (c_parser_omp_clause_num_threads): Likewise. 745 (c_parser_omp_clause_num_tasks): Likewise. 746 (c_parser_omp_clause_grainsize): Likewise. 747 (c_parser_omp_clause_priority): Likewise. 748 (c_parser_omp_clause_hint): Likewise. 749 (c_parser_omp_clause_defaultmap): Likewise. 750 (c_parser_oacc_single_int_clause): Likewise. 751 (c_parser_omp_clause_ordered): Likewise. 752 (c_parser_omp_clause_reduction): Likewise. 753 (c_parser_omp_clause_schedule): Likewise. 754 (c_parser_omp_clause_num_teams): Likewise. 755 (c_parser_omp_clause_thread_limit): Likewise. 756 (c_parser_omp_clause_aligned): Likewise. 757 (c_parser_omp_clause_linear): Likewise. 758 (c_parser_omp_clause_safelen): Likewise. 759 (c_parser_omp_clause_simdlen): Likewise. 760 (c_parser_omp_clause_depend): Likewise. 761 (c_parser_omp_clause_map): Likewise. 762 (c_parser_omp_clause_device): Likewise. 763 (c_parser_omp_clause_dist_schedule): Likewise. 764 (c_parser_omp_clause_proc_bind): Likewise. 765 (c_parser_omp_clause_uniform): Likewise. 766 (c_parser_omp_for_loop): Likewise. 767 (c_parser_cilk_clause_vectorlength): Likewise. 768 (c_parser_cilk_clause_linear): Likewise. 769 (c_parser_transaction_expression): Likewise. 770 * c-parser.h (c_parser_require): Add param matching_location with 771 default UNKNOWN_LOCATION. 772 (c_parser_error): Convert return type from void to bool. 773 (c_parser_skip_until_found): Add param matching_location with 774 default UNKNOWN_LOCATION. 775 7762017-08-09 Marek Polacek <polacek@redhat.com> 777 778 * c-decl.c (build_enumerator): Use true/false instead of 1/0. 779 * c-tree.h (build_external_ref): Update declaration. 780 * c-typeck.c (build_array_ref): Use true/false instead of 1/0. 781 (build_external_ref): Change the type of a parameter to bool. 782 (parser_build_binary_op): Use true/false instead of 1/0. 783 (pointer_diff): Likewise. 784 (build_modify_expr): Likewise. 785 (set_designator): Change the type of a parameter to bool. 786 (set_init_index): Use true/false instead of 1/0. 787 (set_init_label): Likewise. 788 (output_init_element): Change the type of a parameter to bool. 789 (output_pending_init_elements): Use true/false instead of 1/0. 790 (process_init_element): Likewise. 791 (build_binary_op): Change the type of a parameter to bool. 792 7932017-08-09 Marek Polacek <polacek@redhat.com> 794 795 PR c/81233 796 * c-typeck.c (pedwarn_init): Make the function take a variable list. 797 Call emit_diagnostic_valist instead of pedwarn. 798 (convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro. 799 Print the relevant types in diagnostics. 800 8012017-08-09 Marek Polacek <polacek@redhat.com> 802 803 PR c/81417 804 * c-array-notation.c (fix_builtin_array_notation_fn): Update calls to 805 build_conditional_expr. 806 * c-parser.c (c_parser_conditional_expression): Create locations for 807 EXP1 and EXP2 from their source ranges. Pass the locations down to 808 build_conditional_expr. 809 * c-tree.h (build_conditional_expr): Update declaration. 810 * c-typeck.c (build_conditional_expr): Add location_t parameters. 811 For -Wsign-compare, also print the types. 812 8132017-08-08 Martin Liska <mliska@suse.cz> 814 815 * c-convert.c: Include header files. 816 * c-typeck.c: Likewise. 817 8182017-08-07 Martin Liska <mliska@suse.cz> 819 820 * c-parser.c (c_parser_attributes): Canonicalize name of an 821 attribute. 822 8232017-08-02 Marek Polacek <polacek@redhat.com> 824 825 PR c/81289 826 * c-parser.c (c_parser_unary_expression): Use set_error. 827 828 PR c/81448 829 PR c/81306 830 * c-warn.c (warn_for_multistatement_macros): Prevent bogus 831 warnings. Avoid walking MACRO_MAP_LOCATIONS. 832 8332017-07-31 Jan Hubicka <hubicka@ucw.cz> 834 Martin Liska <mliska@suse.cz> 835 836 * c-typeck.c (c_finish_goto_label): Build gimple predict 837 statement. 838 8392017-07-31 Martin Liska <mliska@suse.cz> 840 841 PR sanitize/81530 842 * c-convert.c (convert): Guard condition with flag_sanitize_p 843 also with current_function_decl non-null equality. 844 * c-decl.c (grokdeclarator): Likewise. 845 * c-typeck.c (build_binary_op): Likewise. 846 8472017-07-25 Marek Polacek <polacek@redhat.com> 848 849 * c-decl.c (grokfield): Remove local variable. 850 8512017-07-25 Marek Polacek <polacek@redhat.com> 852 853 PR c/81364 854 * c-parser.c (c_parser_else_body): Don't warn about multistatement 855 macro expansion if the body is in { }. 856 (c_parser_while_statement): Likewise. 857 (c_parser_for_statement): Likewise. 858 8592017-07-18 Nathan Sidwell <nathan@acm.org> 860 861 * c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE. 862 8632017-07-14 David Malcolm <dmalcolm@redhat.com> 864 865 * c-decl.c (implicitly_declare): When suggesting a missing 866 #include, provide a fix-it hint. 867 8682017-07-06 David Malcolm <dmalcolm@redhat.com> 869 870 * c-lang.c (selftest::run_c_tests): Move body to c_family_tests, 871 and call that instead. 872 * c-tree.h (selftest::run_c_tests): New decl. 873 8742017-06-26 Marek Polacek <polacek@redhat.com> 875 876 PR c/80116 877 * c-parser.c (c_parser_if_body): Set the location of the 878 body of the conditional after parsing all the labels. Call 879 warn_for_multistatement_macros. 880 (c_parser_else_body): Likewise. 881 (c_parser_switch_statement): Likewise. 882 (c_parser_while_statement): Likewise. 883 (c_parser_for_statement): Likewise. 884 (c_parser_statement): Add a default argument. Save the location 885 after labels have been parsed. 886 (c_parser_c99_block_statement): Likewise. 887 8882017-06-19 Richard Biener <rguenther@suse.de> 889 890 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle 891 negated _Literals to parse _Literal (int) -1. 892 8932017-06-13 Martin Liska <mliska@suse.cz> 894 895 PR sanitize/78204 896 * c-convert.c (convert): Use sanitize_flags_p. 897 * c-decl.c (grokdeclarator): Likewise. 898 * c-typeck.c (convert_for_assignment): Likewise. 899 (c_finish_return): Likewise. 900 (build_binary_op): Likewise. 901 9022017-06-08 Jakub Jelinek <jakub@redhat.com> 903 904 PR c/81006 905 * c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE 906 to sizetype before size_binop. 907 9082017-06-07 Jakub Jelinek <jakub@redhat.com> 909 910 * gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead 911 of TDI_generic. 912 9132017-06-06 Marek Polacek <polacek@redhat.com> 914 915 PR c/79983 916 * c-decl.c (start_struct): Use the location of TYPE_STUB_DECL of 917 ref. 918 (start_enum): Use the location of TYPE_STUB_DECL of enumtype. 919 9202017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> 921 922 * c-parser.c (c_parser_binary_expression): Implement the 923 -Wsizeof_pointer_div warning. 924 (c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code 925 from a parenthesized expression. 926 (c_parser_expr_list): Use c_last_sizeof_loc. 927 * c-tree.h (c_last_sizeof_loc): New external. 928 * c-typeck.c (c_last_sizeof_loc): New variable. 929 (c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc. 930 9312017-05-31 Mikhail Maltsev <maltsevm@gmail.com> 932 933 PR testsuite/80580 934 * gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels. 935 9362017-05-30 David Malcolm <dmalcolm@redhat.com> 937 938 * c-objc-common.c (c_tree_printer): Gain bool and const char ** 939 parameters. 940 9412017-05-24 Martin Sebor <msebor@redhat.com> 942 943 PR c/80731 944 * c-fold.c (c_fully_fold_internal): Adjust. 945 * c-typeck.c (parser_build_unary_op): Adjust. 946 9472017-05-23 Thomas Schwinge <thomas@codesourcery.com> 948 949 * c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add 950 "PRAGMA_OACC_CLAUSE_NUM_GANGS", "PRAGMA_OACC_CLAUSE_NUM_WORKERS", 951 "VECTOR_LENGTH". 952 9532017-05-23 Marek Polacek <polacek@redhat.com> 954 955 * c-parser.c (c_parser_compound_statement_nostart): Remove redundant 956 quotes. 957 9582017-05-22 Jakub Jelinek <jakub@redhat.com> 959 960 * c-fold.c (c_fully_fold_internal): Save the c_fully_fold_internal 961 result for SAVE_EXPR operand and set SAVE_EXPR_FOLDED_P even if 962 it returned invariant. Call tree_invariant_p unconditionally 963 afterwards to decide whether to return expr or op0. 964 9652017-05-22 Nathan Sidwell <nathan@acm.org> 966 967 * c-decl.c (c_parse_final_cleanups): Drop TDI_tu handling. 968 9692017-05-19 Thomas Schwinge <thomas@codesourcery.com> 970 971 * c-parser.c (c_parser_omp_clause_default): Handle 972 "OMP_CLAUSE_DEFAULT_PRESENT". 973 9742017-05-18 Bernd Edlinger <bernd.edlinger@hotmail.de> 975 976 * config-lang.in (gtfiles): Add c-family/c-format.c. 977 9782017-05-18 Nathan Sidwell <nathan@acm.org> 979 980 * c-decl.c (pushdecl_top_level): Delete unused function. 981 9822017-05-18 Marek Polacek <polacek@redhat.com> 983 984 * c-decl.c (match_builtin_function_types): Use NULL_TREE instead of 0. 985 (check_earlier_gotos): Likewise. 986 (define_label): Likewise. 987 (pending_xref_error): Likewise. 988 (smallest_type_quals_location): Likewise. 989 (grokdeclarator): Likewise. 990 (grokparms): Likewise. 991 (identifier_global_value): Likewise. 992 * c-typeck.c (set_nonincremental_init_from_string): Likewise. 993 (find_init_member): Likewise. 994 9952017-05-18 Marek Polacek <polacek@redhat.com> 996 997 * c-decl.c (start_decl): Use false/true instead of 0/1. 998 (grokdeclarator): Likewise. 999 (finish_struct): Likewise. 1000 (start_function): Change the return type to bool. Use false/true 1001 instead of 0/1. 1002 (declspecs_add_qual): Use UNKNOWN_LOCATION instead of 0. 1003 * c-tree.h (start_function): Update. 1004 * c-typeck.c (same_translation_unit_p): Change the return type to bool. 1005 (set_designator): Change the return type to bool. Use false/true 1006 instead of 0/1. 1007 10082017-05-17 Marek Polacek <polacek@redhat.com> 1009 1010 * c-decl.c: Use NULL_TREE instead of 0 where appropriate. 1011 * c-typeck.c: Likewise. 1012 10132017-05-17 Marek Polacek <polacek@redhat.com> 1014 1015 PR sanitizer/80659 1016 * c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and 1017 DECL_IGNORED_P even for non-static compound literals. 1018 10192017-05-17 Martin Liska <mliska@suse.cz> 1020 1021 * c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and 1022 use it instead of int type. 1023 10242017-05-17 Marek Polacek <polacek@redhat.com> 1025 1026 * c-convert.c (convert): Replace c_save_expr with save_expr. Don't 1027 call c_fully_fold. 1028 (convert) <case COMPLEX_TYPE>: Remove special handling of COMPLEX_TYPEs. 1029 * c-decl.c (grokdeclarator): Replace c_save_expr with save_expr. 1030 * c-fold.c (c_fully_fold_internal): Handle SAVE_EXPR. 1031 * c-parser.c (c_parser_declaration_or_fndef): Replace c_save_expr with 1032 save_expr. 1033 (c_parser_conditional_expression): Likewise. 1034 * c-tree.h (SAVE_EXPR_FOLDED_P): Define. 1035 * c-typeck.c (build_modify_expr): Replace c_save_expr with save_expr. 1036 (process_init_element): Likewise. 1037 (build_binary_op): Likewise. 1038 (handle_omp_array_sections_1): Likewise. 1039 10402017-05-12 Thomas Schwinge <thomas@codesourcery.com> 1041 1042 * c-parser.c (c_parser_omp_clause_num_gangs) 1043 (c_parser_omp_clause_num_workers) 1044 (c_parser_omp_clause_vector_length): Merge functions into... 1045 (c_parser_oacc_single_int_clause): ... this new function. Adjust 1046 all users. 1047 10482017-05-11 Nathan Sidwell <nathan@acm.org> 1049 1050 * gimple-parser.c: Don't #include tree-dump.h. 1051 10522017-05-11 Mikhail Maltsev <maltsevm@gmail.com> 1053 1054 PR testsuite/80580 1055 * gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base. 1056 10572017-05-11 Mikhail Maltsev <maltsevm@gmail.com> 1058 1059 PR testsuite/80580 1060 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle 1061 incorrect __MEM syntax. 1062 10632017-05-11 Mikhail Maltsev <maltsevm@gmail.com> 1064 1065 PR testsuite/80580 1066 * gimple-parser.c (c_parser_gimple_unary_expression): Check argument 1067 type of unary '*'. 1068 10692017-05-09 Nathan Sidwell <nathan@acm.org> 1070 1071 * c-tree.h (pushdecl): Declare. 1072 10732017-05-05 David Malcolm <dmalcolm@redhat.com> 1074 1075 * c-decl.c (warn_defaults_to): Replace report_diagnostic 1076 with diagnostic_report_diagnostic. 1077 * c-errors.c (pedwarn_c99): Likewise. 1078 (pedwarn_c90): Likewise. 1079 10802017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn> 1081 1082 PR c++/80038 1083 * c-gimplify.c (c_gimplify_expr): Remove calls to 1084 cilk_gimplifY_call_params_in_spawned_fn. 1085 10862017-04-25 David Malcolm <dmalcolm@redhat.com> 1087 1088 * c-parser.c (c_parser_struct_or_union_specifier): Add fix-it 1089 hint for removing extra semicolon. 1090 10912017-04-21 Jakub Jelinek <jakub@redhat.com> 1092 1093 PR c/80468 1094 * c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not 1095 enabled, set specs->type to integer_type_node. 1096 10972017-04-03 Jonathan Wakely <jwakely@redhat.com> 1098 1099 * c-array-notation.c: Fix typo in comment. 1100 11012017-03-29 Marek Polacek <polacek@redhat.com> 1102 1103 PR c/79730 1104 * c-decl.c (finish_decl): Check VAR_P. 1105 11062017-03-27 Jakub Jelinek <jakub@redhat.com> 1107 1108 PR middle-end/80162 1109 * c-tree.h (c_mark_addressable): Add array_ref_p argument. 1110 * c-typeck.c (c_mark_addressable): Likewise. Look through 1111 VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE 1112 to ARRAY_TYPE. 1113 (build_array_ref): Pass true as array_ref_p to c_mark_addressable. 1114 11152017-03-23 Marek Polacek <polacek@redhat.com> 1116 1117 * c-tree.h: Remove a C_RID_YYCODE reference. 1118 11192017-03-21 Jakub Jelinek <jakub@redhat.com> 1120 1121 PR c/80097 1122 * c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around 1123 optional COMPOUND_EXPR with ubsan instrumentation. 1124 11252017-03-17 Marek Polacek <polacek@redhat.com> 1126 1127 * c-parser.c: Add C11 references. 1128 11292017-03-15 Marek Polacek <polacek@redhat.com> 1130 1131 * c-parser.c (c_parser_enum_specifier): Remove redundant line. 1132 11332017-03-11 Marek Polacek <polacek@redhat.com> 1134 1135 * c-decl.c (implicit_decl_warning): Add a comment. Fix formatting. 1136 11372017-03-10 David Malcolm <dmalcolm@redhat.com> 1138 1139 PR translation/79848 1140 * c-decl.c (declspecs_add_type): Simplify uses of "%<%s%>" to 1141 "%qs". 1142 * c-parser.c (c_parser_oacc_shape_clause): Likewise. 1143 11442017-03-09 Marek Polacek <polacek@redhat.com> 1145 1146 PR sanitizer/79757 1147 * c-parser.c (c_parser_declaration_or_fndef): Don't sanitize old-style 1148 parameter declarations with initializers. 1149 11502017-03-09 Jakub Jelinek <jakub@redhat.com> 1151 1152 PR c/79969 1153 * c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of 1154 TYPE_STUB_DECL. 1155 11562017-03-07 Jakub Jelinek <jakub@redhat.com> 1157 1158 PR c/79834 1159 * c-parser.c (c_parser_pragma): Use error_at instead of c_parser_error 1160 for "may only be used in compound statements" diagnostics, change it 1161 such that the same translatable string is used for all pragmas. For 1162 PRAGMA_OACC_WAIT use "acc wait" rather than "acc enter data" in the 1163 diagnostics. 1164 (c_parser_omp_cancellation_point, c_parser_omp_target_update, 1165 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Change 1166 "may only be used in compound statements" diagnostics, such that the 1167 same translatable string is used for all pragmas. 1168 11692017-03-04 Marek Polacek <polacek@redhat.com> 1170 1171 PR c/79847 1172 * c-decl.c (implicit_decl_warning): Add missing space. 1173 11742017-03-03 Marek Polacek <polacek@redhat.com> 1175 1176 PR c/79758 1177 * c-decl.c (store_parm_decls_oldstyle): Check if the element of 1178 current_function_prototype_arg_types is error_mark_node. Fix 1179 formatting. Use TREE_VALUE instead of TREE_TYPE. 1180 11812017-03-03 Jakub Jelinek <jakub@redhat.com> 1182 1183 PR c/79837 1184 * c-parser.c (c_parser_omp_clause_reduction): Don't mention 1185 %<min%> or %<max%> in the diagnostics, instead mention identifier. 1186 (c_parser_omp_declare_reduction): Don't mention %<min%> in the 1187 diagnostics. 1188 1189 PR c/79836 1190 * c-parser.c (c_parser_generic_selection): Use %<_Generic%> 1191 instead of %<_Generic>. 1192 (c_parser_omp_ordered): Use %<depend%> instead of %<depend>. 1193 (c_parser_omp_target_exit_data): Use %<release%> instead of 1194 %<release>. 1195 11962017-02-28 Jakub Jelinek <jakub@redhat.com> 1197 1198 * c-parser.c (c_parser_asm_statement): Use cond ? G_("...") : G_("...") 1199 instead of just cond ? "..." : "...". 1200 (c_parser_oacc_enter_exit_data): Use %s and ternary operator only 1201 for "enter"/"exit" keyword. 1202 (c_finish_oacc_routine): Don't use %s to supply portions of the 1203 message. 1204 12052017-02-24 Jakub Jelinek <jakub@redhat.com> 1206 1207 PR c++/79588 1208 * c-parser.c (c_parser_postfix_expression_after_primary): Don't 1209 handle -Wrestrict here. 1210 * c-typeck.c (build_function_call_vec): Adjust 1211 check_function_arguments caller. 1212 12132017-02-23 Richard Biener <rguenther@suse.de> 1214 1215 PR c/79684 1216 * gimple-parser.c (c_parser_gimple_statement): Use set_error 1217 to initialize c_exprs to return. 1218 (c_parser_gimple_binary_expression): Likewise. 1219 (c_parser_gimple_unary_expression): Likewise. 1220 (c_parser_gimple_postfix_expression): Likewise. 1221 12222017-02-22 Marek Polacek <polacek@redhat.com> 1223 1224 PR c/79662 1225 * c-typeck.c (convert_arguments): Handle error_mark_node. 1226 12272017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 1228 1229 * gimple-parser.c (c_parser_gimple_postfix_expression): Check return 1230 value of c_parser_parse_ssa_name against error_mark_node and emit 1231 error if ssa name is anonymous and written as default definition. 1232 12332017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 1234 1235 * gimple-parser.c (c_parser_gimple_postfix_expression): Handle 1236 FMA_EXPR. 1237 12382017-02-16 Jakub Jelinek <jakub@redhat.com> 1239 1240 PR c++/79512 1241 * c-parser.c (c_parser_omp_target): For -fopenmp-simd 1242 ignore #pragma omp target even when not followed by identifier. 1243 12442017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 1245 1246 * gimpler-parser.c (c_parser_gimple_statement): Handle ABS_EXPR. 1247 (c_parser_gimple_unary_expression): Likewise. 1248 12492017-02-13 Jakub Jelinek <jakub@redhat.com> 1250 1251 * c-parser.c (c_parser_oacc_declare): Add missing space in 1252 diagnostics. 1253 12542017-02-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 1255 1256 PR c/79478 1257 * gimple-parser.c (c_parser_gimple_postfix_expression): Call 1258 set_c_expr_source_range when parsing ssa-name. 1259 12602017-02-10 Prasad Ghangal <prasad.ghangal@gmail.com> 1261 Richard Biener <rguenther@suse.de> 1262 1263 * gimple-parser.c (c_parser_gimple_binary_expression): Avoid 1264 building IL when arguments are error_mark_node. 1265 (c_parser_gimple_unary_expression): Likewise. 1266 (c_parser_gimple_if_stmt): Likewise. 1267 (c_parser_gimple_switch_stmt): Likewise. 1268 (c_parser_gimple_return_stmt): Likewise. 1269 (c_parser_parse_ssa_name): When name lookup fails do not build 1270 an SSA name. Use undeclared rather than not declared in error 1271 reporting. 1272 12732017-02-09 Marek Polacek <polacek@redhat.com> 1274 1275 PR c/79428 1276 * c-parser.c (c_parser_omp_ordered): Call c_parser_skip_to_pragma_eol 1277 instead of c_parser_skip_until_found. 1278 12792017-02-09 Jakub Jelinek <jakub@redhat.com> 1280 1281 PR c/79431 1282 * c-parser.c (c_parser_omp_declare_target): Don't invoke 1283 symtab_node::get on automatic variables. 1284 12852016-02-09 Nathan Sidwell <nathan@codesourcery.com> 1286 Chung-Lin Tang <cltang@codesourcery.com> 1287 1288 * c-parser.c (c_parser_omp_clause_collapse): Disallow tile. 1289 (c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and 1290 semantic checking. 1291 * c-parser.c (c_parser_omp_for_loop): Accept tiling constructs. 1292 12932017-02-07 Richard Biener <rguenther@suse.de> 1294 1295 * gimple-parser.c (c_parser_gimple_expr_list): Simplify. 1296 (c_parser_gimple_postfix_expression_after_primary): 1297 Do not use c_build_function_call_vec to avoid folding and promotion. 1298 Simplify. 1299 13002017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com> 1301 1302 PR lto/79061 1303 * c-decl.c (pop_scope): Pass main_input_filename to 1304 build_translation_unit_decl. 1305 13062017-01-24 David Malcolm <dmalcolm@redhat.com> 1307 1308 * c-parser.c: Include "read-rtl-function.h" and 1309 "run-rtl-passes.h". 1310 (c_parser_declaration_or_fndef): Rename "gimple-pass-list" in 1311 grammar to gimple-or-rtl-pass-list. Add rtl-function-definition 1312 production. Update for renaming of field "gimple_pass" to 1313 "gimple_or_rtl_pass". If __RTL was seen, call 1314 c_parser_parse_rtl_body. Convert a timevar_push/pop pair 1315 to an auto_timevar, to cope with early exit. 1316 (c_parser_declspecs): Update RID_GIMPLE handling for renaming of 1317 field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of 1318 c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list. 1319 Handle RID_RTL. 1320 (c_parser_parse_rtl_body): New function. 1321 * c-tree.h (enum c_declspec_word): Add cdw_rtl. 1322 (struct c_declspecs): Rename field "gimple_pass" to 1323 "gimple_or_rtl_pass". Add field "rtl_p". 1324 * gimple-parser.c (c_parser_gimple_pass_list): Rename to... 1325 (c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly. 1326 * gimple-parser.h (c_parser_gimple_pass_list): Rename to... 1327 (c_parser_gimple_or_rtl_pass_list): ...this. 1328 13292017-01-20 Marek Polacek <polacek@redhat.com> 1330 1331 PR c/64279 1332 * c-typeck.c (build_conditional_expr): Warn about duplicated branches. 1333 13342017-01-13 Richard Biener <rguenther@suse.de> 1335 1336 * gimple-parser.c (c_parser_gimple_compound_statement): Handle 1337 nops. 1338 13392017-01-13 Richard Biener <rguenther@suse.de> 1340 1341 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse 1342 _Literal ( type-name ) number. 1343 13442017-01-12 Richard Biener <rguenther@suse.de> 1345 1346 * gimple-parser.c (c_parser_gimple_postfix_expression): Parse 1347 __MEM. 1348 13492017-01-11 Jakub Jelinek <jakub@redhat.com> 1350 1351 PR c++/72813 1352 * c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing 1353 PCH file. 1354 13552017-01-11 Richard Biener <rguenther@suse.de> 1356 1357 PR bootstrap/79052 1358 * gimple-parser.c (c_parser_gimple_switch_stmt): Add missing 1359 returns on parse errors. 1360 13612017-01-04 Marek Polacek <polacek@redhat.com> 1362 1363 PR c++/64767 1364 * c-parser.c (c_parser_postfix_expression): Mark zero character 1365 constants by setting original_type in c_expr. 1366 * c-typeck.c (parser_build_binary_op): Warn when a pointer is compared 1367 with a zero character constant. 1368 (char_type_p): New function. 1369 13702017-01-04 David Malcolm <dmalcolm@redhat.com> 1371 1372 * c-parser.c (c_parser_declaration_or_fndef): Create a 1373 rich_location at init_loc and parse it to start_init. 1374 (last_init_list_comma): New global. 1375 (c_parser_braced_init): Update last_init_list_comma when parsing 1376 commas. Pass it to pop_init_level. Pass location of closing 1377 brace to pop_init_level. 1378 (c_parser_postfix_expression_after_paren_type): Create a 1379 rich_location at type_loc and parse it to start_init. 1380 (c_parser_omp_declare_reduction): Likewise for loc. 1381 * c-tree.h (start_init): Add rich_location * param. 1382 (pop_init_level): Add location_t param. 1383 * c-typeck.c (struct initializer_stack): Add field 1384 "missing_brace_richloc". 1385 (start_init): Add richloc param, use it to initialize 1386 the stack node's missing_brace_richloc. 1387 (last_init_list_comma): New decl. 1388 (finish_implicit_inits): Pass last_init_list_comma to 1389 pop_init_level. 1390 (push_init_level): When finding missing open braces, add fix-it 1391 hints to the richloc. 1392 (pop_init_level): Add "insert_before" param and pass it 1393 when calling pop_init_level. Add fixits about missing 1394 close braces to any richloc. Use the richloc for the 1395 -Wmissing-braces warning. 1396 (set_designator): Pass last_init_list_comma to pop_init_level. 1397 (process_init_element): Likewise. 1398 13992017-01-01 Jakub Jelinek <jakub@redhat.com> 1400 1401 Update copyright years. 1402 14032016-12-21 Jakub Jelinek <jakub@redhat.com> 1404 1405 PR bootstrap/78817 1406 * c-typeck.c (build_function_call_vec): If check_function_arguments 1407 returns true, set TREE_NO_WARNING on CALL_EXPR. 1408 1409 PR c/77767 1410 * c-decl.c (grokdeclarator): If *expr is non-NULL, append expression 1411 to *expr instead of overwriting it. 1412 14132016-12-20 Richard Biener <rguenther@suse.de> 1414 1415 * gimple-parser.c (c_parser_gimple_compound_statement): Improve 1416 error recovery. 1417 (c_parser_gimple_statement): Only build assigns for non-error 1418 stmts. 1419 (c_parser_gimple_postfix_expression_after): Improve error recovery. 1420 14212016-12-14 Martin Jambor <mjambor@suse.cz> 1422 1423 * c-parser.c: Include omp-general.h and omp-offload.h instead of 1424 omp-low.h. 1425 (c_finish_oacc_routine): Adjusted call to 1426 get_oacc_fn_attrib, build_oacc_routine_dims and replace_oacc_fn_attrib 1427 to use their new names. 1428 (c_parser_oacc_enter_exit_data): Adjusted call to find_omp_clause to 1429 use its new name. 1430 (c_parser_oacc_update): Likewise. 1431 (c_parser_omp_simd): Likewise. 1432 (c_parser_omp_target_update): Likewise. 1433 * c-typeck.c: Include omp-general.h instead of omp-low.h. 1434 (c_finish_omp_cancel): Adjusted call to find_omp_clause to use its new 1435 name. 1436 (c_finish_omp_cancellation_point): Likewise. 1437 * gimple-parser.c: Do not include omp-low.h 1438 14392016-12-02 Cesar Philippidis <cesar@codesourcery.com> 1440 James Norris <jnorris@codesourcery.com> 1441 1442 * c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA, 1443 EXIT_DATA,WAIT} are not used in compound statements. 1444 (c_parser_oacc_enter_exit_data): Update diagnostics. 1445 14462016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de> 1447 1448 PR c++/71973 1449 * c-decl.c (diagnose_mismatched_decls): Use 1450 OPT_Wbuiltin_declaration_mismatch here too. 1451 14522016-11-18 Richard Sandiford <richard.sandiford@arm.com> 1453 Alan Hayward <alan.hayward@arm.com> 1454 David Sherwood <david.sherwood@arm.com> 1455 1456 * c-decl.c (merge_decls): Use SET_DECL_MODE. 1457 (make_label, finish_struct): Likewise. 1458 14592016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com> 1460 Richard Biener <rguenther@suse.de> 1461 1462 * Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o. 1463 * config-lang.in (gtfiles): Add c/c-parser.h. 1464 * c-tree.h (enum c_declspec_word): Add cdw_gimple. 1465 (struct c_declspecs): Add gimple_pass member and gimple_p flag. 1466 * c-parser.c (enum c_id_kind, struct c_token, 1467 c_parser_next_token_is, c_parser_next_token_is_not, 1468 c_parser_next_token_is_keyword, 1469 enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec): 1470 Split out to ... 1471 * c-parser.h: ... new header. 1472 * c-parser.c: Include c-parser.h and gimple-parser.h. 1473 (c_parser_peek_token, c_parser_peek_2nd_token, 1474 c_token_starts_typename, c_parser_next_token_starts_declspecs, 1475 c_parser_next_tokens_start_declaration, c_parser_consume_token, 1476 c_parser_error, c_parser_require, c_parser_skip_until_found, 1477 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token, 1478 c_parser_type_name): Export. 1479 (c_parser_tokens_buf): New function. 1480 (c_parser_error): Likewise. 1481 (c_parser_set_error): Likewise. 1482 (c_parser_declspecs): Handle RID_GIMPLE. 1483 (c_parser_declaration_or_fndef): Parse __GIMPLE marked body 1484 via c_parser_parse_gimple_body. 1485 * c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token, 1486 c_token_starts_typename, c_parser_next_token_starts_declspecs, 1487 c_parser_next_tokens_start_declaration, c_parser_consume_token, 1488 c_parser_error, c_parser_require, c_parser_skip_until_found, 1489 c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token, 1490 c_parser_type_name): Declare. 1491 (struct c_parser): Declare forward. 1492 (c_parser_tokens_buf): Declare. 1493 (c_parser_error): Likewise. 1494 (c_parser_set_error): Likewise. 1495 * gimple-parser.c: New file. 1496 * gimple-parser.h: Likewise. 1497 14982016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 1499 1500 PR c/35503 1501 * c-parser.c (c_parser_postfix_expression_after_primary): Call 1502 warn_for_restrict. 1503 15042016-09-11 Le-Chun Wu <lcwu@google.com> 1505 Mark Wielaard <mjw@redhat.com> 1506 1507 * c-decl.c (warn_if_shadowing): Use the warning code corresponding 1508 to the given -Wshadow= variant. 1509 15102016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com> 1511 1512 * c-typeck.c: Include memmodel.h. 1513 15142016-10-13 Jakub Jelinek <jakub@redhat.com> 1515 1516 PR target/77957 1517 * c-objc-common.h (LANG_HOOKS_GETDECLS): Use hook_tree_void_null 1518 instead of lhd_return_null_tree_v. 1519 15202016-10-07 Bernd Schmidt <bschmidt@redhat.com> 1521 1522 PR c++/69733 1523 * c-decl.c (smallest_type_quals_location): New static function. 1524 (grokdeclarator): Try to find the correct location for an ignored 1525 qualifier. 1526 15272016-09-26 Marek Polacek <polacek@redhat.com> 1528 1529 PR c/7652 1530 * c-decl.c (pop_scope): Add gcc_fallthrough. 1531 15322016-09-26 Marek Polacek <polacek@redhat.com> 1533 1534 PR c/7652 1535 * c-parser.c (struct c_token): Add flags field. 1536 (c_lex_one_token): Pass it to c_lex_with_flags. 1537 (c_parser_declaration_or_fndef): Turn __attribute__((fallthrough)); 1538 into IFN_FALLTHROUGH. 1539 (c_parser_label): Set FALLTHROUGH_LABEL_P on labels. Handle 1540 attribute fallthrough after a case label or default label. 1541 (c_parser_statement_after_labels): Handle RID_ATTRIBUTE. 1542 15432016-09-24 Marek Polacek <polacek@redhat.com> 1544 1545 PR c/77490 1546 * c-typeck.c (build_unary_op): Warn about bit not on expressions that 1547 have boolean value. Warn about ++/-- on booleans. 1548 15492016-09-23 Jakub Jelinek <jakub@redhat.com> 1550 1551 * c-parser.c (incomplete_record_decls): Remove unnecessary 1552 = vNULL initialization of file scope vec. 1553 15542016-09-16 Marek Polacek <polacek@redhat.com> 1555 1556 * c-typeck.c (lvalue_p): Use true and false instead of 1 and 0. 1557 15582016-09-14 Marek Polacek <polacek@redhat.com> 1559 1560 * c-array-notation.c (create_cmp_incr): Use false instead of 0. 1561 (fix_array_notation_expr): Likewise. 1562 * c-decl.c (finish_decl): Likewise. 1563 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise. 1564 * c-typeck.c (array_to_pointer_conversion): Use true instead of 1. 1565 (function_to_pointer_conversion): Use false instead of 0. 1566 (convert_lvalue_to_rvalue): Likewise. 1567 (parser_build_unary_op): Likewise. 1568 (build_atomic_assign): Likewise. 1569 (build_unary_op): Change nonconvert parameter type to bool, use 1570 true/false instead of 1/0. 1571 (build_binary_op): Use true instead of 1. 1572 15732016-09-13 David Malcolm <dmalcolm@redhat.com> 1574 1575 * c-parser.c (c_parser_declaration_or_fndef): Update for renaming 1576 of add_fixit_insert to add_fixit_insert_before. 1577 15782016-09-13 Marek Polacek <polacek@redhat.com> 1579 1580 * c-typeck.c (build_unary_op): Rename FLAG parameter to NOCONVERT. Use 1581 it. 1582 15832016-09-12 Bernd Edlinger <bernd.edlinger@hotmail.de> 1584 1585 PR c++/77496 1586 * c-parser.c (c_parser_conditional_expression): Pass the rightmost 1587 COMPOUND_EXPR to warn_for_omitted_condop. 1588 15892016-09-07 David Malcolm <dmalcolm@redhat.com> 1590 1591 * c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use 1592 c_get_substring_location for this new langhook. 1593 15942016-09-02 Jakub Jelinek <jakub@redhat.com> 1595 1596 PR c/65467 1597 * c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if 1598 flag_openmp. 1599 (c_parser_omp_variable_list): Use convert_lvalue_to_rvalue 1600 instead of mark_exp_read on low_bound/length expression. 1601 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads, 1602 c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize, 1603 c_parser_omp_clause_priority, c_parser_omp_clause_hint, 1604 c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause, 1605 c_parser_oacc_clause_tile, c_parser_omp_clause_schedule, 1606 c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams, 1607 c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned, 1608 c_parser_omp_clause_linear, c_parser_omp_clause_safelen, 1609 c_parser_omp_clause_simdlen, c_parser_omp_clause_device, 1610 c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue 1611 instead of mark_expr_read. 1612 (c_parser_omp_declare_reduction): Reject _Atomic qualified types. 1613 * c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR, 1614 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine. 1615 * c-tree.h (c_omp_clause_copy_ctor): New prototype. 1616 * c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified 1617 array section bases outside of depend clause, for depend clause 1618 use convert_lvalue_to_rvalue on the base. 1619 (c_finish_omp_clauses): Reject _Atomic qualified vars in reduction, 1620 linear, aligned, map, to and from clauses. 1621 (c_omp_clause_copy_ctor): New function. 1622 16232016-09-01 Marek Polacek <polacek@redhat.com> 1624 1625 PR c/7652 1626 * c-typeck.c (composite_type): Add FALLTHRU comment. 1627 16282016-08-31 David Malcolm <dmalcolm@redhat.com> 1629 1630 * c-parser.c (c_parser_declaration_or_fndef): Add trailing space 1631 to the insertion fixits for "struct", "union", and "enum". 1632 16332016-08-30 David Malcolm <dmalcolm@redhat.com> 1634 1635 * c-decl.c (implicit_decl_warning): Use add_fixit_replace 1636 rather than add_fixit_misspelled_id. 1637 (undeclared_variable): Likewise. 1638 * c-parser.c (c_parser_declaration_or_fndef): Likewise. Remove 1639 now-redundant "here" params from add_fixit_insert method calls. 1640 (c_parser_parameter_declaration): Likewise. 1641 * c-typeck.c (build_component_ref): Remove now-redundant range 1642 param from add_fixit_replace method calls. 1643 16442016-08-25 Marek Polacek <polacek@redhat.com> 1645 1646 * c-typeck.c (parser_build_binary_op): Pass LHS to 1647 warn_logical_not_parentheses. 1648 16492016-08-25 Marek Polacek <polacek@redhat.com> 1650 1651 PR c/77323 1652 * c-decl.c (declspecs_add_type): Set typespec_word even when __intN 1653 or _FloatN or _FloatNx is not supported. 1654 (finish_declspecs): Set type to integer_type_node when _FloatN or 1655 _FloatNx is not supported. 1656 16572016-08-19 Joseph Myers <joseph@codesourcery.com> 1658 1659 PR c/32187 1660 * c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value. 1661 (struct c_declspecs): Add field floatn_nx_idx. 1662 * c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN 1663 and _FloatNx type specifiers. 1664 * c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs) 1665 (c_parser_declspecs, c_parser_attribute_any_word) 1666 (c_parser_objc_selector): Use CASE_RID_FLOATN_NX. 1667 * c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types. 1668 (convert_arguments): Avoid promoting _FloatN and _FloatNx types 1669 narrower than double. 1670 16712016-08-12 Jakub Jelinek <jakub@redhat.com> 1672 Martin Liska <mliska@suse.cz> 1673 1674 PR c/67410 1675 * c-typeck.c (set_nonincremental_init_from_string): Use / instead of 1676 % to determine val element to change. Assert that 1677 wchar_bytes * charwidth fits into val array. 1678 16792016-08-12 Marek Polacek <polacek@redhat.com> 1680 1681 PR c/7652 1682 * c-parser.c (c_parser_external_declaration): Add FALLTHRU. 1683 (c_parser_postfix_expression): Likewise. 1684 * c-typeck.c (build_unary_op): Adjust fall through comment. 1685 (c_mark_addressable): Likewise. 1686 16872016-08-11 Jakub Jelinek <jakub@redhat.com> 1688 1689 PR c/72816 1690 * c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible 1691 array member through typedef, for orig_qual_indirect == 0 clear 1692 orig_qual_type. 1693 16942016-08-08 David Malcolm <dmalcolm@redhat.com> 1695 1696 PR c/64955 1697 * c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire 1698 this up to selftest::run_c_tests. 1699 (selftest::run_c_tests): New function. 1700 17012016-08-04 Thomas Schwinge <thomas@codesourcery.com> 1702 1703 * c-parser.c (struct oacc_routine_data): Add error_seen and 1704 fndecl_seen members. 1705 (c_finish_oacc_routine): Use these. 1706 (c_parser_declaration_or_fndef): Adjust. 1707 (c_parser_oacc_routine): Likewise. Support more C language 1708 constructs, and improve diagnostics. Move pragma context 1709 checking... 1710 (c_parser_pragma): ... here. 1711 1712 * c-parser.c (struct oacc_routine_data): New. 1713 (c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it. 1714 Simplify code. 1715 (c_finish_oacc_routine): Likewise. Don't attach clauses to "omp 1716 declare target" attribute. 1717 17182016-08-01 Jan Beulich <jbeulich@suse.com> 1719 1720 * c-fold.c (c_fully_fold_internal): Also emit shift count 1721 warnings for vector types. 1722 * c-typeck.c (build_binary_op): Likewise. 1723 17242016-07-29 Marek Polacek <polacek@redhat.com> 1725 1726 PR c/71742 1727 * c-decl.c (finish_struct): Rephrase an error message. 1728 1729 PR c/71853 1730 * c-parser.c (c_parser_switch_statement): Initialize ce.original_type 1731 to error node for invalid code. 1732 1733 PR c/71573 1734 * c-decl.c (implicitly_declare): Return decl early not only for 1735 error_mark_nodes, but for anything that is not a FUNCTION_DECL. 1736 17372016-07-29 Jakub Jelinek <jakub@redhat.com> 1738 1739 PR c/71969 1740 * c-decl.c (finish_function): Only set DECL_DISREGARD_INLINE_LIMITS 1741 on GNU extern inline functions. 1742 17432016-07-29 Marek Polacek <polacek@redhat.com> 1744 1745 PR c/71583 1746 * c-parser.c (c_parser_postfix_expression_after_paren_type): Also 1747 check expr.value. 1748 17492016-07-22 Uros Bizjak <ubizjak@gmail.com> 1750 1751 * c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1, 1752 17532016-07-20 David Malcolm <dmalcolm@redhat.com> 1754 1755 * c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to 1756 spellcheck-tree.h 1757 (best_macro_match): Likewise, converting from a typedef to a 1758 subclass. 1759 (find_closest_macro_cpp_cb): Move to spellcheck-tree.c. 1760 (lookup_name_fuzzy): Update for change of best_macro_match to a 1761 subclass with a ctor that calls cpp_forall_identifiers. 1762 17632016-07-20 David Malcolm <dmalcolm@redhat.com> 1764 1765 * c-decl.c (implicit_decl_warning): Update for conversion of 1766 return type of lookup_name_fuzzy to const char *. 1767 (undeclared_variable): Likewise. 1768 (lookup_name_fuzzy): Convert return type from tree to 1769 const char *. 1770 * c-parser.c (c_parser_declaration_or_fndef): Update for 1771 conversion of return type of lookup_name_fuzzy to const char *. 1772 (c_parser_parameter_declaration): Likewise. 1773 17742016-07-15 Cesar Philippidis <cesar@codesourcery.com> 1775 1776 * c-parser.c (c_parser_oacc_declare): Don't scan for 1777 GOMP_MAP_POINTER. 1778 * c-typeck.c (handle_omp_array_sections): Mark data clauses with 1779 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having 1780 zero-length subarrays. 1781 17822016-07-15 Jakub Jelinek <jakub@redhat.com> 1783 1784 PR c/71858 1785 * c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME 1786 instead of FUZZY_LOOKUP_NAME. 1787 (lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider 1788 FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros. 1789 17902016-07-14 Jakub Jelinek <jakub@redhat.com> 1791 1792 PR c/71858 1793 * c-decl.c (lookup_name_fuzzy): Ignore binding->invisible. 1794 17952016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 1796 1797 * c-parser.c (c_parser_generic_selection): Make type of variable 1798 auto_vec. 1799 (c_parser_omp_declare_simd): Likewise. 1800 18012016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 1802 1803 * c-decl.c (struct c_struct_parse_info): Change member types 1804 from vec to auto_vec. 1805 (start_struct): Adjust. 1806 (finish_struct): Likewise. 1807 18082016-07-02 Jakub Jelinek <jakub@redhat.com> 1809 1810 PR c/71719 1811 * c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR. 1812 18132016-06-29 Thomas Schwinge <thomas@codesourcery.com> 1814 1815 * c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>: 1816 Move pragma context checking into... 1817 (c_parser_omp_cancellation_point): ... here, and improve 1818 diagnostic messages. 1819 * c-typeck.c (c_finish_omp_cancel) 1820 (c_finish_omp_cancellation_point): Improve diagnostic messages. 1821 18222016-06-29 Jakub Jelinek <jakub@redhat.com> 1823 1824 PR c/71685 1825 * c-typeck.c (c_build_qualified_type): Don't clear 1826 C_TYPE_INCOMPLETE_VARS for the main variant. 1827 18282016-06-28 Martin Sebor <msebor@redhat.com> 1829 1830 PR c/71552 1831 * c-typeck.c (output_init_element): Diagnose incompatible types 1832 before non-constant initializers. 1833 18342016-06-28 Jakub Jelinek <jakub@redhat.com> 1835 1836 * Make-lang.in: Don't cat ../stage_current if it does not exist. 1837 18382016-06-23 Andi Kleen <ak@linux.intel.com> 1839 1840 * Make-lang.in: Add support for autofdo. 1841 18422016-06-22 David Malcolm <dmalcolm@redhat.com> 1843 1844 PR c/70339 1845 * c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h. 1846 (implicit_decl_warning): When issuing warnings for implicit 1847 declarations, attempt to provide a suggestion via 1848 lookup_name_fuzzy. 1849 (undeclared_variable): Likewise when issuing errors. 1850 (lookup_name_in_scope): Likewise. 1851 (struct edit_distance_traits<cpp_hashnode *>): New struct. 1852 (best_macro_match): New typedef. 1853 (find_closest_macro_cpp_cb): New function. 1854 (lookup_name_fuzzy): New function. 1855 * c-parser.c: Include gcc-rich-location.h. 1856 (c_token_starts_typename): Split out case CPP_KEYWORD into... 1857 (c_keyword_starts_typename): ...this new function. 1858 (c_parser_declaration_or_fndef): When issuing errors about 1859 missing "struct" etc, add a fixit. For other kinds of errors, 1860 attempt to provide a suggestion via lookup_name_fuzzy. 1861 (c_parser_parms_declarator): When looking ahead to detect typos in 1862 type names, also reject CPP_KEYWORD. 1863 (c_parser_parameter_declaration): When issuing errors about 1864 unknown type names, attempt to provide a suggestion via 1865 lookup_name_fuzzy. 1866 * c-tree.h (c_keyword_starts_typename): New prototype. 1867 18682016-06-20 Joseph Myers <joseph@codesourcery.com> 1869 1870 PR c/71601 1871 * c-typeck.c (build_conditional_expr): Return error_mark_node if 1872 c_common_type returns error_mark_node. 1873 18742016-06-19 Martin Sebor <msebor@redhat.com> 1875 1876 PR c/69507 1877 * c-parser.c (c_parser_alignof_expression): Avoid diagnosing 1878 __alignof__ (expression). 1879 18802016-06-14 David Malcolm <dmalcolm@redhat.com> 1881 1882 * c-typeck.c: Include spellcheck-tree.h rather than spellcheck.h. 1883 18842016-06-14 David Malcolm <dmalcolm@redhat.com> 1885 1886 * c-typeck.c (build_component_ref): Simplify fixit code by 1887 using gcc_rich_location::add_fixit_misspelled_id. 1888 (set_init_label): Likewise. 1889 18902016-06-13 David Malcolm <dmalcolm@redhat.com> 1891 1892 * c-parser.c (c_parser_initelt): Provide location of name for new 1893 location_t param of set_init_label. 1894 * c-tree.h (set_init_label): Add location_t param. 1895 * c-typeck.c (set_init_index): Add "fieldname_loc" location_t 1896 param and use it when issuing error messages about unrecognized 1897 field names. Attempt to provide a fixit hint if appropriate, 1898 otherwise update the error message to provide the type name. 1899 19002016-06-10 Thomas Schwinge <thomas@codesourcery.com> 1901 1902 PR c/71381 1903 * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>: 1904 Loosen checking. 1905 19062016-06-08 Martin Sebor <msebor@redhat.com> 1907 Jakub Jelinek <jakub@redhat.com> 1908 1909 PR c++/70507 1910 PR c/68120 1911 * c-typeck.c (convert_arguments): Don't promote last argument 1912 of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P. 1913 19142016-06-08 Marek Polacek <polacek@redhat.com> 1915 1916 PR c/71418 1917 * c-decl.c (grokdeclarator): Check TYPE_P. 1918 1919 PR c/71426 1920 * c-decl.c (get_parm_info): Don't crash on an assert on invalid 1921 code. 1922 19232016-06-07 David Malcolm <dmalcolm@redhat.com> 1924 1925 * c-parser.c (c_parser_postfix_expression): In __builtin_offsetof 1926 and structure element reference, capture the location of the 1927 element name token and pass it to build_component_ref. 1928 (c_parser_postfix_expression_after_primary): Likewise for 1929 structure element dereference. 1930 (c_parser_omp_variable_list): Likewise for 1931 OMP_CLAUSE_{_CACHE, MAP, FROM, TO}, 1932 * c-tree.h (build_component_ref): Add location_t param. 1933 * c-typeck.c (build_component_ref): Add location_t param 1934 COMPONENT_LOC. Use it, if available, when issuing hints about 1935 mispelled member names to provide a fixit replacement hint. 1936 19372016-06-06 Marek Polacek <polacek@redhat.com> 1938 1939 PR c/71362 1940 * c-parser.c (c_parser_direct_declarator): Set location. 1941 19422016-06-06 Marek Polacek <polacek@redhat.com> 1943 1944 * c-typeck.c (comptypes_internal): Handle comparisons of 1945 INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes. Don't check 1946 TYPE_REF_CAN_ALIAS_ALL. 1947 19482016-06-03 Chung-Lin Tang <cltang@codesourcery.com> 1949 1950 * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction 1951 arguments as addressable when async clause exists. 1952 19532016-05-30 Jakub Jelinek <jakub@redhat.com> 1954 1955 PR c++/71349 1956 * c-parser.c (c_parser_omp_for): Don't disallow nowait clause 1957 when combined with target construct. 1958 19592016-05-26 Jakub Jelinek <jakub@redhat.com> 1960 1961 * c-parser.c (c_parser_omp_clause_schedule): Warn if 1962 OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive. 1963 19642016-05-25 Marek Polacek <polacek@redhat.com> 1965 1966 PR c/71265 1967 * c-decl.c (c_make_fname_decl): Don't check seen_error. 1968 1969 PR c/71266 1970 * c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs. 1971 19722016-05-24 Cesar Philippidis <cesar@codesourcery.com> 1973 1974 * c-parser.c (c_parser_oacc_declare): Add support for 1975 GOMP_MAP_FIRSTPRIVATE_POINTER. 1976 * c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp 1977 argument with enum c_omp_region_type ort. 1978 (handle_omp_array_sections): Likewise. Update call to 1979 handle_omp_array_sections_1. 1980 (c_finish_omp_clauses): Add specific errors and warning messages for 1981 OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update 1982 call to handle_omp_array_sections. 1983 19842016-05-24 Thomas Schwinge <thomas@codesourcery.com> 1985 1986 * c-parser.c (c_parser_oacc_routine): Tighten syntax checks. 1987 19882016-05-24 Richard Biener <rguenther@suse.de> 1989 1990 PR middle-end/70434 1991 PR c/69504 1992 * c-typeck.c (build_array_ref): Do not complain about indexing 1993 non-lvalue vectors. Adjust for function name change. 1994 19952016-05-20 Martin Sebor <msebor@redhat.com> 1996 1997 PR c/71115 1998 * c-typeck.c (error_init): Use 1999 expansion_point_location_if_in_system_header. 2000 (warning_init): Same. 2001 20022016-05-19 David Malcolm <dmalcolm@redhat.com> 2003 2004 PR c/71171 2005 * c-parser.c (c_parser_generic_selection): Use c_expr::set_error 2006 in error-handling. 2007 (c_parser_postfix_expression): Likewise. 2008 * c-tree.h (c_expr::set_error): New method. 2009 * c-typeck.c (parser_build_binary_op): In error-handling, ensure 2010 that result's range is initialized. 2011 20122016-05-17 James Greenhalgh <james.greenhalgh@arm.com> 2013 2014 * c-typeck.c (parser_build_unary_op): Fix formatting. 2015 20162016-05-16 Matthew Wahab <matthew.wahab@arm.com> 2017 2018 * c-decl.c (grokdeclarator): Remove errmsg and use of 2019 targetm.invalid_return_type. 2020 (grokparms): Remove errmsg and use of 2021 targetm.invalid_parameter_type. 2022 20232016-05-13 Joseph Myers <joseph@codesourcery.com> 2024 2025 * c-decl.c (grokdeclarator): For C11, discard qualifiers on 2026 function return type. 2027 20282016-05-12 Marek Polacek <polacek@redhat.com> 2029 2030 PR c/70756 2031 * c-decl.c (build_compound_literal): Pass LOC down to 2032 c_incomplete_type_error. 2033 * c-tree.h (require_complete_type): Adjust declaration. 2034 (c_incomplete_type_error): Likewise. 2035 * c-typeck.c (require_complete_type): Add location parameter, pass it 2036 down to c_incomplete_type_error. 2037 (c_incomplete_type_error): Add location parameter, pass it down to 2038 error_at. 2039 (build_component_ref): Pass location down to c_incomplete_type_error. 2040 (default_conversion): Pass location down to require_complete_type. 2041 (build_array_ref): Likewise. 2042 (build_function_call_vec): Likewise. 2043 (convert_arguments): Likewise. 2044 (build_unary_op): Likewise. 2045 (build_c_cast): Likewise. 2046 (build_modify_expr): Likewise. 2047 (convert_for_assignment): Likewise. 2048 (c_finish_omp_clauses): Likewise. 2049 20502016-05-11 Mikhail Maltsev <maltsevm@gmail.com> 2051 2052 PR c/43651 2053 * c-decl.c (declspecs_add_qual): Warn when -Wduplicate-decl-specifier 2054 is enabled. 2055 * c-errors.c (pedwarn_c90): Return true if warned. 2056 * c-tree.h (pedwarn_c90): Change return type to bool. 2057 (enum c_declspec_word): Add new enumerator cdw_atomic. 2058 20592016-05-11 Marek Polacek <polacek@redhat.com> 2060 2061 PR c++/71024 2062 * c-decl.c (diagnose_mismatched_decls): Factor out code to 2063 diagnose_mismatched_attributes and call it. 2064 20652016-05-10 Marek Polacek <polacek@redhat.com> 2066 2067 PR c/70255 2068 * c-decl.c (diagnose_mismatched_decls): Warn for optimize attribute 2069 on a declaration following the definition. 2070 20712016-05-05 Jakub Jelinek <jakub@redhat.com> 2072 2073 * c-parser.c (c_parser_switch_statement): Add IF_P argument, 2074 parse it through to c_parser_c99_block_statement. 2075 (c_parser_statement_after_labels): Adjust c_parser_switch_statement 2076 caller. 2077 20782016-05-04 Marek Polacek <polacek@redhat.com> 2079 2080 * c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with 2081 OPT_Wdangling_else. 2082 20832016-05-04 Marek Polacek <polacek@redhat.com> 2084 2085 PR c/48778 2086 * c-typeck.c (build_binary_op): Don't issue -Waddress warnings 2087 for macro expansions. 2088 20892016-05-03 Marek Polacek <polacek@redhat.com> 2090 2091 PR c/70859 2092 * c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to 2093 check_builtin_function_arguments. 2094 20952016-05-03 Richard Biener <rguenther@suse.de> 2096 2097 * Make-lang.in (cc1-checksum.c): For stage-final re-use 2098 the checksum from the previous stage. 2099 21002016-05-02 Cesar Philippidis <cesar@codesourcery.com> 2101 2102 * c-parser.c (c_parser_oacc_all_clauses): Update call to 2103 c_finish_omp_clauses. 2104 (c_parser_omp_all_clauses): Likewise. 2105 (c_parser_oacc_cache): Likewise. 2106 (c_parser_oacc_loop): Likewise. 2107 (omp_split_clauses): Likewise. 2108 (c_parser_omp_declare_target): Likewise. 2109 (c_parser_cilk_all_clauses): Likewise. 2110 (c_parser_cilk_for): Likewise. 2111 * c-typeck.c (c_finish_omp_clauses): Replace bool arguments 2112 is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort. 2113 21142016-05-02 Marek Polacek <polacek@redhat.com> 2115 2116 PR c/70851 2117 * c-decl.c (grokdeclarator): Diagnose when array's size has an 2118 incomplete type. 2119 21202016-04-29 Cesar Philippidis <cesar@codesourcery.com> 2121 2122 PR middle-end/70626 2123 * c-parser.c (c_parser_oacc_loop): Don't augment mask with 2124 OACC_LOOP_CLAUSE_MASK. 2125 (c_parser_oacc_kernels_parallel): Update call to 2126 c_oacc_split_loop_clauses. 2127 21282016-04-28 Andrew MacLeod <amacleod@redhat.com> 2129 2130 * c-array-notation.c (fix_builtin_array_notation_fn): Fix final 2131 argument to build_modify_expr in two cases. 2132 21332016-04-27 Bernd Schmidt <bschmidt@redhat.com> 2134 2135 * c-parser.c (c_parser_postfix_expression_after_primary): Call 2136 warn_for_memset instead of warning directly here. 2137 21382016-04-26 Marek Polacek <polacek@redhat.com> 2139 2140 PR c/67784 2141 * c-parser.c (c_parser_maybe_reclassify_token): New function factored 2142 out of ... 2143 (c_parser_for_statement): ... here. 2144 (c_parser_if_statement): Use it. 2145 (c_parser_switch_statement): Use it. 2146 (c_parser_while_statement): Use it. 2147 2148 PR c/70791 2149 * c-decl.c (pushdecl): Pass LOCUS down to warning. 2150 21512016-04-20 Ilya Verbin <ilya.verbin@intel.com> 2152 2153 PR c++/69363 2154 * c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses 2155 instead of c_finish_cilk_clauses. 2156 * c-tree.h (c_finish_omp_clauses): Add new default argument. 2157 * c-typeck.c (c_finish_omp_clauses): Add new argument. Allow 2158 floating-point variables in the linear clause for Cilk Plus. 2159 21602016-04-18 Michael Matz <matz@suse.de> 2161 2162 * c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN. 2163 (grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN. 2164 21652016-04-15 Marek Polacek <polacek@redhat.com> 2166 2167 PR c/70671 2168 * c-typeck.c (build_unary_op): Pass location down to error and 2169 warning call. 2170 21712016-04-15 Jakub Jelinek <jakub@redhat.com> 2172 2173 PR c/70436 2174 * c-parser.c (c_parser_pragma): Add IF_P argument, pass it down 2175 where needed. 2176 (c_parser_external_declaration, c_parser_struct_or_union_specifier, 2177 c_parser_parameter_declaration, c_parser_compound_statement_nostart, 2178 c_parser_objc_class_instance_variables, c_parser_objc_methodprotolist): 2179 Adjust c_parser_pragma callers. 2180 (c_parser_statement_after_labels): Likewise. Adjust c_parser_cilk_for 2181 caller. 2182 (c_parser_omp_structured_block): Add IF_P argument, pass it down to 2183 c_parser_statement. 2184 (c_parser_oacc_data, c_parser_oacc_host_data, c_parser_oacc_loop, 2185 c_parser_oacc_kernels_parallel, c_parser_omp_critical, 2186 c_parser_omp_simd, c_parser_omp_for, c_parser_omp_master, 2187 c_parser_omp_ordered, c_parser_omp_parallel, c_parser_omp_single, 2188 c_parser_omp_task, c_parser_omp_taskgroup, c_parser_omp_distribute, 2189 c_parser_omp_teams, c_parser_omp_target_data, c_parser_omp_target, 2190 c_parser_omp_taskloop, c_parser_omp_construct, c_parser_cilk_grainsize, 2191 c_parser_cilk_simd, c_parser_cilk_for): Add IF_P argument, pass it 2192 down where needed. 2193 (c_parser_omp_for_loop): Likewise. Clear IF_P if nbraces. 2194 (c_parser_omp_sections_scope): Adjust c_parser_omp_structured_block 2195 calls. 2196 21972016-04-13 Marek Polacek <polacek@redhat.com> 2198 2199 PR c/70436 2200 * c-parser.c (c_parser_statement_after_labels): Add IF_P argument and 2201 adjust callers. 2202 (c_parser_statement): Likewise. 2203 (c_parser_c99_block_statement): Likewise. 2204 (c_parser_while_statement): Likewise. 2205 (c_parser_for_statement): Likewise. 2206 (c_parser_if_body): Don't set IF_P here. 2207 (c_parser_if_statement): Add IF_P argument. Set IF_P here. Warn 2208 about dangling else here. 2209 * c-tree.h (c_finish_if_stmt): Adjust declaration. 2210 * c-typeck.c (c_finish_if_stmt): Remove NESTED_IF parameter. Don't 2211 warn about dangling else here. 2212 22132016-04-04 Marek Polacek <polacek@redhat.com> 2214 2215 PR c/70307 2216 * c-fold.c (c_fully_fold_internal): Handle VEC_COND_EXPR. 2217 22182016-03-31 Marek Polacek <polacek@redhat.com> 2219 2220 PR c/70297 2221 * c-decl.c (merge_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN. 2222 22232016-03-18 David Malcolm <dmalcolm@redhat.com> 2224 2225 PR c/70281 2226 * c-parser.c (c_parser_postfix_expression): Set the source range 2227 for uses of "__builtin_types_compatible_p". 2228 22292016-03-17 Jakub Jelinek <jakub@redhat.com> 2230 2231 PR c/70280 2232 * c-typeck.c (composite_type): Don't count void_list_node 2233 into len, if the list is terminated by void_list_node, start 2234 with void_list_node instead of NULL for newargs. Stop 2235 at void_list_node. 2236 22372016-03-16 Marek Polacek <polacek@redhat.com> 2238 2239 PR c/70093 2240 * c-typeck.c (build_function_call_vec): Create a TARGET_EXPR for 2241 nested functions returning VM types. 2242 22432016-03-09 Cesar Philippidis <cesar@codesourcery.com> 2244 2245 * c-parser.c (c_parser_oacc_loop): Update cclauses and clauses 2246 when calling c_finish_omp_clauses. 2247 22482016-03-04 Bernd Schmidt <bschmidt@redhat.com> 2249 2250 PR c/69824 2251 * c-decl.c (get_parm_info): Don't queue implicit function declarations 2252 for later. 2253 22542016-03-04 Marek Polacek <polacek@redhat.com> 2255 2256 PR c/69798 2257 * c-parser.c (c_parser_postfix_expression): Call 2258 c_parser_cast_expression rather than c_parser_postfix_expression. 2259 22602016-03-01 Jakub Jelinek <jakub@redhat.com> 2261 2262 PR c/69796 2263 PR c/69974 2264 * c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE 2265 of incomplete decls to error_mark_node. 2266 22672016-02-24 Marek Polacek <polacek@redhat.com> 2268 2269 PR c/69819 2270 * c-decl.c (finish_decl): Don't update the copy of the type of a 2271 different decl type. 2272 22732016-02-23 Jakub Jelinek <jakub@redhat.com> 2274 2275 PR objc/69844 2276 * c-parser.c (c_parser_for_statement): Properly handle ObjC classes 2277 in id_kind reclassification. 2278 22792016-02-16 Jakub Jelinek <jakub@redhat.com> 2280 2281 PR c/69835 2282 * c-typeck.c (build_binary_op): Revert 2015-09-09 change. 2283 22842016-02-16 James Norris <jnorris@codesourcery.com> 2285 2286 PR c/64748 2287 * c-parser.c (c_parser_oacc_data_clause_deviceptr): Allow parms. 2288 22892016-02-12 Bernd Schmidt <bschmidt@redhat.com> 2290 2291 * c-decl.c (build_null_declspecs): Zero the entire struct. 2292 2293 PR c/69522 2294 * c-parser.c (c_parser_braced_init): New arg outer_obstack. All 2295 callers changed. If nested_p is true, use it to call 2296 finish_implicit_inits. 2297 * c-tree.h (finish_implicit_inits): Declare. 2298 * c-typeck.c (finish_implicit_inits): New function. Move code 2299 from ... 2300 (push_init_level): ... here. 2301 (set_designator, process_init_element): Call finish_implicit_inits. 2302 23032016-02-11 Jakub Jelinek <jakub@redhat.com> 2304 2305 PR c/69768 2306 * c-typeck.c (parser_build_binary_op): Strip nops from integer_zerop 2307 arguments for -Waddress warning. 2308 23092016-02-04 Jakub Jelinek <jakub@redhat.com> 2310 2311 PR c/69669 2312 * c-decl.c (finish_enum): When honoring mode attribute, 2313 make sure to use proper TYPE_MIN_VALUE and TYPE_MAX_VALUE. 2314 23152016-01-29 Jakub Jelinek <jakub@redhat.com> 2316 2317 PR debug/69518 2318 * c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in 2319 all type variants, not just TYPE_MAIN_VARIANT. 2320 23212016-01-27 Jakub Jelinek <jakub@redhat.com> 2322 2323 PR debug/66869 2324 * c-decl.c (c_write_global_declarations_1): Warn with 2325 warn_unused_function if static prototype without definition 2326 is not C_DECL_USED. 2327 23282016-01-27 Marek Polacek <polacek@redhat.com> 2329 2330 PR c/68062 2331 * c-typeck.c (build_binary_op) [EQ_EXPR, GE_EXPR]: Promote operand 2332 to unsigned, if needed. Add -Wsign-compare warning. 2333 23342016-01-26 Jakub Jelinek <jakub@redhat.com> 2335 2336 PR tree-optimization/69483 2337 * c-parser.c (c_parser_translation_unit): Use FOR_EACH_VEC_ELT. 2338 23392016-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 2340 2341 PR c/24293 2342 * c-tree.h (incomplete_record_decls): Declare. 2343 * c-parser.c (incomplete_record_decls): Define. 2344 (c_parser_translation_unit): Iterate through incomplete_record_decls and 2345 report error if any decl has zero size. 2346 * c-decl.c (finish_decl): Append static decl with incomplete struct/union 2347 or enum type to incomplete_record_decls. 2348 23492016-01-14 Tom de Vries <tom@codesourcery.com> 2350 2351 PR tree-optimization/68773 2352 * c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't 2353 set force_output. 2354 23552016-01-14 Marek Polacek <polacek@redhat.com> 2356 2357 PR c/69262 2358 * c-decl.c (grokdeclarator): Provide more information for invalid 2359 array declarations. 2360 23612016-01-06 David Malcolm <dmalcolm@redhat.com> 2362 2363 * c-parser.c (c_parser_unary_expression): For dereferences, build 2364 a combined location before calling build_indirect_ref, so that 2365 error reports cover the full range, manually updating the c_expr 2366 src_range. 2367 23682016-01-06 Marek Polacek <polacek@redhat.com> 2369 2370 PR sanitizer/69099 2371 * c-convert.c (convert) [INTEGER_TYPE]: Drop ARG. Don't pass ARG to 2372 ubsan_instrument_float_cast. Fold EXPR. Use NULL_TREE instead of 2373 NULL. 2374 23752016-01-04 Jakub Jelinek <jakub@redhat.com> 2376 2377 Update copyright years. 2378 23792016-01-04 Marek Polacek <polacek@redhat.com> 2380 2381 PR c/68908 2382 * c-typeck.c (build_atomic_assign): Improve commentary. Add 2383 optimization to use __atomic_fetch_* built-in if possible. 2384 23852015-12-23 Thomas Schwinge <thomas@codesourcery.com> 2386 2387 * c-parser.c (c_parser_oacc_clause_use_device): Merge function 2388 into... 2389 (c_parser_omp_clause_use_device_ptr): ... this function. Adjust 2390 all users. 2391 23922015-12-22 Marek Polacek <polacek@redhat.com> 2393 2394 PR c/69002 2395 * c-typeck.c (build_component_ref): Warn when acessing elements of 2396 atomic structures or unions. 2397 23982015-12-21 David Malcolm <dmalcolm@redhat.com> 2399 2400 * c-typeck.c: Include "gcc-rich-location.h". 2401 (build_binary_op): In the two places that call binary_op_error, 2402 create a gcc_rich_location and populate it with the location of 2403 the binary op and its two operands. 2404 24052015-12-16 David Malcolm <dmalcolm@redhat.com> 2406 2407 * c-parser.c (c_parser_statement_after_labels): When calling 2408 c_finish_return, Use the return expression's location if it has 2409 one, falling back to the location of the first token within it. 2410 * c-typeck.c (c_finish_return): When issuing warnings about 2411 the incorrect presence/absence of a return value, issue a note 2412 showing the declaration of the function. 2413 24142015-12-16 David Malcolm <dmalcolm@redhat.com> 2415 2416 * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2 2417 to 4. 2418 (c_parser_peek_nth_token): New function. 2419 (c_parser_peek_conflict_marker): New function. 2420 (c_parser_error): Detect conflict markers and report them as such. 2421 24222015-12-16 David Malcolm <dmalcolm@redhat.com> 2423 2424 * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC 2425 to preserve range information for the primary expression 2426 in the call to c_parser_postfix_expression_after_primary. 2427 24282015-12-16 David Malcolm <dmalcolm@redhat.com> 2429 2430 * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the 2431 expression location, falling back on the first token location, 2432 rather than always using the latter. 2433 24342015-12-16 Marek Polacek <polacek@redhat.com> 2435 2436 PR c/64637 2437 * c-typeck.c (c_process_expr_stmt): Use location of the expression if 2438 available. 2439 24402015-12-15 Marek Polacek <polacek@redhat.com> 2441 2442 PR c/68907 2443 * c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an 2444 artificial decl. 2445 24462015-12-08 David Malcolm <dmalcolm@redhat.com> 2447 2448 * c-parser.c (c_parser_alignof_expression): Capture location of 2449 closing parenthesis (if any), or of end of unary expression, and 2450 use it to build a src_range for the expression. 2451 24522015-12-08 David Malcolm <dmalcolm@redhat.com> 2453 2454 PR c/68757 2455 * c-parser.c (c_parser_get_builtin_args): Add 2456 "out_close_paren_loc" param, and write back to it. 2457 (c_parser_postfix_expression): Capture the closing 2458 parenthesis location for RID_CHOOSE_EXPR, 2459 RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX, 2460 RID_BUILTIN_SHUFFLE and use it to set the source range 2461 for such expressions; within RID_BUILTIN_COMPLEX set 2462 the underlying location. 2463 24642015-12-07 Marek Polacek <polacek@redhat.com> 2465 2466 PR c/68668 2467 * c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use 2468 TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT. 2469 24702015-12-04 Eric Botcazou <ebotcazou@adacore.com> 2471 2472 * c-tree.h (c_build_va_arg): Adjust prototype. 2473 * c-parser.c (c_parser_postfix_expression): Adjust call to above. 2474 * c-typeck.c (c_build_va_arg): Rename LOC parameter to LOC2, add LOC1 2475 parameter, adjust throughout and issue an error if EXPR is a component 2476 with reverse storage order. 2477 24782015-12-02 Jason Merrill <jason@redhat.com> 2479 2480 * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold) 2481 (c_fully_fold_internal, decl_constant_value_for_optimization): 2482 Move from c-common.c. 2483 * c-tree.h: Declare decl_constant_value_for_optimization. 2484 * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o. 2485 24862015-12-02 Joseph Myers <joseph@codesourcery.com> 2487 2488 PR c/68162 2489 * c-decl.c (grokdeclarator): Set first_non_attr_kind before 2490 following link from declarator to next declarator. Track original 2491 qualified type and pass it to c_build_qualified_type. 2492 * c-typeck.c (c_build_qualified_type): Add arguments 2493 orig_qual_type and orig_qual_indirect. 2494 24952015-12-02 Thomas Schwinge <thomas@codesourcery.com> 2496 2497 * c-parser.c (c_parser_omp_clause_name) 2498 (c_parser_oacc_all_clauses): Alphabetical sorting. 2499 25002015-12-02 Jakub Jelinek <jakub@redhat.com> 2501 2502 PR c/68533 2503 * c-decl.c (get_parm_info): Use b->locus instead of input_location 2504 for diagnostics. 2505 25062015-12-01 Julian Brown <julian@codesourcery.com> 2507 Cesar Philippidis <cesar@codesourcery.com> 2508 James Norris <James_Norris@mentor.com> 2509 2510 * c-parser.c (c_parser_omp_clause_name): Add use_device support. 2511 (c_parser_oacc_clause_use_device): New function. 2512 (c_parser_oacc_all_clauses): Add use_device support. 2513 (OACC_HOST_DATA_CLAUSE_MASK): New macro. 2514 (c_parser_oacc_host_data): New function. 2515 (c_parser_omp_construct): Add host_data support. 2516 * c-tree.h (c_finish_oacc_host_data): Add prototype. 2517 * c-typeck.c (c_finish_oacc_host_data): New function. 2518 (c_finish_omp_clauses): Add use_device support. 2519 25202015-11-29 Jan Hubicka <hubicka@ucw.cz> 2521 2522 PR c/67106 2523 * c-decl.c: Set TYPE_PACKED in variants. 2524 25252015-11-27 Martin Liska <mliska@suse.cz> 2526 2527 PR c++/68312 2528 * c-array-notation.c (fix_builtin_array_notation_fn): 2529 Use release_vec_vec instead of vec::release. 2530 (build_array_notation_expr): Likewise. 2531 (fix_conditional_array_notations_1): Likewise. 2532 (fix_array_notation_expr): Likewise. 2533 (fix_array_notation_call_expr): Likewise. 2534 25352015-11-27 Jakub Jelinek <jakub@redhat.com> 2536 2537 PR c/63326 2538 * c-parser.c (c_parser_compound_statement_nostart): If 2539 last_label is true, use pragma_stmt instead of pragma_compound 2540 as second c_parser_pragma argument. 2541 (c_parser_omp_ordered, c_parser_omp_target_update, 2542 c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass 2543 false as second argument to c_parser_skip_to_pragma_eol after 2544 diagnosing standalone directives used in pragma_stmt context. 2545 25462015-11-24 Ilya Verbin <ilya.verbin@intel.com> 2547 2548 * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING" 2549 with "if (ENABLE_OFFLOADING)". 2550 25512015-11-23 David Malcolm <dmalcolm@redhat.com> 2552 2553 PR objc/68438 2554 * c-parser.c (c_parser_postfix_expression): Set up source ranges 2555 for various Objective-C constructs: Class.name syntax, 2556 @selector(), @protocol(), @encode(), and [] message syntax. 2557 25582015-11-20 David Malcolm <dmalcolm@redhat.com> 2559 2560 PR 62314 2561 * c-typeck.c (should_suggest_deref_p): New function. 2562 (build_component_ref): Special-case POINTER_TYPE when 2563 generating a "not a structure of union" error message, and 2564 suggest a "->" rather than a ".", providing a fix-it hint. 2565 25662015-11-19 David Malcolm <dmalcolm@redhat.com> 2567 2568 * c-typeck.c (lookup_field_fuzzy): Move determination of closest 2569 candidate into a new function, find_closest_identifier. 2570 25712015-11-19 Marek Polacek <polacek@redhat.com> 2572 2573 PR c/68412 2574 * c-typeck.c (parser_build_binary_op): Properly handle 2575 C_MAYBE_CONST_EXPR before calling warn_tautological_cmp. 2576 25772015-11-17 David Malcolm <dmalcolm@redhat.com> 2578 2579 * c-parser.c (set_c_expr_source_range): Bulletproof both 2580 overloaded implementations against NULL expr->value. 2581 (c_parser_braced_init): Set src_range for "ret" to a sane pair of 2582 values. 2583 (c_parser_unary_expression): Likewise when handling addresses of 2584 labels. 2585 (c_parser_postfix_expression): Likewise for statement expressions, 2586 for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for 2587 __builtin_va_arg, and for __builtin_offset_of. 2588 (c_parser_postfix_expression_after_paren_type): Initialize expr's 2589 src_range using the range of the braced initializer. 2590 (c_parser_transaction_expression): Set src_range for "ret" to a 2591 sane pair of values. 2592 25932015-11-16 Kirill Yukhin <kirill.yukhin@intel.com> 2594 2595 * c-parser.c (c_finish_omp_declare_simd): Look for 2596 "simd" attribute as well. Update error message. 2597 25982015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 2599 2600 * c-parser.c (c_parser_omp_declare_target): Adjust. 2601 26022015-11-14 Jakub Jelinek <jakub@redhat.com> 2603 2604 * c-typeck.c (c_finish_omp_clauses): Don't mark 2605 GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable. 2606 26072015-11-14 Marek Polacek <polacek@redhat.com> 2608 2609 * c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout. 2610 * c-typeck.c: Likewise. 2611 26122015-11-13 David Malcolm <dmalcolm@redhat.com> 2613 2614 * c-decl.c (warn_defaults_to): Pass line_table to 2615 rich_location ctor. 2616 * c-errors.c (pedwarn_c99): Likewise. 2617 (pedwarn_c90): Likewise. 2618 * c-parser.c (set_c_expr_source_range): New functions. 2619 (c_token::get_range): New method. 2620 (c_token::get_finish): New method. 2621 (c_parser_expr_no_commas): Call set_c_expr_source_range on the ret 2622 based on the range from the start of the LHS to the end of the 2623 RHS. 2624 (c_parser_conditional_expression): Likewise, based on the range 2625 from the start of the cond.value to the end of exp2.value. 2626 (c_parser_binary_expression): Call set_c_expr_source_range on 2627 the stack values for TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR. 2628 (c_parser_cast_expression): Call set_c_expr_source_range on ret 2629 based on the cast_loc through to the end of the expr. 2630 (c_parser_unary_expression): Likewise, based on the 2631 op_loc through to the end of op. 2632 (c_parser_sizeof_expression) Likewise, based on the start of the 2633 sizeof token through to either the closing paren or the end of 2634 expr. 2635 (c_parser_postfix_expression): Likewise, using the token range, 2636 or from the open paren through to the close paren for 2637 parenthesized expressions. 2638 (c_parser_postfix_expression_after_primary): Likewise, for 2639 various kinds of expression. 2640 * c-tree.h (struct c_expr): Add field "src_range". 2641 (c_expr::get_start): New method. 2642 (c_expr::get_finish): New method. 2643 (set_c_expr_source_range): New decls. 2644 * c-typeck.c (parser_build_unary_op): Call set_c_expr_source_range 2645 on ret for prefix unary ops. 2646 (parser_build_binary_op): Likewise, running from the start of 2647 arg1.value through to the end of arg2.value. 2648 26492015-11-13 Marek Polacek <polacek@redhat.com> 2650 2651 PR c/68320 2652 * c-parser.c (c_parser_for_statement): Treat unknown tokens as IDs. 2653 26542015-11-13 David Malcolm <dmalcolm@redhat.com> 2655 2656 * c-typeck.c: Include spellcheck.h. 2657 (lookup_field_fuzzy_find_candidates): New function. 2658 (lookup_field_fuzzy): New function. 2659 (build_component_ref): If the field was not found, try using 2660 lookup_field_fuzzy and potentially offer a suggestion. 2661 26622015-11-12 James Norris <jnorris@codesourcery.com> 2663 Joseph Myers <joseph@codesourcery.com> 2664 2665 * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_DECLARE. 2666 (c_parser_omp_clause_name): Handle 'device_resident' clause. 2667 (c_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT 2668 and PRAGMA_OMP_CLAUSE_LINK. 2669 (c_parser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT 2670 and PRAGMA_OACC_CLAUSE_LINK. 2671 (OACC_DECLARE_CLAUSE_MASK): New definition. 2672 (c_parser_oacc_declare): New function. 2673 26742015-11-12 Marek Polacek <polacek@redhat.com> 2675 2676 PR c/67784 2677 * c-parser.c (c_parser_for_statement): Reclassify the token in 2678 a correct scope. 2679 26802015-11-11 Marek Polacek <polacek@redhat.com> 2681 2682 PR c/68107 2683 PR c++/68266 2684 * c-decl.c (grokdeclarator): Call valid_array_size_p. Remove code 2685 checking the size of an array. 2686 26872015-11-11 Andrew MacLeod <amacleod@redhat.com> 2688 2689 * c-array-notation.c: Remove unused header files. 2690 * c-aux-info.c: Likewise. 2691 * c-convert.c: Likewise. 2692 * c-decl.c: Likewise. 2693 * c-errors.c: Likewise. 2694 * c-lang.c: Likewise. 2695 * c-objc-common.c: Likewise. 2696 * c-parser.c: Likewise. 2697 * c-typeck.c: Likewise. 2698 * gccspec.c: Likewise. 2699 27002015-11-09 Thomas Schwinge <thomas@codesourcery.com> 2701 Cesar Philippidis <cesar@codesourcery.com> 2702 James Norris <jnorris@codesourcery.com> 2703 Julian Brown <julian@codesourcery.com> 2704 Nathan Sidwell <nathan@codesourcery.com> 2705 2706 c/ 2707 * c-parser.c (c_parser_declaration_or_fndef): Add OpenACC 2708 routine arg. 2709 (c_parser_declaration_or_fndef): Call c_finish_oacc_routine. 2710 (c_parser_pragma): Parse 'acc routine'. 2711 (OACC_ROUTINE_CLAUSE_MARK): Define. 2712 (c_parser_oacc_routine, (c_finish_oacc_routine): New. 2713 27142015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com> 2715 2716 PR debug/67192 2717 * c-typeck.c (c_finish_loop): For unconditional loops, set the 2718 location of the backward-goto to the start of the loop body. 2719 27202015-11-09 Andreas Arnez <arnez@linux.vnet.ibm.com> 2721 2722 PR debug/67192 2723 * c-parser.c (c_parser_while_statement): Finish the loop before 2724 parsing ahead for misleading indentation. 2725 (c_parser_for_statement): Likewise. 2726 27272015-11-08 Eric Botcazou <ebotcazou@adacore.com> 2728 2729 * c-decl.c (finish_struct): If the structure has reverse storage 2730 order, rewrite the type of array fields with scalar component. Call 2731 maybe_apply_pragma_scalar_storage_order on entry. 2732 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Remove left-overs. Issue 2733 errors on bit-fields and reverse SSO here and not... 2734 (c_mark_addressable): ...here. 2735 (output_init_element): Adjust call to initializer_constant_valid_p. 2736 (c_build_qualified_type): Propagate TYPE_REVERSE_STORAGE_ORDER. 2737 27382015-11-06 David Malcolm <dmalcolm@redhat.com> 2739 2740 * c-decl.c (warn_defaults_to): Update for change in signature 2741 of diagnostic_set_info. 2742 * c-errors.c (pedwarn_c99): Likewise. 2743 (pedwarn_c90): Likewise. 2744 * c-objc-common.c (c_tree_printer): Update for new "caret_p" param 2745 for textinfo::set_location. 2746 27472015-11-05 Cesar Philippidis <cesar@codesourcery.com> 2748 Thomas Schwinge <thomas@codesourcery.com> 2749 James Norris <jnorris@codesourcery.com> 2750 2751 * c-parser.c (c_parser_omp_clause_name): Add support for 2752 PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE. 2753 (c_parser_omp_clause_default): Add is_oacc argument. Handle 2754 default(none) in OpenACC. 2755 (c_parser_oacc_shape_clause): Allow pointer variables as gang static 2756 arguments. 2757 (c_parser_oacc_clause_tile): New function. 2758 (c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT, 2759 OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE. 2760 (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT, 2761 TILE}. 2762 (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT. 2763 (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE, 2764 FIRSTPRIVATE}. 2765 (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default. 2766 (c_parser_oacc_update): Update the error message for missing clauses. 2767 * c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE 2768 and OMP_CLAUSE_INDEPENDENT. 2769 27702015-11-05 Marek Polacek <polacek@redhat.com> 2771 2772 PR c/68090 2773 * c-parser.c (c_parser_postfix_expression_after_paren_type): Don't 2774 deal with pre-evaluation on invalid types. 2775 27762015-11-05 Jakub Jelinek <jakub@redhat.com> 2777 Ilya Verbin <ilya.verbin@intel.com> 2778 2779 * c-parser.c: Include context.h and gimple-expr.h. 2780 (c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose 2781 monotonic together with nonmonotonic. 2782 (c_parser_omp_for_loop): Call c_omp_check_loop_iv. Call add_stmt here. 2783 (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause. 2784 (c_parser_omp_target_data, c_parser_omp_target_enter_data, 2785 c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER. 2786 (c_parser_omp_target): Likewise. Evaluate num_teams and thread_limit 2787 expressions on combined target teams before the target. 2788 (c_parser_omp_declare_target): If decl has "omp declare target" or 2789 "omp declare target link" attribute, and cgraph or varpool node already 2790 exists, then set corresponding flags. Call c_finish_omp_clauses 2791 in the parenthesized extended-list syntax case. 2792 * c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside 2793 declare target. 2794 * c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound 2795 on OMP_CLAUSE_REDUCTION array sections. 2796 (handle_omp_array_sections): Encode low-bound into the MEM_REF, either 2797 into the constant offset, or for variable low-bound using 2798 POINTER_PLUS_EXPR. For structure element based array sections use 2799 GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER. 2800 (c_finish_omp_clauses): Drop generic_field_head, structure 2801 elements are now always mapped even as array section bases, 2802 diagnose same var in data sharing and mapping clauses. Diagnose if 2803 linear step on declare simd is neither a constant nor a uniform 2804 parameter. Look through POINTER_PLUS_EXPR for array section 2805 reductions. Diagnose the same var or function appearing multiple 2806 times on the same directive. Fix up wording for the to clause if t 2807 is neither a FUNCTION_DECL nor a VAR_DECL. Diagnose nonmonotonic 2808 modifier on kinds other than dynamic or guided or nonmonotonic 2809 modifier together with ordered clause. 2810 28112015-11-03 Thomas Schwinge <thomas@codesourcery.com> 2812 Chung-Lin Tang <cltang@codesourcery.com> 2813 2814 * c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC. 2815 28162015-10-29 Andrew MacLeod <amacleod@redhat.com> 2817 2818 * c-array-notation.c: Reorder #include's and remove duplicates. 2819 * c-aux-info.c: Likewise. 2820 * c-convert.c: Likewise. 2821 * c-decl.c: Likewise. 2822 * c-errors.c: Likewise. 2823 * c-lang.c: Likewise. 2824 * c-objc-common.c: Likewise. 2825 * c-parser.c: Likewise. 2826 * c-typeck.c: Likewise. 2827 28282015-10-26 Jim Wilson <jim.wilson@linaro.org> 2829 2830 PR debug/66068 2831 * c-typeck.c (c_build_qualified_type): Clear C_TYPE_INCOMPLETE_VARS 2832 after calling build_qualified_type. 2833 28342015-10-27 Cesar Philippidis <cesar@codesourcery.com> 2835 Thomas Schwinge <thomas@codesourcery.com> 2836 James Norris <jnorris@codesourcery.com> 2837 Joseph Myers <joseph@codesourcery.com> 2838 Julian Brown <julian@codesourcery.com> 2839 Bernd Schmidt <bschmidt@redhat.com> 2840 2841 * c-parser.c (c_parser_oacc_shape_clause): New. 2842 (c_parser_oacc_simple_clause): New. 2843 (c_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker. 2844 (OACC_LOOP_CLAUSE_MASK): Add gang, worker, vector, auto, seq. 2845 28462015-10-27 Thomas Schwinge <thomas@codesourcery.com> 2847 James Norris <jnorris@codesourcery.com> 2848 Cesar Philippidis <cesar@codesourcery.com> 2849 2850 PR c/64765 2851 PR c/64880 2852 * c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal 2853 parameters, and handle these. Adjust all users. 2854 (c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions 2855 into... 2856 (c_parser_oacc_kernels_parallel): ... this new function. Adjust 2857 all users. 2858 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't 2859 declare functions. 2860 (c_finish_omp_construct): Declare function. 2861 * c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels): 2862 Merge functions into... 2863 (c_finish_omp_construct): ... this new function. 2864 28652015-10-22 Richard Biener <rguenther@suse.de> 2866 2867 * c-typeck.c (c_finish_omp_clauses): Properly convert operands 2868 before folding a MINUS_EXPR. 2869 28702015-10-21 Marek Polacek <polacek@redhat.com> 2871 2872 PR c/68024 2873 * c-decl.c (start_function): Warn about vararg functions without 2874 a prototype. 2875 28762015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com> 2877 2878 * c-typeck.c (build_conditional_expr): Use boolean vector 2879 type for vector comparison. 2880 (build_vec_cmp): New. 2881 (build_binary_op): Use build_vec_cmp for comparison. 2882 28832015-10-20 Marek Polacek <polacek@redhat.com> 2884 2885 * c-parser.c (is_cilkplus_vector_p): Don't define here. 2886 28872015-10-20 Marek Polacek <polacek@redhat.com> 2888 2889 PR c/67964 2890 * c-parser.c (c_parser_attributes): Break out of the loop if the 2891 token after an attribute isn't a comma. 2892 28932015-10-13 Jakub Jelinek <jakub@redhat.com> 2894 Aldy Hernandez <aldyh@redhat.com> 2895 2896 * c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here. 2897 (c_parser_omp_clause_name): Handle OpenMP 4.5 clauses. 2898 (c_parser_omp_variable_list): Handle structure elements for 2899 map, to and from clauses. Handle array sections in reduction 2900 clause. Formatting fixes. 2901 (c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of 2902 if clause modifiers. 2903 (c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize, 2904 c_parser_omp_clause_priority, c_parser_omp_clause_hint, 2905 c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr, 2906 c_parser_omp_clause_is_device_ptr): New functions. 2907 (c_parser_omp_clause_ordered): Parse optional parameter. 2908 (c_parser_omp_clause_reduction): Handle array reductions. 2909 (c_parser_omp_clause_schedule): Parse optional simd modifier. 2910 (c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New 2911 functions. 2912 (c_parser_omp_clause_linear): Parse linear clause modifiers. 2913 (c_parser_omp_clause_depend_sink): New function. 2914 (c_parser_omp_clause_depend): Parse source/sink depend kinds. 2915 (c_parser_omp_clause_map): Parse release/delete map kinds and 2916 optional always modifier. 2917 (c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if 2918 and c_finish_omp_clauses callers. 2919 (c_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses. 2920 Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive. 2921 (c_parser_oacc_cache): Adjust c_finish_omp_clauses caller. 2922 (OMP_CRITICAL_CLAUSE_MASK): Define. 2923 (c_parser_omp_critical): Parse critical clauses. 2924 (c_parser_omp_for_loop): Handle doacross loops, adjust 2925 c_finish_omp_for and c_finish_omp_clauses callers. 2926 (OMP_SIMD_CLAUSE_MASK): Add simdlen clause. 2927 (c_parser_omp_simd): Allow ordered clause if it has no parameter. 2928 (OMP_FOR_CLAUSE_MASK): Add linear clause. 2929 (c_parser_omp_for): Disallow ordered clause when combined with 2930 distribute. Disallow linear clause when combined with distribute 2931 and not combined with simd. 2932 (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define. 2933 (c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument, 2934 parse clauses and if depend clause is found, don't parse a body. 2935 (c_parser_omp_parallel): Disallow copyin clause on target parallel. 2936 Allow target parallel without for after it. 2937 (OMP_TASK_CLAUSE_MASK): Add priority clause. 2938 (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause. 2939 (c_parser_omp_target_data): Diagnose no map clauses or clauses with 2940 invalid kinds. 2941 (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses. 2942 (OMP_TARGET_ENTER_DATA_CLAUSE_MASK, 2943 OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define. 2944 (c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New 2945 functions. 2946 (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate, 2947 defaultmap and is_device_ptr clauses. 2948 (c_parser_omp_target): Parse target parallel and target simd. Set 2949 OMP_TARGET_COMBINED on combined constructs. Parse target enter data 2950 and target exit data. Diagnose invalid map kinds. 2951 (OMP_DECLARE_TARGET_CLAUSE_MASK): Define. 2952 (c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this 2953 construct. 2954 (c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for 2955 &omp_priv. 2956 (OMP_TASKLOOP_CLAUSE_MASK): Define. 2957 (c_parser_omp_taskloop): New function. 2958 (c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here, 2959 handle PRAGMA_OMP_TASKLOOP. 2960 (c_parser_cilk_for): Adjust c_finish_omp_clauses callers. 2961 * c-tree.h (c_finish_omp_clauses): Add two new arguments. 2962 * c-typeck.c (handle_omp_array_sections_1): Fix comment typo. 2963 Add IS_OMP argument, handle structure element bases, diagnose 2964 bitfields, pass IS_OMP recursively, diagnose known zero length 2965 array sections in depend clauses, handle array sections in reduction 2966 clause, diagnose negative length even for pointers. 2967 (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for 2968 types, pass IS_OMP down to handle_omp_array_sections_1, handle 2969 array sections in reduction clause, set 2970 OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero 2971 length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP. 2972 (c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments. 2973 Handle new OpenMP 4.5 clauses and new restrictions for the old ones. 2974 29752015-10-06 Marek Polacek <polacek@redhat.com> 2976 2977 * c-parser.c (c_parser_statement_after_labels): Use 2978 protected_set_expr_location. 2979 (c_parser_omp_clause_num_gangs): Likewise. 2980 (c_parser_omp_clause_num_threads): Likewise. 2981 (c_parser_omp_clause_num_workers): Likewise. 2982 (c_parser_omp_clause_vector_length): Likewise. 2983 (c_parser_omp_clause_num_teams): Likewise. 2984 (c_parser_omp_clause_thread_limit): Likewise. 2985 * c-typeck.c (build_c_cast): Likewise. 2986 (c_cast_expr): Likewise. 2987 29882015-10-05 Richard Sandiford <richard.sandiford@arm.com> 2989 2990 * c-typeck.c (c_tree_equal): Use real_equal instead of 2991 REAL_VALUES_EQUAL. 2992 29932015-10-04 Jason Merrill <jason@redhat.com> 2994 2995 * c-parser.c (c_lex_one_token): Handle @synchronized. 2996 * c-decl.c (match_builtin_function_types): A declaration of a built-in 2997 can change whether the function is transaction_safe. 2998 29992015-10-02 Marek Polacek <polacek@redhat.com> 3000 3001 PR c/67730 3002 * c-typeck.c (convert_for_assignment): Use the expansion point 3003 location throughout. 3004 30052015-10-02 Marek Polacek <polacek@redhat.com> 3006 3007 PR c/64249 3008 * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter 3009 and pass it down to c_parser_if_statement. 3010 (c_parser_else_body): Add CHAIN parameter and pass it down to 3011 c_parser_statement_after_labels. 3012 (c_parser_if_statement): Add CHAIN parameter. Add code to warn about 3013 duplicated if-else-if conditions. 3014 30152015-10-01 Marek Polacek <polacek@redhat.com> 3016 3017 * c-typeck.c (convert_for_assignment): Improve commentary. 3018 30192015-09-30 Marek Polacek <polacek@redhat.com> 3020 3021 PR c/67730 3022 * c-typeck.c (c_finish_return): Use the expansion point location for 3023 certain "return with value" warnings. 3024 30252015-09-18 Manuel López-Ibáñez <manu@gcc.gnu.org> 3026 3027 * c-parser.c (pragma_lex): Add loc argument. 3028 30292015-09-15 Marek Polacek <polacek@redhat.com> 3030 3031 PR c/67580 3032 * c-decl.c (tag_exists_p): New function. 3033 * c-parser.c (c_parser_declaration_or_fndef): Give a hint when 3034 struct/union/enum keywords are missing. 3035 * c-tree.h (tag_exists_p): Declare. 3036 30372015-09-15 Marek Polacek <polacek@redhat.com> 3038 3039 * c-decl.c (lookup_label): Return NULL_TREE instead of 0. 3040 (lookup_tag): Change the type of THISLEVEL_ONLY to bool. 3041 Return NULL_TREE instead of 0. 3042 (lookup_name): Return NULL_TREE instead of 0. 3043 (lookup_name_in_scope): Likewise. 3044 (shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0. 3045 (parser_xref_tag): Use false instead of 0. 3046 (start_struct): Use true instead of 1. 3047 (start_enum): Use true instead of 1 and NULL_TREE instead of 0. 3048 30492015-09-14 Marek Polacek <polacek@redhat.com> 3050 3051 * c-typeck.c (set_nonincremental_init_from_string): Use 3052 HOST_WIDE_INT_M1U when shifting a negative value. 3053 30542015-09-09 Mark Wielaard <mjw@redhat.com> 3055 3056 * c-typeck.c (build_binary_op): Check and warn when nonnull arg 3057 parm against NULL. 3058 30592015-09-10 Jakub Jelinek <jakub@redhat.com> 3060 3061 PR c/67502 3062 * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts 3063 into OMP_FOR_PRE_BODY rather than before the loop. 3064 30652015-09-09 Jakub Jelinek <jakub@redhat.com> 3066 3067 PR c/67501 3068 * c-parser.c (c_parser_oacc_all_clauses, 3069 c_parser_omp_all_clauses): Remove invalid clause from 3070 list of clauses even if parser->error is set. 3071 3072 PR c/67500 3073 * c-parser.c (c_parser_omp_clause_aligned, 3074 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up 3075 test for errors. 3076 * c-decl.c (temp_pop_parm_decls): Allow b->decl equal to 3077 error_mark_node. 3078 3079 PR c/67495 3080 * c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression 3081 instead of c_parser_unary_expression. If the result is !lvalue_p, 3082 wrap the result of c_fully_fold into NON_LVALUE_EXPR. 3083 30842015-09-04 Marek Polacek <polacek@redhat.com> 3085 3086 PR sanitizer/67279 3087 * c-typeck.c (build_binary_op): Don't instrument static initializers. 3088 30892015-09-03 Martin Sebor <msebor@redhat.com> 3090 3091 PR c/66516 3092 * c-typeck.c (convert_arguments, parser_build_unary_op, 3093 build_conditional_expr, c_cast_expr, convert_for_assignment, 3094 build_binary_op, _objc_common_truthvalue_conversion): Call 3095 reject_gcc_builtin. 3096 (c_decl_implicit): Define. 3097 30982015-09-02 Marek Polacek <polacek@redhat.com> 3099 3100 PR c/67432 3101 * c-parser.c (c_parser_enum_specifier): Give a better error for 3102 an empty enum. 3103 31042015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org> 3105 3106 * c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs. 3107 31082015-08-12 Marek Polacek <polacek@redhat.com> 3109 3110 * c-decl.c (grokdeclarator): Call error_at instead of error and pass 3111 LOC to it. 3112 31132015-08-03 Marek Polacek <polacek@redhat.com> 3114 3115 PR c/67088 3116 * c-decl.c (check_bitfield_type_and_width): Add location parameter. 3117 Use it. 3118 (grokdeclarator): Pass LOC down to check_bitfield_type_and_width. 3119 31202015-08-02 Patrick Palka <ppalka@gcc.gnu.org> 3121 3122 * c-parser.c (c_parser_if_body): Take token_indent_info 3123 argument. Call warn_for_misleading_indentation even when the 3124 body is a semicolon. Extract token_indent_infos corresponding 3125 to the guard, body and next tokens. Adjust call to 3126 warn_for_misleading_indentation accordingly. 3127 (c_parser_else_body): Likewise. 3128 (c_parser_if_statement): Likewise. 3129 (c_parser_while_statement): Likewise. 3130 (c_parser_for_statement): Likewise. 3131 31322015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com> 3133 Manuel López-Ibáñez <manu@gcc.gnu.org> 3134 3135 * c-decl.c (get_parm_info): Remove static var. Update warning 3136 message. 3137 31382015-07-27 Marek Polacek <polacek@redhat.com> 3139 3140 PR c++/66555 3141 PR c/54979 3142 * c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp. 3143 31442015-07-20 Marek Polacek <polacek@redhat.com> 3145 3146 PR c++/55095 3147 * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init. 3148 (build_binary_op): Warn about left shift overflows. 3149 31502015-07-09 Andrew MacLeod <amacleod@redhat.com> 3151 3152 * c-array-notation.c: Adjust includes for flags.h changes. 3153 * c-objc-common.c: Likewise. 3154 31552015-07-07 Andrew MacLeod <amacleod@redhat.com> 3156 3157 * c-array-notation.c: Adjust includes. 3158 * c-aux-info.c: Likewise. 3159 * c-convert.c: Likewise. 3160 * c-decl.c: Likewise. 3161 * c-errors.c: Likewise. 3162 * c-lang.c: Likewise. 3163 * c-objc-common.c: Likewise. 3164 * c-parser.c: Likewise. 3165 * c-typeck.c: Likewise. 3166 31672015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org> 3168 3169 PR fortran/66605 3170 * c-decl.c (finish_function): Call do_warn_unused_parameter. 3171 31722015-06-29 Marek Polacek <polacek@redhat.com> 3173 3174 PR c/66322 3175 * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P. 3176 (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P. Don't warn 3177 about -Wswitch-bool here. 3178 (do_case): Update c_add_case_label call. 3179 (c_finish_case): Update c_do_switch_warnings call. 3180 31812015-06-27 Marek Polacek <polacek@redhat.com> 3182 3183 * c-typeck.c: Use VECTOR_TYPE_P throughout. 3184 31852015-06-26 Marek Polacek <polacek@redhat.com> 3186 3187 * c-array-notation.c (fix_builtin_array_notation_fn): Use 3188 INDIRECT_REF_P. 3189 * c-typeck.c (array_to_pointer_conversion): Likewise. 3190 (build_unary_op): Likewise. 3191 (c_finish_return): Likewise. 3192 31932015-06-25 Andrew MacLeod <amacleod@redhat.com> 3194 3195 * c-decl.c: Remove ipa-ref.h and plugin-api.h from include list. 3196 * c-parser.c: Likewise. 3197 31982015-06-25 Richard Sandiford <richard.sandiford@arm.com> 3199 3200 * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash 3201 instead of pointer_hash. 3202 (detect_field_duplicates): Likewise. 3203 32042015-06-25 Marek Polacek <polacek@redhat.com> 3205 3206 * c-array-notation.c: Use VAR_P throughout. 3207 * c-decl.c: Likewise. 3208 * c-objc-common.c: Likewise. 3209 * c-parser.c: Likewise. 3210 * c-typeck.c: Likewise. 3211 32122015-06-25 Marek Polacek <polacek@redhat.com> 3213 3214 * c-decl.c: Use is_global_var throughout. 3215 * c-parser.c: Likewise. 3216 * c-typeck.c: Likewise. 3217 32182015-06-17 Andrew MacLeod <amacleod@redhat.com> 3219 3220 * c-array-notation.c: Do not include input.h, line-map.h or is-a.h. 3221 * c-aux-info.c: Likewise. 3222 * c-convert.c: Likewise. 3223 * c-decl.c: Likewise. 3224 * c-errors.c: Likewise. 3225 * c-lang.c: Likewise. 3226 * c-objc-common.c: Likewise. 3227 * c-parser.c: Likewise. 3228 * c-typeck.c: Likewise. 3229 32302015-06-11 Jan Hubicka <hubicka@ucw.cz> 3231 3232 PR middle-end/66325 3233 * c-decl.c (start_enum): Set TYPE_PACKED consistently among type 3234 variants. 3235 32362015-06-11 Pierre-Marie de Rodat <derodat@adacore.com> 3237 3238 * c-decl.c (pop_scope): Register the main translation unit 3239 through the new debug hook. 3240 32412015-06-08 Andrew MacLeod <amacleod@redhat.com> 3242 3243 * c-array-notation.c : Adjust include files. 3244 * c-aux-info.c : Likewise. 3245 * c-convert.c : Likewise. 3246 * c-decl.c : Likewise. 3247 * c-errors.c : Likewise. 3248 * c-lang.c : Likewise. 3249 * c-lang.h : Likewise. 3250 * c-objc-common.c : Likewise. 3251 * c-parser.c : Likewise. 3252 * c-typeck.c : Likewise. 3253 32542015-06-05 Aldy Hernandez <aldyh@redhat.com> 3255 3256 * c-decl.c (finish_struct): Save C_TYPE_INCOMPLETE_VARS and 3257 immediately clobber it. 3258 (c_write_global_declarations_1): Remove call to 3259 check_global_declaration_1. 3260 (c_write_global_declarations_2): Remove. 3261 (c_write_final_cleanups): Rename from c_write_global_declarations. 3262 Remove call to finalize_compilation_unit. 3263 Remove calls to debugging hooks. 3264 * c-objc-common.c: Adjust comment for c_warn_unused_global_decl. 3265 * c-objc-common.h: Remove LANG_HOOKS_WRITE_GLOBALS. 3266 * c-tree.h: Remove c_write_global_declarations. 3267 32682015-06-04 Andrew MacLeod <amacleod@redhat.com> 3269 3270 * c-array-notation.c: Adjust includes for restructured coretypes.h. 3271 * c-aux-info.c: Likewise. 3272 * c-convert.c: Likewise. 3273 * c-decl.c: Likewise. 3274 * c-errors.c: Likewise. 3275 * c-lang.c: Likewise. 3276 * c-objc-common.c: Likewise. 3277 * c-parser.c: Likewise. 3278 * c-typeck.c: Likewise. 3279 32802015-06-04 Marek Polacek <polacek@redhat.com> 3281 3282 PR c/66341 3283 * c-typeck.c (build_c_cast): Wrap VALUE into NON_LVALUE_EXPR if 3284 it is a lvalue. 3285 32862015-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 3287 3288 * c-decl.c (warn_cxx_compat_finish_struct): New parameters code, record_loc. 3289 Warn for empty struct. 3290 (finish_struct): Pass TREE_CODE(t) and loc to warn_cxx_compat_finish_struct. 3291 32922015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com> 3293 3294 * c-decl.c (start_function): Call plugin before parsing. 3295 (finish_function): Call plugin after parsing. 3296 32972015-06-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 3298 3299 PR c/49551 3300 * c-decl.c (merge_decls): Merge DECL_COMMON. 3301 33022015-05-22 Jim Wilson <jim.wilson@linaro.org> 3303 3304 * Make-lang.in (check_gcc_pallelize): Define. 3305 33062015-05-22 Marek Polacek <polacek@redhat.com> 3307 3308 PR c/47043 3309 * c-parser.c (c_parser_enum_specifier): Parse and apply enumerator 3310 attributes. 3311 33122015-05-21 Marek Polacek <polacek@redhat.com> 3313 3314 * c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of 3315 DECL_BUILT_IN. 3316 33172015-05-20 Marek Polacek <polacek@redhat.com> 3318 3319 * c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout. 3320 * c-typeck.c: Likewise. 3321 33222015-05-19 Marek Polacek <polacek@redhat.com> 3323 3324 * c-typeck.c (start_init): Use AGGREGATE_TYPE_P. 3325 33262015-05-19 Jakub Jelinek <jakub@redhat.com> 3327 3328 PR middle-end/66199 3329 * c-parser.c (c_parser_omp_for_loop): Don't add 3330 OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving 3331 OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES. 3332 (c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined 3333 constructs. 3334 33352015-05-19 Mikhail Maltsev <maltsevm@gmail.com> 3336 3337 * c-typeck.c (build_array_ref): Use std::swap instead of explicit 3338 swaps. 3339 33402015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org> 3341 3342 PR fortran/44054 3343 * c-objc-common.c (c_tree_printer): Replace locus pointer with 3344 accessor function. 3345 33462015-05-14 Marek Polacek <polacek@redhat.com> 3347 3348 PR c/66066 3349 PR c/66127 3350 * c-typeck.c (digest_init): Call pedwarn_init with OPT_Wpedantic 3351 rather than with 0. 3352 33532015-05-12 David Malcolm <dmalcolm@redhat.com> 3354 3355 * c-parser.c (c_parser_if_body): Add param "if_loc", use it 3356 to add a call to warn_for_misleading_indentation. 3357 (c_parser_else_body): Likewise, adding param "else_loc". 3358 (c_parser_if_statement): Check for misleading indentation. 3359 (c_parser_while_statement): Likewise. 3360 (c_parser_for_statement): Likewise. 3361 33622015-05-08 Marek Polacek <polacek@redhat.com> 3363 3364 PR c/64918 3365 * c-typeck.c (add_pending_init): Use OPT_Woverride_init_side_effects. 3366 (output_init_element): Likewise. 3367 33682015-05-07 Marek Polacek <polacek@redhat.com> 3369 3370 PR c/65179 3371 * c-typeck.c (build_binary_op): Warn when left shifting a negative 3372 value. 3373 33742015-04-30 Marek Polacek <polacek@redhat.com> 3375 3376 * c-typeck.c (set_init_label): Call error_at instead of error and 3377 pass LOC to it. 3378 3379 * c-typeck.c (c_incomplete_type_error): Refactor to use %qT. Print 3380 the type of a decl. 3381 3382 * c-typeck.c (c_build_va_arg): Clarify the error message. 3383 33842015-04-29 Thomas Schwinge <thomas@codesourcery.com> 3385 3386 * c-parser.c (c_parser_oacc_enter_exit_data): Use 3387 OMP_STANDALONE_CLAUSES. 3388 33892015-04-28 Marek Polacek <polacek@redhat.com> 3390 3391 * c-parser.c (c_parser_binary_expression): Remove duplicate line. 3392 33932015-04-28 Marek Polacek <polacek@redhat.com> 3394 3395 PR c/65901 3396 * c-typeck.c (c_build_va_arg): Require TYPE be a complete type. 3397 33982015-04-25 Marek Polacek <polacek@redhat.com> 3399 3400 PR c/52085 3401 * c-decl.c (finish_enum): Copy over TYPE_ALIGN. Also check for "mode" 3402 attribute. 3403 34042015-04-23 Marek Polacek <polacek@redhat.com> 3405 3406 PR c/65345 3407 * c-decl.c (set_labels_context_r): New function. 3408 (store_parm_decls): Call it via walk_tree_without_duplicates. 3409 * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw 3410 instead of create_tmp_var. Build TARGET_EXPR instead of 3411 COMPOUND_EXPR. 3412 (build_atomic_assign): Use create_tmp_var_raw instead of 3413 create_tmp_var. Build TARGET_EXPRs instead of MODIFY_EXPR. 3414 34152015-04-20 Ilya Verbin <ilya.verbin@intel.com> 3416 3417 * c-parser.c (c_parser_oacc_enter_exit_data): Remove excess semicolon. 3418 (c_parser_omp_target_update): Add missed %> to error_at (). 3419 34202015-04-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 3421 3422 PR target/55143 3423 * c-decl.c (c_default_pointer_mode): Remove definition. 3424 * c-tree.h (c_default_pointer_mode): Remove declaration. 3425 34262015-03-27 Tobias Burnus <burnus@net-b.de> 3427 3428 PR c/65586 3429 * c-parser.c (c_parser_skip_to_pragma_eol): Optionally, don't 3430 error out. 3431 (c_parser_omp_for, c_parser_omp_parallel, c_parser_omp_distribute, 3432 c_parser_omp_teams, c_parser_omp_target, c_parser_omp_declare): 3433 Update calls to not error for skipped omp pragmas with -fopenmp-simd. 3434 34352015-03-19 Jakub Jelinek <jakub@redhat.com> 3436 3437 * c-decl.c (c_decl_attributes): Also add "omp declare target" 3438 attribute for DECL_EXTERNAL VAR_DECLs. 3439 34402015-03-11 Jakub Jelinek <jakub@redhat.com> 3441 3442 * c-parser.c (c_parse_init): Don't call xstrdup on get_identifier 3443 argument. 3444 34452015-03-10 Jakub Jelinek <jakub@redhat.com> 3446 3447 PR c/65120 3448 * c-typeck.c (parser_build_binary_op): Check for tcc_comparison 3449 before preparing arguments to warn_logical_not_parentheses. 3450 34512015-03-09 Jakub Jelinek <jakub@redhat.com> 3452 3453 PR c/65120 3454 * c-typeck.c (parser_build_binary_op): Don't warn for 3455 !!x == y or !b == y where b is _Bool. 3456 34572015-03-09 Marek Polacek <polacek@redhat.com> 3458 3459 * c-convert.c (convert): Make use of do_ubsan_in_current_function. 3460 * c-decl.c (grokdeclarator): Likewise. 3461 * c-typeck.c (build_binary_op): Likewise. 3462 34632015-02-27 Marek Polacek <polacek@redhat.com> 3464 3465 PR c/65228 3466 * c-decl.c (start_decl): Return NULL_TREE if decl is an error node. 3467 34682015-02-14 Marek Polacek <polacek@redhat.com> 3469 3470 PR c/64768 3471 * c-decl.c (grokdeclarator): Set the range of a flexible array member 3472 declared through a typedef name. 3473 34742015-02-13 Marek Polacek <polacek@redhat.com> 3475 3476 PR c/65050 3477 * c-decl.c (grokdeclarator): Print also the type when giving 3478 the error message about array's incomplete element type. 3479 34802015-02-11 Jakub Jelinek <jakub@redhat.com> 3481 3482 PR c/64824 3483 * c-parser.c (c_parser_binary_expression): Fix OpenMP stack[sp].prec 3484 check in the POP macro. 3485 34862015-02-09 Marek Polacek <polacek@redhat.com> 3487 3488 PR c/64856 3489 * c-typeck.c (process_init_element): Don't always wrap 3490 COMPOUND_LITERAL_EXPR in a SAVE_EXPR in C99 mode when 3491 initializing a range of elements. 3492 34932015-02-04 Jakub Jelinek <jakub@redhat.com> 3494 3495 PR c/64824 3496 PR c/64868 3497 * c-parser.c (c_parser_omp_atomic): Handle RDIV_EXPR. 3498 34992015-02-02 Bruno Loff <bruno.loff@gmail.com> 3500 3501 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after 3502 processing enum declaration. 3503 35042015-01-29 Marek Polacek <polacek@redhat.com> 3505 3506 PR c/64709 3507 * c-typeck.c (pop_init_level): If constructor_elements has 3508 exactly one element with integer_zerop value, set constructor_zeroinit 3509 to 1. Remove braces around warning_init call. 3510 35112015-01-27 Jakub Jelinek <jakub@redhat.com> 3512 3513 PR c/64766 3514 * c-typeck.c (store_init_value): Don't overwrite DECL_INITIAL 3515 of FUNCTION_DECLs with error_mark_node. 3516 35172015-01-26 Jakub Jelinek <jakub@redhat.com> 3518 3519 PR c/64778 3520 * c-typeck.c (convert_arguments): Return -1 if there are 3521 error_args, even if we've diagnosed too many arguments. 3522 35232015-01-21 Richard Biener <rguenther@suse.de> 3524 3525 PR middle-end/64313 3526 * c-decl.c (merge_decls): Call set_builtin_decl_declared_p 3527 for builtins the user declared correctly. 3528 35292015-01-15 Thomas Schwinge <thomas@codesourcery.com> 3530 Bernd Schmidt <bernds@codesourcery.com> 3531 Cesar Philippidis <cesar@codesourcery.com> 3532 James Norris <jnorris@codesourcery.com> 3533 Jakub Jelinek <jakub@redhat.com> 3534 Ilmir Usmanov <i.usmanov@samsung.com> 3535 3536 * c-parser.c: Include "gomp-constants.h". 3537 (c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum 3538 omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. 3539 Use OMP_CLAUSE_SET_MAP_KIND. 3540 (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA, 3541 PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE. 3542 (c_parser_omp_construct): Handle PRAGMA_OACC_CACHE, 3543 PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP, 3544 PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT. 3545 (c_parser_omp_clause_name): Handle "auto", "async", "copy", 3546 "copyout", "create", "delete", "deviceptr", "gang", "host", 3547 "num_gangs", "num_workers", "present", "present_or_copy", "pcopy", 3548 "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout", 3549 "present_or_create", "pcreate", "seq", "self", "vector", 3550 "vector_length", "wait", "worker". 3551 (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK) 3552 (OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK) 3553 (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK) 3554 (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros. 3555 (c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_. 3556 (c_parser_oacc_wait_list, c_parser_oacc_data_clause) 3557 (c_parser_oacc_data_clause_deviceptr) 3558 (c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers) 3559 (c_parser_oacc_clause_async, c_parser_oacc_clause_wait) 3560 (c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses) 3561 (c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels) 3562 (c_parser_oacc_enter_exit_data, c_parser_oacc_loop) 3563 (c_parser_oacc_parallel, c_parser_oacc_update) 3564 (c_parser_oacc_wait): New functions. 3565 * c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels) 3566 (c_finish_oacc_data): New prototypes. 3567 * c-typeck.c: Include "gomp-constants.h". 3568 (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use 3569 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use 3570 OMP_CLAUSE_SET_MAP_KIND. 3571 (c_finish_oacc_parallel, c_finish_oacc_kernels) 3572 (c_finish_oacc_data): New functions. 3573 (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_, 3574 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS, 3575 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, 3576 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG, 3577 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's 3578 GOMP_MAP_FORCE_DEVICEPTR. 3579 35802015-01-09 Michael Collison <michael.collison@linaro.org> 3581 3582 * c-array-notation.c: Include hash-set.h, machmode.h, 3583 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h 3584 fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h. 3585 * c-aux-info.c: Ditto. 3586 * c-convert.c: Ditto. 3587 * c-decl.c: Ditto. 3588 * c-errors.c: Ditto. 3589 * c-lang.c: Dittoxs. 3590 * c-objc-common.c: Ditto. 3591 * c-parser.c: Ditto. 3592 * c-typeck.c: Include hash-set.h, machmode.h, 3593 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h 3594 fold-const.h, wide-int.h, inchash.h, real.h and 3595 fixed-value.h due to flattening of tree.h. 3596 35972015-01-07 Marek Polacek <polacek@redhat.com> 3598 3599 PR c/64417 3600 * c-typeck.c (process_init_element): Disallow initialization of 3601 a flexible array member with a string constant if the structure 3602 is in an array. 3603 36042015-01-05 Jakub Jelinek <jakub@redhat.com> 3605 3606 PR sanitizer/64344 3607 * c-typeck.c (convert_for_assignment, c_finish_return): For 3608 -fsanitize=float-cast-overflow casts from REAL_TYPE to integer/enum 3609 types also set in_late_binary_op around convert call. 3610 * c-convert.c (convert): For -fsanitize=float-cast-overflow REAL_TYPE 3611 to integral type casts, if not in_late_binary_op, pass c_fully_fold 3612 result on expr as last argument to ubsan_instrument_float_cast, 3613 if in_late_binary_op, don't use c_save_expr but save_expr. 3614 3615 Update copyright years. 3616 36172015-01-05 Marek Polacek <polacek@redhat.com> 3618 3619 PR c/64423 3620 * c-typeck.c (build_array_ref): Pass loc down to 3621 warn_array_subscript_with_type_char. 3622 36232014-12-20 Martin Uecker <uecker@eecs.berkeley.edu> 3624 3625 * c-typeck.c: New behavious for pointers to arrays with qualifiers 3626 (common-pointer-type): For pointers to arrays take qualifiers from 3627 element type. 3628 (build_conditional_expr): Add warnings for lost qualifiers. 3629 (comp-target-types): Allow pointers to arrays with different qualifiers. 3630 (convert-for-assignment): Adapt warnings for discarded qualifiers. Add 3631 WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS 3632 to PEDWARN_FOR_QUALIFIERS. 3633 36342014-12-17 Jakub Jelinek <jakub@redhat.com> 3635 3636 PR sanitizer/64289 3637 * c-convert.c: Include ubsan.h. 3638 (convert): For real -> integral casts and 3639 -fsanitize=float-cast-overflow don't call convert_to_integer, but 3640 instead instrument the float cast directly. 3641 36422014-11-29 Jakub Jelinek <jakub@redhat.com> 3643 3644 * c-typeck.c (convert_lvalue_to_rvalue, build_atomic_assign, 3645 c_finish_stmt_expr): Remove NULL last argument from 3646 create_tmp_var_raw and create_tmp_var calls. 3647 * c-array-notation.c (fix_builtin_array_notation_fn, 3648 build_array_notation_expr, fix_conditional_array_notations_1, 3649 fix_array_notation_expr, fix_array_notation_call_expr): Likewise. 3650 36512014-11-28 Marek Polacek <polacek@redhat.com> 3652 3653 PR c/63862 3654 * c-typeck.c (build_binary_op) <RSHIFT_EXPR, LSHIFT_EXPR>: Don't 3655 convert the right operand to integer type. 3656 36572014-11-25 Marek Polacek <polacek@redhat.com> 3658 3659 PR c/63877 3660 * c-decl.c (start_function): Disable -Wmissing-declarations warning 3661 for inline functions. 3662 36632014-11-21 Jakub Jelinek <jakub@redhat.com> 3664 3665 PR target/63764 3666 * c-typeck.c (build_array_ref): Adjust 3667 convert_vector_to_pointer_for_subscript caller. If it returns true, 3668 call non_lvalue_loc on the result. 3669 36702014-11-11 Richard Biener <rguenther@suse.de> 3671 3672 * c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues 3673 to true. 3674 36752014-11-10 Andi Kleen <ak@linux.intel.com> 3676 3677 PR c/60804 3678 * c-parser.c (c_parser_statement_after_labels): Call 3679 check_no_cilk. 3680 (c_parser_if_statement): Dito. 3681 (c_parser_switch_statement): Dito. 3682 (c_parser_while_statement): Dito. 3683 (c_parser_do_statement): Dito. 3684 (c_parser_for_statement): Dito. 3685 * c-typeck.c (c_finish_loop): Dito. 3686 36872014-11-10 Paolo Carlini <paolo.carlini@oracle.com> 3688 3689 * c-typeck.c (build_binary_op): Use OPT_Wshift_count_negative and 3690 OPT_Wshift_count_overflow in the warnings. 3691 36922014-10-30 Marek Polacek <polacek@redhat.com> 3693 3694 * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name, 3695 print the stripped version as well, if they're not the same. 3696 36972014-10-29 Richard Sandiford <richard.sandiford@arm.com> 3698 3699 * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from 3700 machine_mode. 3701 37022014-10-28 Andrew MacLeod <amacleod@redhat.com> 3703 3704 * c-decl.c: Adjust include files. 3705 * c-parser.c: Ditto. 3706 37072014-10-27 Phil Muldoon <pmuldoon@redhat.com> 3708 Tom Tromey <tromey@redhat.com> 3709 3710 * c-tree.h (enum c_oracle_request): New. 3711 (c_binding_oracle_function): New typedef. 3712 (c_binding_oracle, c_pushtag, c_bind): Declare. 3713 * c-decl.c (c_binding_oracle): New global. 3714 (I_SYMBOL_CHECKED): New macro. 3715 (i_symbol_binding): New function. 3716 (I_SYMBOL_BINDING, I_SYMBOL_DECL): Redefine. 3717 (I_TAG_CHECKED): New macro. 3718 (i_tag_binding): New function. 3719 (I_TAG_BINDING, I_TAG_DECL): Redefine. 3720 (I_LABEL_CHECKED): New macro. 3721 (i_label_binding): New function. 3722 (I_LABEL_BINDING, I_LABEL_DECL): Redefine. 3723 (c_print_identifier): Save and restore c_binding_oracle. 3724 (c_pushtag, c_bind): New functions. 3725 37262014-10-27 Andrew MacLeod <amacleod@redhat.com> 3727 3728 * c-typeck.c: Adjust include files. 3729 37302014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org> 3731 3732 PR c++/53061 3733 * c-objc-common.c (c_objc_common_init): Do not do diagnostics 3734 initialization here... 3735 (c_initialize_diagnostics): ... but here. Set defaults after 3736 building pretty-printer. 3737 37382014-10-23 Marek Polacek <polacek@redhat.com> 3739 3740 PR c/63626 3741 * c-decl.c (pop_scope): Don't print warning in external_scope. 3742 37432014-10-19 Marek Polacek <polacek@redhat.com> 3744 3745 PR c/63567 3746 * c-typeck.c (output_init_element): Allow initializing objects with 3747 static storage duration with compound literals even in C99 and add 3748 pedwarn for it. 3749 37502014-10-17 Marek Polacek <polacek@redhat.com> 3751 3752 PR c/63567 3753 * c-typeck.c (digest_init): Allow initializing objects with static 3754 storage duration with compound literals even in C99 and add pedwarn 3755 for it. 3756 37572014-10-17 Marek Polacek <polacek@redhat.com> 3758 3759 PR c/63543 3760 * c-tree.h (C_TYPE_ERROR_REPORTED): Define. 3761 * c-typeck.c (build_indirect_ref): Don't print the "dereferencing..." 3762 error multiple times. Print the type. 3763 37642014-10-17 Marek Polacek <polacek@redhat.com> 3765 3766 PR c/63549 3767 * c-typeck.c (build_array_ref): Bail if the index in an incomplete 3768 type. 3769 37702014-10-17 Marek Polacek <polacek@redhat.com> 3771 3772 * c-decl.c (grokdeclarator): Use OPT_Wimplicit_int unconditionally. 3773 (start_function): Use OPT_Wimplicit_int instead of 0. 3774 (store_parm_decls_oldstyle): Likewise. 3775 37762014-10-17 Alan Modra <amodra@gmail.com> 3777 3778 PR middle-end/61848 3779 * c-decl.c (merge_decls): Don't merge section name or tls model 3780 to newdecl symtab node, instead merge to olddecl. Override 3781 existing olddecl section name. Set tls_model for all thread-local 3782 vars, not just OMP thread-private ones. Remove incorrect comment. 3783 37842014-10-16 Andrew MacLeod <amacleod@redhat.com> 3785 3786 * c-decl.c: Adjust include files. 3787 37882014-10-14 DJ Delorie <dj@redhat.com> 3789 3790 * c-parser.c (c_parse_init): Add RID entries for each __intN. 3791 (c_token_starts_typename): Check all __intN, not just __int128. 3792 (c_token_starts_declspecs): Likewise. 3793 (c_parser_declspecs): Likewise. 3794 (c_parser_attribute_any_word): Likewise. 3795 (c_parser_objc_selector): Likewise. 3796 * c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n. 3797 (struct c_declspecs): Add int_n_idx field to record *which* __intN 3798 is specified. 3799 * c-decl.c (declspecs_add_type): Check for all __intN, not just 3800 __int128. 3801 (finish_declspecs): Likewise. 3802 38032014-10-13 Anthony Brandon <anthony.brandon@gmail.com> 3804 3805 * c-parser.c (c_parser_all_labels): New function to replace 3806 the duplicate code. 3807 (c_parser_statement): Call the new function. 3808 38092014-10-09 Marek Polacek <polacek@redhat.com> 3810 3811 PR c/63480 3812 * c-typeck.c (pop_init_level): Don't warn about initializing 3813 with { }. 3814 38152014-10-07 Marek Polacek <polacek@redhat.com> 3816 3817 PR c/59717 3818 * c-decl.c (header_for_builtin_fn): New function. 3819 (implicitly_declare): Suggest which header to include. 3820 38212014-10-07 Marek Polacek <polacek@redhat.com> 3822 3823 * c-convert.c (convert): Use error_operand_p. 3824 * c-typeck.c (require_complete_type): Likewise. 3825 (really_atomic_lvalue): Likewise. 3826 (digest_init): Likewise. 3827 (handle_omp_array_sections_1): Likewise. 3828 38292014-10-03 Marek Polacek <polacek@redhat.com> 3830 3831 PR c/63453 3832 * c-decl.c (pop_scope): Don't warn about "inline function declared 3833 but never defined" for functions marked with gnu_inline attribute. 3834 38352014-09-25 Jakub Jelinek <jakub@redhat.com> 3836 3837 PR c++/63249 3838 * c-parser.c (c_parser_omp_variable_list): Call mark_exp_read 3839 on low_bound and length. 3840 38412014-09-24 Marek Polacek <polacek@redhat.com> 3842 3843 PR c/61405 3844 PR c/53874 3845 * c-parser.c: Don't define CPP_KEYWORD. 3846 (c_parser_switch_statement): Pass original type to c_finish_case. 3847 * c-tree.h (c_finish_case): Update declaration. 3848 * c-typeck.c (c_finish_case): Add TYPE parameter. Pass it 3849 conditionally to c_do_switch_warnings. 3850 38512014-09-03 Marek Polacek <polacek@redhat.com> 3852 3853 PR c/62024 3854 * c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op 3855 conversions. 3856 38572014-09-02 Jakub Jelinek <jakub@redhat.com> 3858 Balaji V. Iyer <balaji.v.iyer@intel.com> 3859 Igor Zamyatin <igor.zamyatin@intel.com> 3860 3861 * c-parser.c (c_parser_cilk_for): New function. 3862 (c_parser_cilk_grainsize): Likewise. 3863 (c_get_temp_regvar): Likewise. 3864 (c_parser_statement_after_labels): Added RID_CILK_FOR case. 3865 (c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case. 3866 (c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks. 3867 * c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ 3868 case. 3869 38702014-08-27 Chen Gang <gang.chen.5i5j@gmail.com> 3871 3872 * c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes, 3873 with using HOST_WIDE_INT without truncation to 'int' 3874 38752014-08-22 Marek Polacek <polacek@redhat.com> 3876 3877 PR c++/62199 3878 * c-typeck.c (parser_build_binary_op): Adjust call to 3879 warn_logical_not_parentheses. 3880 38812014-08-22 Igor Zamyatin <igor.zamyatin@intel.com> 3882 3883 PR other/62008 3884 * c-parser.c (c_parser_array_notation): Check for correct 3885 type of an array added. 3886 38872014-08-19 Marek Polacek <polacek@redhat.com> 3888 3889 PR c++/62153 3890 * c-typeck.c (build_binary_op): If either operand of a comparison 3891 is a boolean expression, call maybe_warn_bool_compare. 3892 38932014-08-19 Patrick Palka <ppalka@gcc.gnu.org> 3894 3895 PR c/45584 3896 * c-typeck.c (build_c_cast): Do a conversion even when the 3897 TYPE_MAIN_VARIANTs are the same. 3898 38992014-08-19 Marek Polacek <polacek@redhat.com> 3900 3901 * c-decl.c (diagnose_mismatched_decls): Unconditionally call 3902 pedwarn_c99 instead of pedwarn. 3903 (grokfield): Likewise. 3904 (warn_defaults_to): New function. 3905 (grokdeclarator): Call warn_defaults_to instead of pedwarn_c99. 3906 Unconditionally call pedwarn_c99 instead of pedwarn. 3907 (start_function): Call warn_defaults_to instead of pedwarn_c99. 3908 (declspecs_add_scspec): Call pedwarn_c99 instead of pedwarn, don't 3909 check flag_isoc11 before. 3910 * c-errors.c (pedwarn_c99): Change the return type to bool. 3911 Handle -Wc99-c11-compat. 3912 * c-parser.c (disable_extension_diagnostics): Handle 3913 warn_c99_c11_compat. 3914 (restore_extension_diagnostics): Likewise. 3915 (c_parser_static_assert_declaration_no_semi): Call pedwarn_c99 3916 instead of pedwarn, don't check flag_isoc11 before. 3917 (c_parser_declspecs): Likewise. 3918 (c_parser_alignas_specifier): Likewise. 3919 (c_parser_alignof_expression): Likewise. 3920 (c_parser_generic_selection): Likewise. 3921 * c-tree.h (pedwarn_c99): Update declaration. 3922 * c-typeck.c (c_finish_return): Call pedwarn or warning_at instead 3923 of pedwarn_c99. 3924 39252014-08-19 Marek Polacek <polacek@redhat.com> 3926 3927 * c-decl.c (warn_variable_length_array): Pass OPT_Wvla unconditionally 3928 to pedwarn_c90. 3929 * c-errors.c: Include "opts.h". 3930 (pedwarn_c90): Rewrite to handle -Wno-c90-c99-compat better. 3931 * c-parser.c (disable_extension_diagnostics): Handle negative value 3932 of warn_c90_c99_compat, too. 3933 (restore_extension_diagnostics): Likewise. 3934 (c_parser_compound_statement_nostart): Pass 3935 OPT_Wdeclaration_after_statement unconditionally to pedwarn_c90. 3936 39372014-08-12 Marek Polacek <polacek@redhat.com> 3938 3939 * c-parser.c (c_parser_postfix_expression) <case RID_FUNCTION_NAME>: 3940 Add pedwarn. 3941 (c_parser_postfix_expression) <case RID_PRETTY_FUNCTION_NAME>: 3942 Likewise. 3943 (c_parser_postfix_expression) <case RID_C99_FUNCTION_NAME>: Likewise. 3944 39452014-08-10 Marek Polacek <polacek@redhat.com> 3946 3947 PR c/51849 3948 * c-decl.c (build_array_declarator): Remove check for !flag_isoc99. 3949 Call pedwarn_c90 instead of pedwarn. 3950 (check_bitfield_type_and_width): Likewise. 3951 (declspecs_add_qual): Likewise. 3952 (declspecs_add_type): Likewise. 3953 (warn_variable_length_array): Unify function for -pedantic and -Wvla. 3954 Adjust to only call pedwarn_c90. 3955 (grokdeclarator): Remove pedantic && !flag_isoc99 check. Call 3956 pedwarn_c90 instead of pedwarn. 3957 * c-errors.c (pedwarn_c90): Handle -Wc90-c99-compat. 3958 * c-parser.c (disable_extension_diagnostics): Handle 3959 warn_c90_c99_compat. 3960 (restore_extension_diagnostics): Likewise. 3961 (c_parser_enum_specifier): Remove check for !flag_isoc99. Call 3962 pedwarn_c90 instead of pedwarn. 3963 (c_parser_initelt): Likewise. 3964 (c_parser_postfix_expression): Likewise. 3965 (c_parser_postfix_expression_after_paren_type): Likewise. 3966 (c_parser_compound_statement_nostart): Remove check for !flag_isoc99. 3967 * c-tree.h: Fix formatting. 3968 * c-typeck.c (build_array_ref): Remove check for !flag_isoc99. Call 3969 pedwarn_c90 instead of pedwarn. 3970 39712014-08-07 Trevor Saunders <tsaunders@mozilla.com> 3972 3973 * c-typeck.c: Remove include of pointer-set.h. 3974 39752014-08-07 Marek Polacek <polacek@redhat.com> 3976 3977 * c-typeck.c (pointer_diff): Remove P - (P + CST) optimization. 3978 39792014-08-02 Trevor Saunders <tsaunders@mozilla.com> 3980 3981 * c-typeck.c: Use hash_map instead of pointer_map. 3982 39832014-08-02 Trevor Saunders <tsaunders@mozilla.com> 3984 3985 * c-decl.c: Use hash_set instead of pointer_set. 3986 39872014-08-01 Igor Zamyatin <igor.zamyatin@intel.com> 3988 3989 PR middle-end/61455 3990 * c-array-notation.c (expand_array_notations): Handling 3991 of DECL_EXPR added. 3992 39932014-07-31 Marc Glisse <marc.glisse@inria.fr> 3994 3995 PR c++/60517 3996 * c-typeck.c (c_finish_return): Return 0 instead of the address of 3997 a local variable. 3998 39992014-07-30 Tom Tromey <tromey@redhat.com> 4000 4001 * c-typeck.c (struct constructor_stack) <designator_depth>: New 4002 field. 4003 (really_start_incremental_init, push_init_level): Initialize 4004 designator_depth. 4005 (pop_init_level): Set global designator_depth. 4006 (process_init_element): Check for designated_init attribute. 4007 40082014-07-20 Marek Polacek <polacek@redhat.com> 4009 4010 PR c/61852 4011 * c-decl.c (implicit_decl_warning): Add location_t parameter. Use it. 4012 (implicitly_declare): Pass location to implicit_decl_warning. 4013 40142014-07-14 Jakub Jelinek <jakub@redhat.com> 4015 4016 PR middle-end/61294 4017 * c-parser.c (c_parser_expr_list): Add new argument literal_zero_mask. 4018 If non-NULL, call c_parser_check_literal_zero. 4019 (c_parser_check_literal_zero): New function. 4020 (c_parser_postfix_expression_after_primary): Adjust 4021 c_parser_expr_list caller, handle -Wmemset-transposed-args. 4022 40232014-07-06 Marek Polacek <polacek@redhat.com> 4024 4025 PR c/6940 4026 * c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER. 4027 * c-tree.h (C_ARRAY_PARAMETER): Define. 4028 * c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array 4029 function parameter. 4030 40312014-07-02 Jan Hubicka <hubicka@ucw.cz> 4032 Chen Gang <gang.chen.5i5j@gmail.com> 4033 4034 * c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before 4035 releasing symbol. 4036 40372014-07-01 Marek Polacek <polacek@redhat.com> 4038 4039 * c-typeck.c (convert_for_assignment): Pass OPT_Wint_conversion 4040 instead of 0 to WARN_FOR_ASSIGNMENT. 4041 40422014-07-01 Marek Polacek <polacek@redhat.com> 4043 4044 PR c/58286 4045 * c-typeck.c (convert_for_assignment): Pass 4046 OPT_Wincompatible_pointer_types instead of 0 to WARN_FOR_ASSIGNMENT. 4047 40482014-06-30 Marek Polacek <polacek@redhat.com> 4049 4050 * c-decl.c (grokdeclarator): Don't instrument VLAs if the function 4051 has no_sanitize_undefined attribute. 4052 40532014-06-30 Igor Zamyatin <igor.zamyatin@intel.com> 4054 4055 PR middle-end/57541 4056 * c-array-notation.c (fix_builtin_array_notation_fn): 4057 Check for 0 arguments in builtin call. Check that bultin argument is 4058 correct. 4059 * c-parser.c (c_parser_array_notation): Check for incorrect initial 4060 index. 4061 40622014-06-27 Sebastian Huber <sebastian.huber@embedded-brains.de> 4063 4064 * c-parser.c (c_parser_declaration_or_fndef): Discard all type 4065 qualifiers in __auto_type for atomic types. 4066 (c_parser_typeof_specifier): Discard all type qualifiers in 4067 __typeof__ for atomic types. 4068 40692014-06-25 Marek Polacek <polacek@redhat.com> 4070 4071 PR c/61162 4072 * c-parser.c (c_parser_statement_after_labels): Pass the location of 4073 the return expression to c_finish_return. 4074 40752014-06-25 Jakub Jelinek <jakub@redhat.com> 4076 4077 * c-typeck.c (c_finish_omp_clauses): Make sure 4078 OMP_CLAUSE_LINEAR_STEP has correct type. 4079 40802014-06-24 Trevor Saunders <tsaunders@mozilla.com> 4081 4082 * c-decl.c: Adjust. 4083 40842014-06-24 Jakub Jelinek <jakub@redhat.com> 4085 4086 * c-parser.c (c_parser_omp_for_loop): For 4087 #pragma omp parallel for simd move lastprivate clause from parallel 4088 to for rather than simd. 4089 40902014-06-23 Marek Polacek <polacek@redhat.com> 4091 4092 * c-typeck.c (parser_build_binary_op): Don't call 4093 warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR. 4094 40952014-06-15 Jan Hubicka <hubicka@ucw.cz> 4096 4097 * c-parser.c (c_parser_omp_threadprivate): Likewise. 4098 * c-decl.c (merge_decls): Likewise. 4099 41002014-06-09 Marek Polacek <polacek@redhat.com> 4101 4102 PR c/36446 4103 * c-typeck.c (error_init): Call inform instead of error_at. 4104 (pedwarn_init): Call inform instead of pedwarn. 4105 (warning_init): Call inform instead of warning_at. 4106 41072014-06-07 Jan Hubicka <hubicka@ucw.cz> 4108 4109 * c-decl.c (merge_decls): Use set_decl_section_name. 4110 (duplicate_decls): Remove node if it exists. 4111 41122014-06-05 S. Gilles <sgilles@terpmail.umd.edu> 4113 4114 PR c/53119 4115 * c-typeck.c (push_init_level, process_init_element, 4116 pop_init_level): Correct check for zero initialization, move 4117 missing brace warning to respect zero initialization. 4118 41192014-06-05 Marek Polacek <polacek@redhat.com> 4120 4121 PR c/56724 4122 * c-typeck.c (convert_for_assignment): Use expr_loc for ic_argpass. 4123 41242014-06-05 Marek Polacek <polacek@redhat.com> 4125 4126 PR c/49706 4127 * c-typeck.c (parser_build_binary_op): Warn when logical not is used 4128 on the left hand side operand of a comparison. 4129 41302014-06-05 Marek Polacek <polacek@redhat.com> 4131 4132 PR c/48062 4133 * c-decl.c (warn_if_shadowing): Call inform instead of warning_at. 4134 Print note only if the warning was printed. 4135 41362014-06-04 Igor Zamyatin <igor.zamyatin@intel.com> 4137 4138 PR c/58942 4139 * c-array-notation.c (fix_builtin_array_notation_fn): Handle the case 4140 with a pointer. 4141 41422014-06-03 Marek Polacek <polacek@redhat.com> 4143 4144 PR c/60439 4145 * c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to 4146 c_start_case. 4147 * c-tree.h (c_start_case): Update. 4148 * c-typeck.c (c_start_case): Add new boolean parameter. Warn if 4149 switch condition has boolean value. 4150 41512014-06-02 Andrew MacLeod <amacleod@redhat.com> 4152 4153 * c-decl.c: Include builtins.h. 4154 * c-parser.c: Likewise. 4155 41562014-05-27 Marek Polacek <polacek@redhat.com> 4157 4158 PR c/56724 4159 * c-typeck.c (convert_arguments): Get location of a parameter. Change 4160 error and warning calls to error_at and warning_at. Pass location of 4161 a parameter to it. Call warning_at with OPT_Wtraditional_conversion. 4162 (convert_for_assignment): Add parameter to WARN_FOR_ASSIGNMENT and 4163 WARN_FOR_QUALIFIERS. Pass expr_loc to those. 4164 41652014-05-26 Igor Zamyatin <igor.zamyatin@intel.com> 4166 4167 PR c/61191 4168 * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid 4169 function parameters. 4170 41712014-05-23 Jan Hubicka <hubicka@ucw.cz> 4172 4173 * c-decl.c (merge_decls): Preserve symtab node pointers. 4174 (duplicate_decls): Free new decl. 4175 41762014-05-23 Thomas Schwinge <thomas@codesourcery.com> 4177 4178 * c-typeck.c (c_finish_omp_clauses): Remove duplicated variable 4179 initialization. 4180 4181 * c-parser.c (c_parser_omp_target): Return bool values. 4182 41832014-05-22 Thomas Schwinge <thomas@codesourcery.com> 4184 4185 * c-parser.c (c_parser_omp_clause_thread_limit): Rename 4186 num_teams_loc variable to num_thread_limit_loc. 4187 41882014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com> 4189 4190 * c-array-notation.c (expand_array_notations): Use void_node 4191 instead of void_zero_node. 4192 41932014-05-17 Trevor Saunders <tsaunders@mozilla.com> 4194 4195 * c-decl.c (finish_struct): Adjust. 4196 (finish_enum): Likewise. 4197 (bind): Adjust. 4198 (record_inline_static): Likewise. 4199 (push_scope): Likewise. 4200 (make_label): Likewise. 4201 (lookup_label_for_goto): Likewise. 4202 (finish_struct): Likewise. 4203 (finish_enum): Likewise. 4204 (store_parm_decls): Likewise. 4205 (c_push_function_context): Likewise. 4206 * c-lang.h: Remove usage of variable_size gty attribute. 4207 * c-parser.c (c_parse_init): Adjust. 4208 (c_parse_file): Likewise. 4209 42102014-05-13 Marek Polacek <polacek@redhat.com> 4211 4212 PR c/61162 4213 * c-typeck.c (convert_for_assignment): Pass location to 4214 WARN_FOR_ASSIGNMENT instead of input_location. 4215 42162014-05-10 Marek Polacek <polacek@redhat.com> 4217 4218 * c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to 4219 maybe_warn_string_init. 4220 (c_parser_postfix_expression_after_paren_type): Pass type_loc to 4221 maybe_warn_string_init. 4222 * c-tree.h (maybe_warn_string_init): Update declaration. 4223 * c-typeck.c (maybe_warn_string_init): Add location parameter. 4224 Call pedwarn_init with loc instead of with input_location. 4225 (digest_init): Pass init_loc to maybe_warn_string_init. 4226 (pop_init_level): Call pedwarn_init with loc instead of with 4227 input_location. 4228 (set_init_index): Likewise. 4229 (process_init_element): Likewise. 4230 42312014-05-09 Marek Polacek <polacek@redhat.com> 4232 4233 PR c/61096 4234 * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level. 4235 (c_parser_initelt): Pass location to set_init_label. Pass array index 4236 location to set_init_index. 4237 * c-tree.h (push_init_level): Update declaration. 4238 (pop_init_level): Likewise. 4239 (set_init_index): Likewise. 4240 (set_init_label): Likewise. 4241 * c-typeck.c (error_init): Add location parameter. Call error_at 4242 instead of error. 4243 (digest_init): Pass init_loc to error_init. 4244 (really_start_incremental_init): 4245 (push_init_level): Add location parameter. Pass loc to pop_init_level 4246 and error_init. 4247 (pop_init_level): Likewise. 4248 (set_designator): Add location parameter. Pass loc to pop_init_level, 4249 push_init_level, and error_init. 4250 (set_init_index): Add location parameter. Pass loc to error_init and 4251 set_designator. 4252 (set_init_label): Likewise. 4253 (output_init_element): Pass loc to error_init. 4254 (process_init_element): Pass loc to error_init, pop_init_level, 4255 pedwarn_init, and push_init_level. 4256 42572014-05-09 Marek Polacek <polacek@redhat.com> 4258 4259 PR c/50459 4260 * c-parser.c (c_parser_attributes): Parse the arguments as an 4261 expression-list if the attribute takes identifier. 4262 42632014-05-08 Marek Polacek <polacek@redhat.com> 4264 4265 PR c/61053 4266 * c-decl.c (grokdeclarator): Use min_align_of_type instead of 4267 TYPE_ALIGN_UNIT. 4268 42692014-05-08 Marek Polacek <polacek@redhat.com> 4270 4271 PR c/61077 4272 * c-decl.c (start_function): Warn for _Atomic-qualified return type 4273 of main. 4274 42752014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> 4276 Mike Stump <mikestump@comcast.net> 4277 Richard Sandiford <rdsandiford@googlemail.com> 4278 4279 * c-decl.c (check_bitfield_type_and_width): Use TYPE_SIGN. 4280 (finish_enum): Use wide-int interfaces. 4281 * c-parser.c (c_parser_cilk_clause_vectorlength): Likewise. 4282 * c-typeck.c (build_c_cast): Likewise. 4283 (set_nonincremental_init_from_string): Likewise. 4284 (c_tree_equal): Likewise. 4285 42862014-05-02 Marek Polacek <polacek@redhat.com> 4287 4288 PR c/25801 4289 * c-typeck.c (c_size_in_bytes): Update comment. Don't call error. 4290 Return size_one_node when the type is not complete. 4291 (pointer_diff): Remove comment. 4292 (build_unary_op): Improve error messages. 4293 42942014-05-02 Marek Polacek <polacek@redhat.com> 4295 4296 * c-typeck.c (c_finish_return): Separate warning_at calls. 4297 42982014-05-02 Marek Polacek <polacek@redhat.com> 4299 4300 * c-tree.h (error_init): Remove declaration. 4301 (pedwarn_init): Likewise. 4302 * c-typeck.c (error_init): Make static and move above. 4303 (pedwarn_init): Likewise. 4304 (warning_init): Move above. 4305 (maybe_warn_string_init): Likewise. 4306 43072014-05-01 Jeff Law <law@redhat.com> 4308 4309 Revert: 4310 4311 2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> 4312 * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to 4313 avoid goto. 4314 43152014-05-02 Marek Polacek <polacek@redhat.com> 4316 4317 PR c/60784 4318 * c-typeck.c (push_init_level): Set constructor_designated to 4319 p->designated for structures. 4320 43212014-05-01 Marek Polacek <polacek@redhat.com> 4322 4323 PR c/60915 4324 * c-parser.c (c_parser_declaration_or_fndef): Give better error if 4325 function-definition has an attribute after the declarator. 4326 43272014-05-01 Marek Polacek <polacek@redhat.com> 4328 4329 PR c/60257 4330 * c-typeck.c (warning_init): Add location_t parameter. Call 4331 warning_at instead of warning. 4332 (push_init_level): Pass input_location to warning_init. 4333 (add_pending_init): Add location_t parameter. Pass loc to 4334 warning_init. 4335 (set_nonincremental_init): Pass input_location to add_pending_init. 4336 (set_nonincremental_init_from_string): Likewise. 4337 (output_init_element): Pass loc to warning_init and to 4338 add_pending_init. 4339 43402014-05-01 Marek Polacek <polacek@redhat.com> 4341 4342 PR c/43395 4343 * c-typeck.c (c_finish_return): Distinguish between label and variable 4344 when warning about returning local address. 4345 43462014-05-01 Marek Polacek <polacek@redhat.com> 4347 4348 PR c/29467 4349 * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used 4350 in C89 mode. 4351 43522014-05-01 Marek Polacek <polacek@redhat.com> 4353 4354 PR c/43245 4355 * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers 4356 instead of 0 to WARN_FOR_QUALIFIERS. 4357 43582014-05-01 Marek Polacek <polacek@redhat.com> 4359 4360 PR c/56989 4361 * c-typeck.c (default_conversion): Use better location for 4362 error call. 4363 43642014-04-30 Marek Polacek <polacek@redhat.com> 4365 4366 * c-typeck.c (build_binary_op): Call ubsan_instrument_division 4367 also when SANITIZE_FLOAT_DIVIDE is on. 4368 43692014-04-30 Marek Polacek <polacek@redhat.com> 4370 4371 PR c/60139 4372 * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn 4373 and pedwarn_init. Use loc insted of input_location. 4374 43752014-04-30 Marek Polacek <polacek@redhat.com> 4376 4377 PR c/60351 4378 * c-typeck.c (build_binary_op): Use location when warning about 4379 shift count. 4380 43812014-04-25 Marek Polacek <polacek@redhat.com> 4382 4383 PR c/18079 4384 * c-decl.c (diagnose_mismatched_decls): Warn for mismatched 4385 always_inline/noinline and hot/cold attributes. 4386 43872014-04-25 Marek Polacek <polacek@redhat.com> 4388 4389 PR c/60114 4390 * c-parser.c (c_parser_initelt): Pass input_location to 4391 process_init_element. 4392 (c_parser_initval): Pass loc to process_init_element. 4393 * c-tree.h (process_init_element): Adjust declaration. 4394 * c-typeck.c (push_init_level): Pass input_location to 4395 process_init_element. 4396 (pop_init_level): Likewise. 4397 (set_designator): Likewise. 4398 (output_init_element): Add location_t parameter. Pass loc to 4399 digest_init. 4400 (output_pending_init_elements): Pass input_location to 4401 output_init_element. 4402 (process_init_element): Add location_t parameter. Pass loc to 4403 output_init_element. 4404 44052014-04-24 Jakub Jelinek <jakub@redhat.com> 4406 4407 * c-parser.c (c_parser_omp_atomic): Allow seq_cst before 4408 atomic-clause, allow comma in between atomic-clause and 4409 seq_cst. 4410 44112014-04-22 Jakub Jelinek <jakub@redhat.com> 4412 4413 PR c/59073 4414 * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for 4415 fails, don't set OM_PARALLEL_COMBINED and return NULL. 4416 44172014-04-12 Igor Zamyatin <igor.zamyatin@intel.com> 4418 4419 PR middle-end/60469 4420 * c-array-notation.c (fix_builtin_array_notation_fn): Use 4421 create_tmp_var instead build_decl for creating temps. 4422 (build_array_notation_expr): Likewise. 4423 (fix_conditional_array_notations_1): Likewise. 4424 (fix_array_notation_expr): Likewise. 4425 (fix_array_notation_call_expr): Likewise. 4426 44272014-03-28 Jakub Jelinek <jakub@redhat.com> 4428 4429 PR c++/60689 4430 * c-tree.h (c_build_function_call_vec): New prototype. 4431 * c-typeck.c (build_function_call_vec): Don't call 4432 resolve_overloaded_builtin here. 4433 (c_build_function_call_vec): New wrapper function around 4434 build_function_call_vec. Call resolve_overloaded_builtin here. 4435 (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign): 4436 Call c_build_function_call_vec instead of build_function_call_vec. 4437 * c-parser.c (c_parser_postfix_expression_after_primary): Likewise. 4438 * c-decl.c (finish_decl): Likewise. 4439 44402014-03-18 Manuel López-Ibáñez <manu@gcc.gnu.org> 4441 4442 PR c/55383 4443 * c-typeck.c: Use correct format string in cast-qual warning 4444 44452014-03-07 Thomas Schwinge <thomas@codesourcery.com> 4446 4447 * c-decl.c (c_decl_attributes): Use 4448 lang_hooks.types.omp_mappable_type. 4449 * c-typeck.c (c_finish_omp_clauses): Likewise. 4450 44512014-03-06 Marek Polacek <polacek@redhat.com> 4452 4453 PR c/60197 4454 * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead 4455 of checking tree code. 4456 44572014-02-19 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> 4458 4459 * c-parser.c (c_parser_declspecs): Replace call to error by error_at. 4460 (c_parser_parameter_declaration): Likewise. 4461 44622014-02-19 Marek Polacek <polacek@redhat.com> 4463 4464 PR c/60195 4465 * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp. 4466 Call mark_exp_read on exp.value. 4467 (build_atomic_assign): Set TREE_NO_WARNING on val and old. Set 4468 TREE_ADDRESSABLE on old instead of val. 4469 (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING. 4470 44712014-02-07 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> 4472 4473 * c-parser.c (c_parser_get_builtin_args): Replace calls to 4474 C_EXPR_APPEND by vec_safe_push. 4475 * c-tree.h (C_EXPR_APPEND): Remove. 4476 44772014-01-31 Marek Polacek <polacek@redhat.com> 4478 4479 PR c/59963 4480 * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to 4481 build_function_call_vec. 4482 (build_function_call): Likewise. 4483 (build_atomic_assign): Likewise. 4484 (build_function_call_vec): Add arg_loc parameter. Use it. 4485 (convert_arguments): Likewise. 4486 (convert_for_assignment): Rename rhs_loc to expr_loc. 4487 * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list. 4488 (c_parser_objc_keywordexpr): Likewise. 4489 (c_parser_postfix_expression_after_primary): Call 4490 build_function_call_vec with expr_loc rather than op_loc. 4491 Call c_parser_expr_list to fill arg_loc. Pass arg_loc to 4492 build_function_call_vec. 4493 (c_parser_expr_list): Add locations parameter. Fill it with locations 4494 of function arguments. 4495 * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec. 4496 44972014-01-30 Marek Polacek <polacek@redhat.com> 4498 4499 PR c/59940 4500 * c-typeck.c (build_function_call_vec): Use loc parameter. 4501 (convert_arguments): Add location parameter. Use it. 4502 (ep_convert_and_check): Likewise. 4503 (build_atomic_assign): Adjust convert_for_assignment call. 4504 (build_modify_expr): Likewise. 4505 (digest_init): Likewise. 4506 (c_finish_return): Likewise. 4507 (build_conditional_expr): Adjust ep_convert_and_check calls. 4508 (convert_for_assignment): Add rhs_loc parameter. Use it. 4509 (build_binary_op): Adjust convert_and_check and ep_convert_and_check 4510 calls. 4511 45122014-01-30 Richard Biener <rguenther@suse.de> 4513 4514 PR c/59905 4515 * c-typeck.c (build_function_call_vec): Do not replace calls 4516 to a function via an incompatible type with a runtime abort. 4517 45182014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com> 4519 4520 * c-parser.c (c_parser_declaration_or_fndef): Replaced 4521 flag_enable_cilkplus with flag_cilkplus. 4522 (c_parser_direct_declarator_inner): Likewise. 4523 (c_parser_attribute_any_word): Likewise. 4524 (c_parser_attributes): Likewise. 4525 (c_parser_compound_statement): Likewise. 4526 (c_parser_statement_after_labels): Likewise. 4527 (c_parser_if_statement): Likewise. 4528 (c_parser_switch_statement): Likewise. 4529 (c_parser_do_statement): Likewise. 4530 (c_parser_for_statement): Likewise. 4531 (c_parser_unary_expression): Likewise. 4532 (c_parser_postfix_expression): Likewise. 4533 (c_parser_postfix_expression_after_primary): Likewise. 4534 (c_parser_postfix_expression_after_primary): Likewise. 4535 (c_parser_omp_clause_name): Likewise. 4536 (c_finish_omp_declare_simd): Likewise. 4537 (c_parser_cilk_verify_simd): Likewise. 4538 * c-typeck.c (build_array_ref): Likewise. 4539 (build_function_call_vec): Likewise. 4540 (convert_arguments): Likewise. 4541 (build_compound_expr): Likewise. 4542 (c_finish_return): Likewise. 4543 (c_finish_if_stmt): Likewise. 4544 (c_finish_loop): Likewise. 4545 (build_binary_op): Likewise. 4546 45472014-01-23 Marek Polacek <polacek@redhat.com> 4548 4549 PR c/59846 4550 * c-typeck.c (parser_build_binary_op): Use location instead of 4551 input_location. 4552 (build_binary_op): Pass location to shorten_compare. 4553 45542014-01-23 Marek Polacek <polacek@redhat.com> 4555 4556 PR c/58346 4557 * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to 4558 an empty aggregate. 4559 45602014-01-23 Marek Polacek <polacek@redhat.com> 4561 4562 PR c/59871 4563 * c-typeck.c (build_compound_expr): Warn even for right-hand operand 4564 of a comma expression. 4565 (emit_side_effect_warnings): Likewise. 4566 45672014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com> 4568 4569 PR c/59825 4570 * c-array-notation.c (expand_array_notation_exprs): Rewrote this 4571 function to use walk_tree and moved a lot of its functionality to 4572 expand_array_notations. 4573 (expand_array_notations): New function. 4574 45752014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com> 4576 4577 * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function" 4578 attribute an attribute without value. 4579 45802014-01-23 Jakub Jelinek <jakub@redhat.com> 4581 4582 PR middle-end/58809 4583 * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR, 4584 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs. 4585 45862014-01-22 Marek Polacek <polacek@redhat.com> 4587 4588 PR c/59891 4589 * c-typeck.c (build_conditional_expr): Call c_fully_fold instead 4590 of remove_c_maybe_const_expr on op1 and op2. 4591 45922014-01-15 Jakub Jelinek <jakub@redhat.com> 4593 4594 PR c/58943 4595 * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side 4596 effects, preevaluate rhs using SAVE_EXPR first. 4597 45982014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> 4599 4600 PR c++/59631 4601 * c-parser.c (c_parser_postfix_expression): Replaced consecutive if 4602 statements with if-elseif statements. 4603 46042014-01-06 Marek Polacek <polacek@redhat.com> 4605 4606 PR c/57773 4607 * c-decl.c (check_bitfield_type_and_width): Warn for implementation 4608 defined bit-field types only in ISO C. 4609 46102014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 4611 4612 Update copyright years 4613 46142014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 4615 4616 * c-array-notation.c: Use the standard form for the copyright notice. 4617 46182013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> 4619 4620 * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field. 4621 (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens 4622 field in parser is not empty. If not-empty, call the function 4623 c_parser_finish_omp_declare_simd. 4624 (c_parser_cilk_clause_vectorlength): Modified function to be shared 4625 between SIMD-enabled functions and #pragma simd. Added new parameter. 4626 (c_parser_cilk_all_clauses): Modified the usage of the function 4627 c_parser_cilk_clause_vectorlength as mentioned above. 4628 (c_parser_cilk_simd_fn_vector_attrs): New function. 4629 (c_finish_cilk_simd_fn_tokens): Likewise. 4630 (is_cilkplus_vector_p): Likewise. 4631 (c_parser_omp_clause_name): Added checking for "vectorlength," 4632 "nomask," and "mask" strings in clause name. 4633 (c_parser_omp_all_clauses): Added 3 new case statements: 4634 PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and 4635 PRAGMA_CILK_CLAUSE_NOMASK. 4636 (c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a 4637 check for vector attribute and if so call the function 4638 c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled, 4639 called the function c_finish_cilk_simd_fn_tokens. 4640 (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in 4641 parser field is non-empty. If so, parse them as you would parse 4642 the omp declare simd pragma. 4643 (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn. 4644 Added a check when step is a parameter and flag it as error. 4645 (CILK_SIMD_FN_CLAUSE_MASK): New #define. 4646 (c_parser_cilk_clause_name): Changed pragma_cilk_clause to 4647 pragma_omp_clause. 4648 46492013-12-17 Thomas Schwinge <thomas@codesourcery.com> 4650 4651 * c-parser.c (c_parser_omp_parallel): Fix description. 4652 46532013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> 4654 4655 * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove. 4656 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise. 4657 (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise. 4658 * c-typeck.c (cilk_install_body_with_frame_cleanup): New function. 4659 46602013-12-04 Joseph Myers <joseph@codesourcery.com> 4661 4662 PR c/52023 4663 * c-parser.c (c_parser_alignas_specifier): Use 4664 c_sizeof_or_alignof_type instead of c_alignof. 4665 (c_parser_alignof_expression): Likewise, with min_alignof 4666 parameter depending on alignof spelling used. 4667 46682013-12-04 Marek Polacek <polacek@redhat.com> 4669 4670 PR c/54113 4671 * c-decl.c (start_function): Don't warn for missing prototype for 4672 inline functions. 4673 46742013-12-03 Marek Polacek <polacek@redhat.com> 4675 4676 PR c/59351 4677 * c-decl.c (build_compound_literal): Allow compound literals with 4678 empty initial value. 4679 46802013-12-02 Joseph Myers <joseph@codesourcery.com> 4681 4682 PR c/58235 4683 * c-typeck.c (build_modify_expr): Diagnose assignment to 4684 expression with array type. 4685 46862013-11-29 Joseph Myers <joseph@codesourcery.com> 4687 4688 PR c/42262 4689 * c-typeck.c (process_init_element): Do not treat a string as 4690 initializing a whole array when used with a designator for an 4691 individual element. 4692 46932013-11-29 Joseph Myers <joseph@codesourcery.com> 4694 4695 PR c/57574 4696 * c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of 4697 an inline function following a static declaration. 4698 46992013-11-28 Jakub Jelinek <jakub@redhat.com> 4700 4701 PR c/59310 4702 * c-parser.c (c_parser_omp_target): Copy "#pragma omp target" 4703 to p_name before calling c_parser_omp_teams instead of after. 4704 (c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser 4705 argument. Remove unused p_name variable. 4706 47072013-11-27 Aldy Hernandez <aldyh@redhat.com> 4708 Jakub Jelinek <jakub@redhat.com> 4709 4710 * c-decl.c (c_builtin_function_ext_scope): Avoid binding if 4711 external_scope is NULL. 4712 47132013-11-27 Tom de Vries <tom@codesourcery.com> 4714 Marc Glisse <marc.glisse@inria.fr> 4715 4716 PR c++/59032 4717 * c-typeck.c (build_unary_op): Allow vector increment and decrement. 4718 47192013-11-22 Andrew MacLeod <amacleod@redhat.com> 4720 4721 * c-typeck.c: Add required include files from gimple.h. 4722 47232013-11-22 David Malcolm <dmalcolm@redhat.com> 4724 4725 * c-decl.c (define_label, shadow_tag_warned) 4726 (check_bitfield_type_and_width, grokdeclarator, grokparms, 4727 store_parm_decls_newstyle, store_parm_decls_oldstyle) 4728 (declspecs_add_type): Remove use of in_system_header macro. 4729 * c-parser.c (c_parser_unary_expression): Likewise. 4730 * c-typeck.c (store_init_value, process_init_element) 4731 (c_start_case): Likewise. 4732 4733 * c-decl.c (build_enumerator): Remove use of EXPR_LOC_OR_HERE 4734 macro. 4735 4736 * c-parser.c (c_parser_set_source_position_from_token): Remove 4737 reference to in_system_header from comment. 4738 47392013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 4740 4741 * c-decl.c (grokdeclarator): Update comment to refer to 4742 tree_to_[su]hwi rather than tree_low_cst. 4743 47442013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 4745 4746 * c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with 4747 tree_to_uhwi throughout. 4748 47492013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 4750 4751 * c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi 4752 throughout. 4753 47542013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 4755 4756 * c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p 4757 throughout. 4758 47592013-11-15 Aldy Hernandez <aldyh@redhat.com> 4760 4761 * c-parser.c (c_parser_cilk_simd): New. 4762 (c_parser_cilk_verify_simd): New. 4763 (c_parser_pragma): Add case for PRAGMA_CILK_SIMD. 4764 (c_parser_omp_for_loop): Add case for NE_EXPR. 4765 Set c_break_label for CILK_SIMD. 4766 (c_parser_cilk_clause_vectorlength): New. 4767 (c_parser_cilk_clause_linear): New. 4768 (c_parser_cilk_clause_name): New. 4769 (c_parser_cilk_all_clauses): New. 4770 * c-typeck.c (build_unary_op): Pass location argument to 4771 readonly_error. 4772 (build_modify_expr): Same. 4773 (build_asm_expr): Same. 4774 (c_finish_bc_stmt): Error on break/continue in loops. 4775 47762013-11-14 Andrew MacLeod <amacleod@redhat.com> 4777 4778 * c-typeck.c: Include only gimplify.h and gimple.h as needed. 4779 47802013-11-14 Diego Novillo <dnovillo@google.com> 4781 4782 * c-decl.c: Include print-tree.h. 4783 Include stor-layout.h. 4784 Include varasm.h. 4785 Include attribs.h. 4786 Include stringpool.h. 4787 * c-lang.c: Include fold-const.h. 4788 * c-parser.c: Include stringpool.h. 4789 Include attribs.h. 4790 Include stor-layout.h. 4791 Include varasm.h. 4792 Include trans-mem.h. 4793 * c-typeck.c: Include stor-layout.h. 4794 Include trans-mem.h. 4795 Include varasm.h. 4796 Include stmt.h. 4797 47982013-11-13 Joseph Myers <joseph@codesourcery.com> 4799 4800 * c-tree.h (c_typespec_keyword): Add cts_auto_type. 4801 * c-decl.c (declspecs_add_type, finish_declspecs): Handle 4802 __auto_type. 4803 * c-parser.c (c_token_starts_typename, c_token_starts_declspecs) 4804 (c_parser_attribute_any_word, c_parser_objc_selector): Handle 4805 RID_AUTO_TYPE. 4806 (c_parser_declspecs): Take argument AUTO_TYPE_OK. 4807 (c_parser_declaration_or_fndef, c_parser_struct_declaration) 4808 (c_parser_declarator, c_parser_direct_declarator_inner) 4809 (c_parser_parameter_declaration, c_parser_type_name): All callers 4810 changed. 4811 (c_parser_declaration_or_fndef): Handle declarations with type 4812 determined from the initializer. 4813 48142013-11-12 Andrew MacLeod <amacleod@redhat.com> 4815 4816 * c-typeck.c: Include gimplify.h. 4817 48182013-11-12 Joseph Myers <joseph@codesourcery.com> 4819 4820 * c-tree.h (struct c_declspecs): Add thread_gnu_p field. 4821 * c-parser.c (c_parser_declspecs): Mention _Thread_local in 4822 comment. 4823 * c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread 4824 or _Thread_local as appropriate in diagnostics. 4825 (build_null_declspecs): Initialize ret->thread_gnu_p. 4826 (declspecs_add_scspec): Handle either __thread or _Thread_local 4827 for RID_THREAD. Diagnose _Thread_local for pre-C11 standards if 4828 pedantic. Do not disallow _Thread_local extern and _Thread_local 4829 static. 4830 48312013-11-07 Joseph Myers <joseph@codesourcery.com> 4832 Andrew MacLeod <amacleod@redhat.com> 4833 4834 * c-aux-info.c (gen_type): Handle atomic qualifier. 4835 * c-decl.c (validate_proto_after_old_defn): Do not remove atomic 4836 qualifiers when compating types. 4837 (shadow_tag_warned): Handle atomic_p in declspecs. 4838 (quals_from_declspecs): Likewise. 4839 (start_decl): Use c_type_promotes_to when promoting argument 4840 types. 4841 (grokdeclarator): Handle _Atomic. 4842 (get_parm_info): Diagnose any qualifier on "void" as only 4843 parameter. 4844 (store_parm_decls_oldstyle): Do not remove atomic qualifiers when 4845 comparing types. Use c_type_promotes_to when promoting argument 4846 types. 4847 (finish_function): Use c_type_promotes_to when promoting argument 4848 types. 4849 (build_null_declspecs): Handle atomic_p in declspecs. 4850 (declspecs_add_qual): Handle RID_ATOMIC. 4851 * c-parser.c (c_token_starts_typename, c_token_is_qualifier) 4852 (c_token_starts_declspecs): Handle RID_ATOMIC. 4853 (c_parser_declspecs): Handle atomic type specifiers and 4854 qualifiers. 4855 (c_parser_typeof_specifier): Remove const and _Atomic qualifiers 4856 from types of expressions with atomic type. 4857 (c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue. 4858 (c_parser_attribute_any_word): Handle RID_ATOMIC. 4859 (c_parser_initializer, c_parser_initelt, c_parser_initval) 4860 (c_parser_statement_after_labels, c_parser_switch_statement) 4861 (c_parser_for_statement, c_parser_expr_no_commas) 4862 (c_parser_conditional_expression, c_parser_binary_expression) 4863 (c_parser_cast_expression, c_parser_unary_expression) 4864 (c_parser_postfix_expression) 4865 (c_parser_postfix_expression_after_primary, c_parser_expression): 4866 Use convert_lvalue_to_rvalue. 4867 (c_parser_expression_conv, c_parser_expr_list): Document 4868 conversion of lvalues to rvalues. Use convert_lvalue_to_rvalue. 4869 (c_parser_objc_synchronized_statement): Use 4870 convert_lvalue_to_rvalue. 4871 (c_parser_objc_selector): Handle RID_ATOMIC. 4872 (c_parser_objc_receiver, c_parser_array_notation): Use 4873 convert_lvalue_to_rvalue. 4874 * c-tree.h (ctsk_typeof): Adjust comment to mention use for 4875 _Atomic (type-name). 4876 (struct c_declspecs): Add atomic_p field. 4877 (convert_lvalue_to_rvalue): Declare. 4878 * c-typeck.c (c_type_promotes_to): Promote atomic types to 4879 corresponding atomic types. 4880 (qualify_type): Don't add _Atomic qualifiers from second argument. 4881 (comp_target_types): Do not allow _Atomic mismatches. 4882 (type_lists_compatible_p): Do not remove atomic qualifiers when 4883 comparing types. 4884 (really_atomic_lvalue, convert_lvalue_to_rvalue) 4885 (build_atomic_assign): New functions. 4886 (build_unary_op): Use build_atomic_assign for atomic increment and 4887 decrement. 4888 (build_conditional_expr): Do not treat _Atomic void as a qualified 4889 version of void. 4890 (build_modify_expr): Use build_atomic_assign for atomic LHS. 4891 (find_anonymous_field_with_type, convert_to_anonymous_field) 4892 (convert_for_assignment): Do not remove atomic qualifiers when 4893 comparing types. 4894 (digest_init): Do not accept initialization of arrays of atomic 4895 elements by string constants. 4896 (build_asm_expr): Use convert_lvalue_to_rvalue. 4897 (build_binary_op): Do not treat _Atomic void as a qualified 4898 version of void. 4899 49002013-11-06 DJ Delorie <dj@redhat.com> 4901 4902 * c-decl.c (locate_old_decl): If a previous conflicting decl is 4903 both explicit and builtin, print the location of the explicit one. 4904 49052013-11-05 Tobias Burnus <burnus@net-b.de> 4906 4907 * c-parser.c (c_parser_omp_for, c_parser_omp_parallel, 4908 c_parser_omp_distribute, c_parser_omp_teams, 4909 c_parser_omp_target, c_parser_omp_declare): Handle 4910 -fopenmp-simd. 4911 49122013-11-03 Marek Polacek <polacek@redhat.com> 4913 4914 * c-decl.c (grokdeclarator): Add VLA instrumentation. 4915 49162013-11-01 Jakub Jelinek <jakub@redhat.com> 4917 4918 * c-typeck.c (c_finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to 4919 check_dup_generic at the end, unless remove is true. 4920 (c_finish_omp_clauses) <case OMP_CLAUSE_REDUCTION>: Add break; after 4921 remove = true;. 4922 (c_finish_omp_clauses) <case OMP_CLAUSE_COPYIN>: Likewise. 4923 49242013-10-31 Jakub Jelinek <jakub@redhat.com> 4925 4926 * c-typeck.c (c_finish_omp_clauses): Diagnose aligned clause 4927 with decl that is not pointer nor array. 4928 49292013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com> 4930 4931 * c-decl.c (finish_function): Added a call for insert_cilk_frame when 4932 a spawning function is found. 4933 * c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define. 4934 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise. 4935 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise. 4936 * c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC 4937 case. 4938 (c_parser_postfix_expression): Added RID_CILK_SPAWN case. 4939 * c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma 4940 expr. 4941 (c_finish_return): Added a check to reject _Cilk_spawn in return 4942 expression. 4943 (build_cilk_spawn): New function. 4944 (build_cilk_sync): Likewise. 4945 * Makefile.in (c-decl.o): Added cilk.h in dependency list. 4946 49472013-10-27 Tobias Burnus <burnus@net-b.de> 4948 4949 PR other/33426 4950 * c-parser.c (c_parser_while_statement, c_parser_while_statement, 4951 c_parser_pragma): Add GCC ivdep support to 'do' and 'while'. 4952 (c_parser_statement_after_labels): Update calls. 4953 49542013-10-24 Tobias Burnus <burnus@net-b.de> 4955 4956 PR other/33426 4957 * c-parser.c (c_parser_pragma, c_parser_for_statement): 4958 Handle PRAGMA_IVDEP. 4959 (c_parser_statement_after_labels): Update call. 4960 49612013-10-24 Marek Polacek <polacek@redhat.com> 4962 4963 * c-parser.c (c_parser_struct_declaration): Add a comment. 4964 (c_parser_declarator): Don't allow _Alignas here. 4965 49662013-10-17 Andrew MacLeod <amacleod@redhat.com> 4967 4968 * c-parser.c: Include omp-low.h. 4969 * c-typeck.c: Likewise. 4970 49712013-10-17 Marek Polacek <polacek@redhat.com> 4972 4973 PR c/58267 4974 * c-parser.c (c_parser_declspecs): Add alignspec_ok parameter. 4975 Document syntax of the array-declarator. 4976 (c_parser_declspecs) <RID_ALIGNAS>: Bail out if alignment specs 4977 are not permitted. 4978 (c_parser_declaration_or_fndef): Adjust c_parser_declspecs call. 4979 (c_parser_struct_declaration): Likewise. 4980 (c_parser_declarator): Likewise. 4981 (c_parser_direct_declarator_inner): Likewise. 4982 (c_parser_parameter_declaration): Likewise. 4983 (c_parser_type_name): Likewise. 4984 49852013-10-11 Jakub Jelinek <jakub@redhat.com> 4986 4987 * c-lang.h (current_omp_declare_target_attribute): New extern 4988 decl. 4989 * c-parser.c: Include c-lang.h. 4990 (struct c_parser): Change tokens to c_token *. 4991 Add tokens_buf field. Change tokens_avail type to unsigned int. 4992 (c_parser_consume_token): If parser->tokens isn't 4993 &parser->tokens_buf[0], increment parser->tokens. 4994 (c_parser_consume_pragma): Likewise. 4995 (enum pragma_context): Add pragma_struct and pragma_param. 4996 (c_parser_external_declaration): Adjust 4997 c_parser_declaration_or_fndef caller. 4998 (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses 4999 argument, if it is non-vNULL vector, call c_finish_omp_declare_simd. 5000 Adjust recursive call. 5001 (c_parser_struct_or_union_specifier): Use pragma_struct instead 5002 of pragma_external. 5003 (c_parser_parameter_declaration): Use pragma_param instead of 5004 pragma_external. 5005 (c_parser_compound_statement_nostart, c_parser_label, 5006 c_parser_for_statement): Adjust 5007 c_parser_declaration_or_fndef callers. 5008 (c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass 5009 it through to c_parser_conditional_expression. 5010 (c_parser_conditional_expression): Add omp_atomic_lhs argument, 5011 pass it through to c_parser_binary_expression. Adjust recursive 5012 call. 5013 (c_parser_binary_expression): Remove prec argument, add 5014 omp_atomic_lhs argument instead. Always start from PREC_NONE, if 5015 omp_atomic_lhs is non-NULL and one of the arguments of toplevel 5016 binop matches it, use build2 instead of parser_build_binary_op. 5017 (c_parser_pragma): Handle PRAGMA_OMP_CANCEL, 5018 PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET, 5019 PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION. 5020 Handle pragma_struct and pragma_param the same as pragma_external. 5021 (c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names. 5022 (c_parser_omp_variable_list): Parse array sections for 5023 OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses. 5024 (c_parser_omp_clause_collapse): Fully fold collapse expression. 5025 (c_parser_omp_clause_reduction): Handle user defined reductions. 5026 (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind, 5027 c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit, 5028 c_parser_omp_clause_aligned, c_parser_omp_clause_linear, 5029 c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen, 5030 c_parser_omp_clause_depend, c_parser_omp_clause_map, 5031 c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule, 5032 c_parser_omp_clause_proc_bind, c_parser_omp_clause_to, 5033 c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions. 5034 (c_parser_omp_all_clauses): Add finish_p argument. Don't call 5035 c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses. 5036 (c_parser_omp_atomic): Parse seq_cst clause, pass true if it is 5037 present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms. 5038 (c_parser_omp_for_loop): Add CODE argument, pass it through 5039 to c_finish_omp_for. Change last argument to cclauses, 5040 and adjust uses to grab parallel clauses from the array of all 5041 the split clauses. Adjust c_parser_binary_expression, 5042 c_parser_declaration_or_fndef and c_finish_omp_for callers. 5043 (omp_split_clauses): New function. 5044 (c_parser_omp_simd): New function. 5045 (c_parser_omp_for): Add p_name, mask and cclauses arguments. 5046 Allow the function to be called also when parsing combined constructs, 5047 and call c_parser_omp_simd when parsing for simd. 5048 (c_parser_omp_sections_scope): If section-sequence doesn't start with 5049 #pragma omp section, require exactly one structured-block instead of 5050 sequence of statements. 5051 (c_parser_omp_sections): Add p_name, mask and cclauses arguments. 5052 Allow the function to be called also when parsing combined constructs. 5053 (c_parser_omp_parallel): Add p_name, mask and cclauses arguments. 5054 Allow the function to be called also when parsing combined 5055 constructs. 5056 (c_parser_omp_taskgroup, c_parser_omp_cancel, 5057 c_parser_omp_cancellation_point, c_parser_omp_distribute, 5058 c_parser_omp_teams, c_parser_omp_target_data, 5059 c_parser_omp_target_update, c_parser_omp_target, 5060 c_parser_omp_declare_simd, c_finish_omp_declare_simd, 5061 c_parser_omp_declare_target, c_parser_omp_end_declare_target, 5062 c_parser_omp_declare_reduction, c_parser_omp_declare): New functions. 5063 (c_parser_omp_construct): Add p_name and mask vars. Handle 5064 PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP, 5065 PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel 5066 and c_parser_omp_sections callers. 5067 (c_parse_file): Initialize tparser.tokens and the_parser->tokens here. 5068 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK, 5069 OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. 5070 (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND. 5071 (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add 5072 OMP_CLAUSE_DEPEND. 5073 (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK, 5074 OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK, 5075 OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK, 5076 OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK, 5077 OMP_DECLARE_SIMD_CLAUSE_MASK): Define. 5078 * c-typeck.c: Include tree-inline.h. 5079 (c_finish_omp_cancel, c_finish_omp_cancellation_point, 5080 handle_omp_array_sections_1, handle_omp_array_sections, 5081 c_clone_omp_udr, c_find_omp_placeholder_r): New functions. 5082 (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and 5083 user defined reductions. 5084 (c_tree_equal): New function. 5085 * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls, 5086 c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal, 5087 c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup, 5088 c_check_omp_declare_reduction_r): New prototypes. 5089 * c-decl.c (current_omp_declare_target_attribute): New variable. 5090 (c_decl_attributes): New function. 5091 (start_decl, start_function): Use it instead of decl_attributes. 5092 (temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id, 5093 c_omp_reduction_decl, c_omp_reduction_lookup, 5094 c_check_omp_declare_reduction_r): New functions. 5095 50962013-09-25 Tom Tromey <tromey@redhat.com> 5097 5098 * Make-lang.in (c/gccspec.o): Remove. 5099 (CFLAGS-c/gccspec.o): New variable. 5100 (cc1-checksum.o, C_TREE_H, c/c-aux-info.o, c/c-convert.o) 5101 (c/c-decl.o, c/c-errors.o, c/c-lang.o, c/c-objc-common.o) 5102 (c/c-parser.o, c/c-typeck.o, c/c-array-notation.o): Remove. 5103 51042013-09-25 Tom Tromey <tromey@redhat.com> 5105 5106 * Make-lang.in (c/gccspec.o): Don't use subshell. 5107 51082013-09-18 Marek Polacek <polacek@redhat.com> 5109 5110 PR sanitize/58443 5111 * c-typeck.c (build_binary_op): Properly honor -fsanitize options. 5112 Remove unnecessary check. 5113 51142013-09-18 Marek Polacek <polacek@redhat.com> 5115 5116 PR sanitizer/58411 5117 * c-typeck.c (build_binary_op): Don't sanitize function if it has the 5118 no_sanitize_undefined attribute. 5119 51202013-09-13 Kai Tietz <ktietz@redhat.com> 5121 5122 PR target/57848 5123 * c-decl.c (c_builtin_function_ext_scope): Remove 5124 wrong assumption that it is never called on prexisting 5125 symbol. 5126 51272013-09-08 Joern Rennecke <joern.rennecke@embecosm.com> 5128 5129 * c-typeck.c (build_binary_op): Use vector_types_compatible_elements_p. 5130 51312013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net> 5132 5133 * c-objc-common.c (c_tree_printer): Tidy. 5134 51352013-08-30 Marek Polacek <polacek@redhat.com> 5136 5137 * c-typeck.c (build_binary_op): Add division by zero and shift 5138 instrumentation. 5139 51402013-08-26 Joern Rennecke <joern.rennecke@embecosm.com> 5141 Joseph Myers <joseph@codesourcery.com> 5142 5143 PR c/35649 5144 * c-typeck.c (c_common_type): Prefer double_type_node over 5145 other REAL_TYPE types with the same precision. 5146 (convert_arguments): Likewise. 5147 51482013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net> 5149 5150 * c-objc-common.c (c_tree_printer): Document the nature of the cast. 5151 (c_initialize_diagnostics): Call a destructor for the early printer. 5152 51532013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 5154 5155 * c-objc-common.c (c_initialize_diagnostics): Simplify C pretty 5156 printer initialization. 5157 51582013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com> 5159 5160 PR c/57490 5161 * c-array-notation.c (fix_conditional_array_notations_1): Added a 5162 check for truth values. 5163 (expand_array_notation_exprs): Added truth values case. Removed an 5164 unwanted else. Added for-loop to walk through subtrees in default 5165 case. 5166 51672013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 5168 5169 * c-objc-common.c (c_initialize_diagnostics): Don't call pp_base. 5170 51712013-07-23 Joseph Myers <joseph@codesourcery.com> 5172 5173 * c-parser.c (struct c_generic_association): Fix typo. 5174 51752013-07-23 Tom Tromey <tromey@redhat.com> 5176 Joseph Myers <joseph@codesourcery.com> 5177 5178 * c-parser.c (struct c_generic_association): New. 5179 (c_generic_association_d): New typedef. 5180 (c_parser_generic_selection): New function. 5181 (c_parser_postfix_expression): Handle RID_GENERIC. 5182 51832013-07-13 Jason Merrill <jason@redhat.com> 5184 5185 PR c++/57793 5186 * c-decl.c (finish_struct): Check for too-large class. 5187 51882013-07-04 Joern Rennecke <joern.rennecke@embecosm.com> 5189 5190 PR c/57821 5191 * c-typeck.c (set_init_index): When folding, check for index overflow. 5192 51932013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> 5194 5195 * c-parser.c (c_parser_array_notation): Removed rejection of array 5196 notations in an array of function pointers. 5197 51982013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com> 5199 5200 * c-array-notation.c (make_triplet_val_inv): New function. 5201 (create_cmp_incr): Likewise. 5202 (create_array_refs): Likewise. 5203 (fix_builtin_array_notation_fn): Replaced all mallocs with tree vec. 5204 Also modularized common parts between functions and called the function. 5205 (build_array_notation_expr): Likewise. 5206 (fix_conditional_array_notations_1): Likewise. 5207 (fix_array_notation_expr): Likewise. 5208 (fix_array_notation_call_expr): Likewise. 5209 52102013-06-18 Marek Polacek <polacek@redhat.com> 5211 5212 PR c/57630 5213 * c-decl.c (check_for_loop_decls): Improve diagnostics messages. 5214 52152013-06-12 Balaji V. Iyer <balaji.v.iyer@intel.com> 5216 5217 * c-array-notation.c (build_array_notation_expr): Reject array notation 5218 mismatch between LHS and RHS even inside a call_expr. Also, removed 5219 a couple while statements that were dead code. 5220 52212013-06-10 Balaji V. Iyer <balaji.v.iyer@intel.com> 5222 5223 * c-array-notation.c (fix_builtin_array_notation_fn): Fully folded 5224 excessive precision expressions in function parameters. Also removed 5225 couple unwanted while statements. 5226 52272013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com> 5228 5229 * c-array-notation.c (expand_array_notation_exprs): Added 5230 ARRAY_NOTATION_REF case. 5231 52322013-06-07 Balaji V. Iyer <balaji.v.iyer@intel.com> 5233 5234 * c-array-notation.c (length_mismatch_in_expr_p): Moved this 5235 function to c-family/array-notation-common.c. 5236 (is_cilkplus_reduce_builtin): Likewise. 5237 (find_rank): Likewise. 5238 (extract_array_notation_exprs): Likewise. 5239 (replace_array_notations): Likewise. 5240 (find_inv_trees): Likewise. 5241 (replace_inv_trees): Likewise. 5242 (contains_array_notation_expr): Likewise. 5243 (find_correct_array_notation_type): Likewise. 5244 (replace_invariant_exprs): Initialized additional_tcodes to NULL. 5245 (struct inv_list): Moved this to c-family/array-notation-common.c. 5246 * c-tree.h (is_cilkplus_builtin_reduce): Remove prototype. 5247 52482013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com> 5249 5250 * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus 5251 reduction functions outside the for-loop. Added a check if the fundecl 5252 is non-NULL. Finally, removed an unwanted if-statement, and made the 5253 body unconditional. 5254 52552013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com> 5256 5257 * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the 5258 condition of the if-statement matches the rank of else-block and then- 5259 block when array notations are used. 5260 * c-parser.c (c_parser_declaration_or_fndef): Expanded array notation 5261 expression after the entire function body is parsed. 5262 (c_parser_expr_no_commas): Delayed creating array notation expressions 5263 to the end of function parsing. 5264 * c-array-notation.c (fix_conditional_array_notations_1): Expanded the 5265 whole if-statement instead of just the condition. 5266 (expand_array_notation_exprs): Added MODIFY_EXPR case. 5267 52682013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com> 5269 5270 PR c/57474 5271 * c-array-notation.c (build_array_notation_expr): Initialized rhs_length 5272 array to NULL_TREE if they are unused. Also added a check for the 5273 field to be NULL before its fields are used in future. 5274 52752013-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 5276 5277 PR bootstrap/57450 5278 * c-array-notation.c (length_mismatch_in_expr_p): Use absu_hwi. 5279 (build_array_notation_expr): Likewise. 5280 52812013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com> 5282 5283 * c-typeck.c (build_array_ref): Added a check to see if array's 5284 index is greater than one. If true, then emit an error. 5285 (build_function_call_vec): Exclude error reporting and checking 5286 for builtin array-notation functions. 5287 (convert_arguments): Likewise. 5288 (c_finish_return): Added a check for array notations as a return 5289 expression. If true, then emit an error. 5290 (c_finish_loop): Added a check for array notations in a loop 5291 condition. If true then emit an error. 5292 (lvalue_p): Added a ARRAY_NOTATION_REF case. 5293 (build_binary_op): Added a check for array notation expr inside 5294 op1 and op0. If present, we call another function to find correct 5295 type. 5296 * Make-lang.in (C_AND_OBJC_OBJS): Added c-array-notation.o. 5297 * c-parser.c (c_parser_compound_statement): Check if array 5298 notation code is used in tree, if so, then transform them into 5299 appropriate C code. 5300 (c_parser_expr_no_commas): Check if array notation is used in LHS 5301 or RHS, if so, then build array notation expression instead of 5302 regular modify. 5303 (c_parser_postfix_expression_after_primary): Added a check for 5304 colon(s) after square braces, if so then handle it like an array 5305 notation. Also, break up array notations in unary op if found. 5306 (c_parser_direct_declarator_inner): Added a check for array 5307 notation. 5308 (c_parser_compound_statement): Added a check for array notation in 5309 a stmt. If one is present, then expand array notation expr. 5310 (c_parser_if_statement): Likewise. 5311 (c_parser_switch_statement): Added a check for array notations in 5312 a switch statement's condition. If true, then output an error. 5313 (c_parser_while_statement): Similarly, but for a while. 5314 (c_parser_do_statement): Similarly, but for a do-while. 5315 (c_parser_for_statement): Similarly, but for a for-loop. 5316 (c_parser_unary_expression): Check if array notation is used in a 5317 pre-increment or pre-decrement expression. If true, then expand 5318 them. 5319 (c_parser_array_notation): New function. 5320 * c-array-notation.c: New file. 5321 * c-tree.h (is_cilkplus_reduce_builtin): Protoize. 5322 53232013-05-23 Mike Stump <mikestump@comcast.net> 5324 5325 * c-typeck.c (convert_for_assignment): Handle references to memory 5326 spaces better. 5327 53282013-05-16 Jason Merrill <jason@redhat.com> 5329 5330 * Make-lang.in (cc1$(exeext)): Use link mutex. 5331 53322013-04-24 Paolo Carlini <paolo.carlini@oracle.com> 5333 5334 * c-typeck.c (pointer_diff): Change -Wpointer-arith pedwarns 5335 to simply use OPT_Wpointer_arith. 5336 (build_unary_op): Likewise. 5337 53382013-04-03 Jakub Jelinek <jakub@redhat.com> 5339 5340 PR c/19449 5341 * c-parser.c (c_parser_get_builtin_args): Add choose_expr_p 5342 argument. If set, or it temporarily for parsing of the first 5343 argument into force_folding_builtin_constant_p. 5344 (c_parser_postfix_expression): Adjust callers. 5345 53462013-03-21 Richard Biener <rguenther@suse.de> 5347 5348 * c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P 5349 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly. 5350 53512013-02-12 Marek Polacek <polacek@redhat.com> 5352 5353 PR c/44938 5354 * c-parser.c (c_parser_postfix_expression_after_primary): Initialize 5355 origtypes to NULL. 5356 53572013-01-24 Jakub Jelinek <jakub@redhat.com> 5358 5359 PR c/56078 5360 * c-typeck.c (set_nonincremental_init_from_string): If 5361 constructor_max_index is NULL, treat it as if tree_int_cst_lt 5362 returned false. 5363 (process_init_element): Likewise. 5364 53652012-12-20 Jakub Jelinek <jakub@redhat.com> 5366 5367 PR c++/55619 5368 * c-parser.c (c_parser_asm_operands): Remove CONVERT_P 5369 argument, don't call default_function_array_conversion 5370 nor c_fully_fold here. 5371 (c_parser_asm_statement): Adjust callers. 5372 * c-typeck.c (build_asm_expr): Call c_fully_fold on inputs 5373 and outputs here, and call default_function_array_conversion 5374 on inputs that don't need to be addressable. 5375 53762012-12-18 Jakub Jelinek <jakub@redhat.com> 5377 5378 PR c/39464 5379 * c-typeck.c (convert_for_assignment): For -Wpointer-sign 5380 warning require that both c_common_unsigned_type as well as 5381 c_common_signed_type is the same for both mvl and mvr types. 5382 53832012-11-16 Diego Novillo <dnovillo@google.com> 5384 5385 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 5386 5387 * c-common.c: Use new vec API in vec.h. 5388 * c-common.h: Likewise. 5389 * c-gimplify.c: Likewise. 5390 * c-pragma.c: Likewise. 5391 * c-pretty-print.c: Likewise. 5392 * c-pretty-print.h: Likewise. 5393 * c-semantics.c: Likewise. 5394 * c-decl.c: Likewise. 5395 * c-parser.c: Likewise. 5396 * c-tree.h: Likewise. 5397 * c-typeck.c: Likewise. 5398 53992012-10-29 Jonathan Wakely <jwakely.gcc@gmail.com> 5400 5401 PR c++/54930 5402 * c-typeck.c (c_finish_return): Use OPT_Wreturn_local_addr. 5403 54042012-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org> 5405 5406 PR c/53066 5407 * c-decl.c (warn_if_shadowing): Do not warn if a variable 5408 shadows a function, unless the variable is a function or a 5409 pointer-to-function. 5410 54112012-10-12 Jakub Jelinek <jakub@redhat.com> 5412 5413 PR c/54381 5414 * c-parser.c (struct c_tree_loc_pair): Removed. 5415 (c_parser_expr_list): Remove struct c_tree_loc_pair * argument, 5416 add location_t * and tree * arguments, fill in array of 3 5417 sizeof_arg trees and corresponding locs. 5418 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust 5419 c_parser_expr_list callers. 5420 (c_parser_postfix_expression_after_primary): Likewise. Pass 5421 array of 3 sizeof_arg trees and locs (corresponding to first 5422 3 arguments) to sizeof_pointer_memaccess_warning. 5423 54242012-10-09 Lawrence Crowl <crowl@google.com> 5425 5426 * Make-lang.in (c-decl.o): Add dependence on hash-table.h. 5427 * c-decl.c (detect_field_duplicates_hash): Change to new type-safe 5428 hash table. 5429 54302012-10-09 Paolo Carlini <paolo.carlini@oracle.com> 5431 5432 PR c++/54194 5433 * c-typeck.c (parser_build_binary_op): Update warn_about_parentheses 5434 call. 5435 54362012-10-09 Marc Glisse <marc.glisse@inria.fr> 5437 5438 PR c++/54427 5439 * c-typeck.c: Include c-common.h. 5440 (enum stv_conv): Moved to c-common.h. 5441 (scalar_to_vector): Moved to c-common.c. 5442 (build_binary_op): Adapt to scalar_to_vector's new prototype. 5443 * Make-lang.in: c-typeck.c depends on c-common.h. 5444 54452012-10-04 Arnaud Charlet <charlet@adacore.com> 5446 5447 * c-decl.c (c_write_global_declarations): Fix handling of 5448 -fdump-ada-spec*. 5449 54502012-09-30 Sharad Singhai <singhai@google.com> 5451 5452 * c-decl.c (c_write_global_declarations): Use a different method 5453 to determine if the dump has ben initialized. 5454 54552012-09-14 Joseph Myers <joseph@codesourcery.com> 5456 5457 PR c/54552 5458 * c-typeck.c (c_cast_expr): When casting to a type requiring 5459 C_MAYBE_CONST_EXPR to be created, pass the inner expression to 5460 c_fully_fold first. 5461 54622012-09-14 Joseph Myers <joseph@codesourcery.com> 5463 5464 PR c/54103 5465 * c-typeck.c (build_unary_op): Pass original argument of 5466 TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove 5467 any C_MAYBE_CONST_EXPR, if it has integer operands. 5468 (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR, 5469 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR 5470 to c_objc_common_truthvalue_conversion, then remove any 5471 C_MAYBE_CONST_EXPR, if they have integer operands. Use 5472 c_objc_common_truthvalue_conversion not 5473 c_common_truthvalue_conversion. 5474 (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and 5475 call note_integer_operands for arguments with integer operands 5476 that are not integer constants. 5477 54782012-09-13 Jakub Jelinek <jakub@redhat.com> 5479 5480 PR c/54559 5481 * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or 5482 COMPLEX_TYPE with in_late_binary_op set temporarily to true. 5483 54842012-08-31 Jakub Jelinek <jakub@redhat.com> 5485 5486 PR c/54428 5487 * c-convert.c (convert): Don't call fold_convert_loc if 5488 TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e 5489 is a COMPLEX_EXPR. Remove TYPE_MAIN_VARIANT check from 5490 COMPLEX_TYPE -> COMPLEX_TYPE conversion. 5491 54922012-08-24 Jakub Jelinek <jakub@redhat.com> 5493 5494 PR c/54355 5495 * c-decl.c (c_parser_label): Pass true as nested and fix up comments 5496 for nested and empty_ok arguments in the call to 5497 c_parser_declaration_or_fndef. 5498 54992012-08-17 Jakub Jelinek <jakub@redhat.com> 5500 5501 * c-tree.h (c_last_sizeof_arg): Declare. 5502 * c-parser.c (struct c_tree_loc_pair): New type. 5503 (c_parser_expr_list): Add sizeof_arg argument. Fill it in if 5504 non-NULL. 5505 (c_parser_attributes, c_parser_objc_keywordexpr): Adjust callers. 5506 (c_parser_postfix_expression_after_primary): Likewise. Call 5507 sizeof_pointer_memaccess_warning if needed. 5508 (sizeof_ptr_memacc_comptypes): New function. 5509 * c-typeck.c (c_last_sizeof_arg): New global variable. 5510 (c_expr_sizeof_expr, c_expr_sizeof_type): Initialize it. 5511 55122012-07-24 Uros Bizjak <ubizjak@gmail.com> 5513 5514 * c-lang.h (lang_decl): Add variable_size GTY option. 5515 55162012-07-16 Steven Bosscher <steven@gcc.gnu.org> 5517 5518 * c-decl.c: Include dumpfile.h instead of tree-dump.h. 5519 * Make-lang.in: Fix dependencies. 5520 55212012-06-29 Steven Bosscher <steven@gcc.gnu.org> 5522 5523 * Make-lang.in: New file, rules migrated from gcc/Makefile.in 5524 and add language Makefile hooks. 5525 * config-lang.in: New file. 5526 * c-config-lang.in: Moved from gcc/config-lang.in to here, and 5527 add the required "normal" config-lang.in rules. 5528 * c-lang.h: Moved from gcc/ to here. 5529 * c-tree.h: Likewise. 5530 * c-objc-common.c: Likewise. 5531 * c-objc-common.h: Likewise. 5532 * c-typeck.c: Likewise. 5533 * c-convert.c: Likewise. 5534 * c-lang.c: Likewise. 5535 * c-aux-info.c: Likewise. 5536 * c-errors.c: Likewise. 5537 * gccspec.c: Likewise. 5538 * c-decl.c: Likewise. Include gt-c-c-decl.h, not gt-c-decl.h. 5539 * c-parser.c: Likewise. Include gt-c-c-parser.h, not gt-c-parser.h. 5540 5541Copyright (C) 2012-2018 Free Software Foundation, Inc. 5542 5543Copying and distribution of this file, with or without modification, 5544are permitted in any medium without royalty provided the copyright 5545notice and this notice are preserved. 5546