aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
AgeCommit message (Collapse)AuthorFilesLines
2014-05-08re PR c/61077 (_Atomic in the return type or argument types of main not ↵Marek Polacek2-0/+9
diagnosed) PR c/61077 c-family/ * c-common.c (check_main_parameter_types): Warn for _Atomic-qualified parameter type of main. c/ * c-decl.c (start_function): Warn for _Atomic-qualified return type of main. testsuite/ * gcc.dg/pr61077.c: New test. From-SVN: r210229
2014-05-06Update ChangeLogs for wide-int work.Kenneth Zadeck1-0/+11
Co-Authored-By: Kyrylo Tkachov <kyrylo.tkachov@arm.com> Co-Authored-By: Mike Stump <mikestump@comcast.net> Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com> From-SVN: r210116
2014-05-06Merge in wide-int.Kenneth Zadeck3-26/+27
From-SVN: r210113
2014-05-02re PR c/25801 (bad diagnostic for increment/decrement of pointer to ↵Marek Polacek2-12/+19
incomplete array) PR c/25801 * c-typeck.c (c_size_in_bytes): Update comment. Don't call error. Return size_one_node when the type is not complete. (pointer_diff): Remove comment. (build_unary_op): Improve error messages. * gcc.dg/pr25801.c: New test. From-SVN: r210013
2014-05-02c-typeck.c (c_finish_return): Separate warning_at calls.Marek Polacek2-4/+12
c/ * c-typeck.c (c_finish_return): Separate warning_at calls. cp/ * typeck.c (maybe_warn_about_returning_address_of_local): Separate warning_at calls. From-SVN: r210012
2014-05-02c-tree.h (error_init): Remove declaration.Marek Polacek3-68/+75
* c-tree.h (error_init): Remove declaration. (pedwarn_init): Likewise. * c-typeck.c (error_init): Make static and move above. (pedwarn_init): Likewise. (warning_init): Move above. (maybe_warn_string_init): Likewise. From-SVN: r210001
2014-05-01revert: c-parser.c (c_parser_sizeof_expression): Reorganize slightly to ↵Jeff Law2-20/+24
avoid goto. 2014-05-01 Jeff Law <law@redhat.com> Revert: 2014-04-24 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> * c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto. From-SVN: r209999
2014-05-02re PR c/60784 (Spurious -Wmissing-field-initializers warning for anonymous ↵Marek Polacek2-0/+9
structure) PR c/60784 * c-typeck.c (push_init_level): Set constructor_designated to p->designated for structures. * gcc.dg/pr60784.c: New test. From-SVN: r209998
2014-05-01re PR c/60915 (confusing diagnostic from attribute on function definition)Marek Polacek2-1/+19
PR c/60915 * c-parser.c (c_parser_declaration_or_fndef): Give better error if function-definition has an attribute after the declarator. * gcc.dg/pr60915.c: New test. From-SVN: r209975
2014-05-01re PR c/60257 (Incorrect column number and confusing message in -Woverride-init)Marek Polacek2-23/+43
PR c/60257 * c-typeck.c (warning_init): Add location_t parameter. Call warning_at instead of warning. (push_init_level): Pass input_location to warning_init. (add_pending_init): Add location_t parameter. Pass loc to warning_init. (set_nonincremental_init): Pass input_location to add_pending_init. (set_nonincremental_init_from_string): Likewise. (output_init_element): Pass loc to warning_init and to add_pending_init. * gcc.dg/pr60257.c: New test. From-SVN: r209974
2014-05-01re PR c/43395 (Gcc warns label as local variable)Marek Polacek2-1/+8
PR c/43395 c/ * c-typeck.c (c_finish_return): Distinguish between label and variable when warning about returning local address. cp/ * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish between label and variable when warning about returning local address. testsuite/ * c-c++-common/pr43395.c: New test. From-SVN: r209973
2014-05-01re PR c/29467 (-ansi -pedantic accepts _Bool without diagnostic)Marek Polacek2-0/+9
PR c/29467 * c-decl.c (declspecs_add_type): Pedwarn if boolean types are used in C89 mode. * gcc.dg/pr29467.c: New test. * gcc.dg/declspec-13.c: Renumber some dg-warnings. Add dg-warnings about boolean types. * gfortran.dg/bind_c_usage_24_c.c: Include <stdbool.h>. Change _Bool to bool. * gfortran.dg/c_f_pointer_logical_driver.c: Change _Bool to bool. From-SVN: r209971
2014-05-01re PR c/43245 (add option to control "discarding qualifiers" warnings)Marek Polacek2-4/+10
PR c/43245 * doc/invoke.texi: Document -Wdiscarded-qualifiers. c-family/ * c.opt (Wdiscarded-qualifiers): Add. c/ * c-typeck.c (convert_for_assignment): Pass OPT_Wdiscarded_qualifiers instead of 0 to WARN_FOR_QUALIFIERS. testsuite/ * gcc.dg/pr43245.c: New test. From-SVN: r209970
2014-05-01re PR c/56989 (wrong location in error message)Marek Polacek2-1/+8
PR c/56989 * c-typeck.c (default_conversion): Use better location for error call. * gcc.dg/pr56989.c: New test. From-SVN: r209969
2014-04-30gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.Marek Polacek2-2/+9
* gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE. * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE. * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE. * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero. c-family/ * c-ubsan.c (ubsan_instrument_division): Handle REAL_TYPEs. Perform INT_MIN / -1 sanitization only for integer types. c/ * c-typeck.c (build_binary_op): Call ubsan_instrument_division also when SANITIZE_FLOAT_DIVIDE is on. cp/ * typeck.c (cp_build_binary_op): Call ubsan_instrument_division even when SANITIZE_FLOAT_DIVIDE is on. Set doing_div_or_mod even for non-integer types. testsuite/ * c-c++-common/ubsan/div-by-zero-5.c: Fix formatting. * c-c++-common/ubsan/float-div-by-zero-1.c: New test. From-SVN: r209927
2014-04-30re PR c/60139 (Imprecise column number for -pedantic on non-computable ↵Marek Polacek2-2/+8
initializer element) PR c/60139 * c-typeck.c (output_init_element): Pass OPT_Wpedantic to pedwarn and pedwarn_init. Use loc insted of input_location. * gcc.dg/pr60139.c: New test. From-SVN: r209926
2014-04-30re PR c/60351 (Incorrect column number for warning on "right shift count is ↵Marek Polacek2-4/+12
negative") PR c/60351 * c-typeck.c (build_binary_op): Use location when warning about shift count. * gcc.dg/pr60351.c: New test. From-SVN: r209925
2014-04-25re PR c/18079 (Contradicting function attributes (always_inline vs noinline))Marek Polacek2-10/+36
PR c/18079 c/ * c-decl.c (diagnose_mismatched_decls): Warn for mismatched always_inline/noinline and hot/cold attributes. c-family/ * c-common.c (handle_noinline_attribute): Warn if the attribute conflicts with always_inline attribute. (handle_always_inline_attribute): Warn if the attribute conflicts with noinline attribute. testsuite/ * gcc.dg/pr18079.c: New test. * gcc.dg/pr18079-2.c: New test. From-SVN: r209796
2014-04-25re PR c/60114 (Incorrect column number for -pedantic and -Wconversion)Marek Polacek4-37/+60
PR c/60114 c/ * c-parser.c (c_parser_initelt): Pass input_location to process_init_element. (c_parser_initval): Pass loc to process_init_element. * c-tree.h (process_init_element): Adjust declaration. * c-typeck.c (push_init_level): Pass input_location to process_init_element. (pop_init_level): Likewise. (set_designator): Likewise. (output_init_element): Add location_t parameter. Pass loc to digest_init. (output_pending_init_elements): Pass input_location to output_init_element. (process_init_element): Add location_t parameter. Pass loc to output_init_element. testsuite/ * gcc.dg/pr60114.c: New test. From-SVN: r209794
2014-04-24c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto.Prathamesh Kulkarni2-16/+20
* c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto. From-SVN: r209765
2014-04-24c-parser.c (c_parser_omp_atomic): Allow seq_cst before atomic-clause...Jakub Jelinek2-5/+31
gcc/c/ * c-parser.c (c_parser_omp_atomic): Allow seq_cst before atomic-clause, allow comma in between atomic-clause and seq_cst. gcc/cp/ * parser.c (cp_parser_omp_atomic): Allow seq_cst before atomic-clause, allow comma in between atomic-clause and seq_cst. gcc/testsuite/ * c-c++-common/gomp/atomic-16.c: Remove all dg-error directives. Replace load with read and store with write. libgomp/ * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and atomic type clauses in any order and optional comma in between. * testsuite/libgomp.c++/atomic-15.C: Likewise. * testsuite/libgomp.c/atomic-17.c: Likewise. From-SVN: r209762
2014-04-22re PR c/59073 (ICE with missing increment in OpenMP for-loop)Jakub Jelinek2-1/+9
PR c/59073 c/ * c-parser.c (c_parser_omp_parallel): If c_parser_omp_for fails, don't set OM_PARALLEL_COMBINED and return NULL. cp/ * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for fails, don't set OM_PARALLEL_COMBINED and return NULL. testsuite/ * c-c++-common/gomp/pr59073.c: New test. From-SVN: r209646
2014-04-12re PR middle-end/60469 (simple cilk plus program ICEs)Igor Zamyatin2-12/+19
gcc/c/ PR middle-end/60469 * c-array-notation.c (fix_builtin_array_notation_fn): Use create_tmp_var instead build_decl for creating temps. (build_array_notation_expr): Likewise. (fix_conditional_array_notations_1): Likewise. (fix_array_notation_expr): Likewise. (fix_array_notation_call_expr): Likewise. gcc/testsuite/ PR middle-end/60469 * c-c++-common/cilk-plus/CK/pr60469.c: New test. From-SVN: r209336
2014-03-28re PR c++/60689 (Bogus error with atomic::exchange)Jakub Jelinek5-17/+49
PR c++/60689 * c-tree.h (c_build_function_call_vec): New prototype. * c-typeck.c (build_function_call_vec): Don't call resolve_overloaded_builtin here. (c_build_function_call_vec): New wrapper function around build_function_call_vec. Call resolve_overloaded_builtin here. (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign): Call c_build_function_call_vec instead of build_function_call_vec. * c-parser.c (c_parser_postfix_expression_after_primary): Likewise. * c-decl.c (finish_decl): Likewise. * c-common.c (add_atomic_size_parameter): When creating new params vector, push the size argument first. * c-c++-common/pr60689.c: New test. From-SVN: r208912
2014-03-18re PR c/55383 (-Wcast-qual reports incorrect message)Manuel López-Ibáñez2-1/+6
2014-03-18 Manuel López-Ibáñez <manu@gcc.gnu.org> PR c/55383 c/ * c-typeck.c: Use correct format string in cast-qual warning testsuite/ * c-c++-common/Wcast-qual-1.c: More precise match text. From-SVN: r208661
2014-03-07The error_mark_node is not an OpenMP mappable type.Thomas Schwinge3-5/+11
gcc/ * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not an OpenMP mappable type. gcc/c/ * c-decl.c (c_decl_attributes): Use lang_hooks.types.omp_mappable_type. * c-typeck.c (c_finish_omp_clauses): Likewise. gcc/testsuite/ * c-c++-common/gomp/map-1.c: Extend. From-SVN: r208394
2014-03-06re PR c/60197 (ICE with _Cilk_spawn in expression)Marek Polacek2-1/+7
PR c/60197 c-family/ * cilk.c (contains_cilk_spawn_stmt): New function. (contains_cilk_spawn_stmt_walker): Likewise. (recognize_spawn): Give error on invalid use of _Cilk_spawn. * c-common.h (contains_cilk_spawn_stmt): Add declaration. c/ * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead of checking tree code. cp/ * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead of checking tree code. testsuite/ * c-c++-common/cilk-plus/CK/pr60197.c: New test. * c-c++-common/cilk-plus/CK/pr60197-2.c: New test. From-SVN: r208382
2014-02-19c-parser.c (c_parser_declspecs): Replace call to error by error_at.Prathamesh Kulkarni2-2/+7
* c-parser.c (c_parser_declspecs): Replace call to error by error_at. (c_parser_parameter_declaration): Likewise. From-SVN: r207916
2014-02-19re PR c/60195 (Strange warnings using atomic types)Marek Polacek2-1/+17
PR c/60195 c/ * c-typeck.c (convert_lvalue_to_rvalue): Set TREE_NO_WARNING on tmp. Call mark_exp_read on exp.value. (build_atomic_assign): Set TREE_NO_WARNING on val and old. Set TREE_ADDRESSABLE on old instead of val. (emit_side_effect_warnings): Warn only if RHS has !TREE_NO_WARNING. testsuite/ * gcc.dg/pr60195.c: New test. From-SVN: r207873
2014-02-07c-parser.c (c_parser_get_builtin_args): Replace calls to C_EXPR_APPEND by ↵Prathamesh Kulkarni3-11/+8
vec_safe_push. * c-parser.c (c_parser_get_builtin_args): Replace calls to C_EXPR_APPEND by vec_safe_push. * c-tree.h (C_EXPR_APPEND): Remove. From-SVN: r207614
2014-01-31re PR c/59963 (Wrong column number for warning -Woverflow)Marek Polacek4-36/+74
PR c/59963 c-family/ * c-common.c (add_atomic_size_parameter): Pass vNULL to build_function_call_vec. (resolve_overloaded_builtin): Likewise. * c-common.h (build_function_call_vec): Adjust declaration. cp/ * typeck.c (build_function_call_vec): Add dummy arg_loc parameter. c/ * c-typeck.c (convert_lvalue_to_rvalue): Pass vNULL to build_function_call_vec. (build_function_call): Likewise. (build_atomic_assign): Likewise. (build_function_call_vec): Add arg_loc parameter. Use it. (convert_arguments): Likewise. (convert_for_assignment): Rename rhs_loc to expr_loc. * c-parser.c (c_parser_attributes): Pass NULL to c_parser_expr_list. (c_parser_objc_keywordexpr): Likewise. (c_parser_postfix_expression_after_primary): Call build_function_call_vec with expr_loc rather than op_loc. Call c_parser_expr_list to fill arg_loc. Pass arg_loc to build_function_call_vec. (c_parser_expr_list): Add locations parameter. Fill it with locations of function arguments. * c-decl.c (finish_decl): Pass vNULL to build_function_call_vec. objc/ * objc-next-runtime-abi-02.c (build_throw_stmt): Pass vNULL to build_function_call_vec. (finish_catch): Likewise. (next_runtime_abi_02_get_class_reference): Likewise. * objc-next-runtime-abi-01.c (build_objc_method_call): Pass vNULL to build_function_call_vec. (build_throw_stmt): Likewise. * objc-gnu-runtime-abi-01.c: (build_objc_method_call): Pass vNULL to build_function_call_vec. (build_throw_stmt): Likewise. testsuite/ * gcc.dg/pr59940.c (g): Adjust dg-warning. (y): Adjust dg-error. * gcc.dg/cast-function-1.c (bar): Adjust dg-warnings. * gcc.dg/pr59963-1.c: New test. * gcc.dg/pr59963-2.c: New test. * gcc.dg/pr59963-3.c: New test. From-SVN: r207335
2014-01-30re PR c/59940 (Imprecise column number for -Wconversion)Marek Polacek2-47/+71
PR c/59940 c-family/ * c-common.h (unsafe_conversion_p): Adjust declaration. (warnings_for_convert_and_check): Likewise. (convert_and_check): Likewise. * c-common.c (unsafe_conversion_p): Add location parameter. Call expansion_point_location_if_in_system_header on it. (warnings_for_convert_and_check): Add location parameter. Call expansion_point_location_if_in_system_header on it. Use it. (convert_and_check): Add location parameter. Use it. (conversion_warning): Likewise. (c_add_case_label): Adjust convert_and_check calls. (scalar_to_vector): Adjust unsafe_conversion_p calls. cp/ * typeck.c (build_ptrmemfunc1): Call convert_and_check with input_location. * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check with input_location. * call.c (build_conditional_expr_1): Call unsafe_conversion_p with loc parameter. c/ * c-typeck.c (build_function_call_vec): Use loc parameter. (convert_arguments): Add location parameter. Use it. (ep_convert_and_check): Likewise. (build_atomic_assign): Adjust convert_for_assignment call. (build_modify_expr): Likewise. (digest_init): Likewise. (c_finish_return): Likewise. (build_conditional_expr): Adjust ep_convert_and_check calls. (convert_for_assignment): Add rhs_loc parameter. Use it. (build_binary_op): Adjust convert_and_check and ep_convert_and_check calls. testsuite/ * gcc.dg/pr59940.c: New test. * gcc.dg/pr35635.c (func3): Move dg-warning. From-SVN: r207309
2014-01-30re PR c/59905 (Unfriendly abort when calling a fucntion via a function ↵Richard Biener2-39/+13
pointer cast) 2014-01-30 Richard Biener <rguenther@suse.de> PR c/59905 * c-typeck.c (build_function_call_vec): Do not replace calls to a function via an incompatible type with a runtime abort. * gcc.dg/cast-function-1.c: Adjust to survive DCE. * gcc.dg/call-diag-2.c: Remove expected warnings about calling abort. * gcc.dg/invalid-call-1.c: Likewise. From-SVN: r207300
2014-01-24Replace flag_enable_cilkplus with flag_cilkplus.Balaji V. Iyer3-35/+64
gcc/ChangeLog +2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to + flag_cilkplus. + * builtins.def: Likewise. + * cilk.h (fn_contains_cilk_spawn_p): Likewise. + * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise. + * ira.c (ira_setup_eliminable_regset): Likewise. + * omp-low.c (gate_expand_omp): Likewise. + (execute_lower_omp): Likewise. + (diagnose_sb_0): Likewise. + (gate_diagnose_omp_blocks): Likewise. + (simd_clone_clauses_extract): Likewise. + (gate): Likewise. + gcc/c-family/ChangeLog +2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-common.c (c_define_builtins): Replaced flag_enable_cilkplus with + flag_cilkplus. + * c-pragma.c (init_pragma): Likewise. + * c.opt: Likewise. + gcc/c/ChangeLog +2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-parser.c (c_parser_declaration_or_fndef): Replaced + flag_enable_cilkplus with flag_cilkplus. + (c_parser_direct_declarator_inner): Likewise. + (c_parser_attribute_any_word): Likewise. + (c_parser_attributes): Likewise. + (c_parser_compound_statement): Likewise. + (c_parser_statement_after_labels): Likewise. + (c_parser_if_statement): Likewise. + (c_parser_switch_statement): Likewise. + (c_parser_do_statement): Likewise. + (c_parser_for_statement): Likewise. + (c_parser_unary_expression): Likewise. + (c_parser_postfix_expression): Likewise. + (c_parser_postfix_expression_after_primary): Likewise. + (c_parser_postfix_expression_after_primary): Likewise. + (c_parser_omp_clause_name): Likewise. + (c_finish_omp_declare_simd): Likewise. + (c_parser_cilk_verify_simd): Likewise. + * c-typeck.c (build_array_ref): Likewise. + (build_function_call_vec): Likewise. + (convert_arguments): Likewise. + (build_compound_expr): Likewise. + (c_finish_return): Likewise. + (c_finish_if_stmt): Likewise. + (c_finish_loop): Likewise. + (build_binary_op): Likewise. + gcc/lto/ChangeLog +2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * lto-lang.c (lto_init): Replaced flag_enable_cilkplus with + flag_cilkplus. + From-SVN: r207064
2014-01-23re PR c/59846 (Imprecise column number for -Wtype-limits)Marek Polacek2-4/+12
PR c/59846 c-family/ * c-common.c (shorten_compare): Add location_t parameter. * c-common.h (shorten_binary_op): Adjust declaration. cp/ * typeck.c (cp_build_binary_op): Pass location to shorten_compare. c/ * c-typeck.c (parser_build_binary_op): Use location instead of input_location. (build_binary_op): Pass location to shorten_compare. testsuite/ * gcc.dg/pr59846.c: New test. From-SVN: r207008
2014-01-23re PR c/58346 (ICE with SIGFPE at -O1 and above on x86_64-linux-gnu ↵Marek Polacek2-0/+9
(affecting trunk, 4.8, 4.7, and 4.6)) PR c/58346 c-family/ * c-common.c (pointer_to_zero_sized_aggr_p): New function. * c-common.h: Declare it. cp/ * typeck.c (pointer_diff): Give an error on arithmetic on pointer to an empty aggregate. c/ * c-typeck.c (pointer_diff): Give an error on arithmetic on pointer to an empty aggregate. testsuite/ * c-c++-common/pr58346-1.c: New test. * c-c++-common/pr58346-2.c: New test. * c-c++-common/pr58346-3.c: New test. From-SVN: r207004
2014-01-23re PR c/59871 (No unused value warning for comma expression)Marek Polacek2-0/+41
PR c/59871 c/ * c-typeck.c (build_compound_expr): Warn even for right-hand operand of a comma expression. (emit_side_effect_warnings): Likewise. libdecnumber/ * decNumberLocal.h (UBFROMUS, UBFROMUI): Remove last argument. testsuite/ * gcc.dg/20020220-2.c: Adjust dg-warning message. * gcc.dg/pr59871.c: New test. From-SVN: r207002
2014-01-23re PR c/59825 (Many cilkplus test failures)Balaji V. Iyer2-52/+61
Fix for PR c/59825. 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com> PR c/59825 * c-array-notation.c (expand_array_notation_exprs): Rewrote this function to use walk_tree and moved a lot of its functionality to expand_array_notations. (expand_array_notations): New function. From-SVN: r206991
2014-01-23Added support for Cilk Plus SIMD-enabled functions for C++.Balaji V. Iyer2-1/+7
gcc/c/c-parser.c 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function" attribute an attribute without value. gcc/cp/ChangeLog 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com> * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled see if there is an attribute after function decl. If so, then parse them now. (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD enabled function late parsing. (cp_parser_gnu_attribute_list): Parse all the tokens for the vector attribute for a SIMD-enabled function. (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when the function is used by SIMD-enabled function (indicated by NULL pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK, PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH (cp_parser_cilk_simd_vectorlength): Modified this function to handle vectorlength clause in SIMD-enabled function and #pragma SIMD's vectorlength clause. Added a new bool parameter to differentiate between the two. (cp_parser_cilk_simd_fn_vector_attrs): New function. (is_cilkplus_vector_p): Likewise. (cp_parser_late_parsing_elem_fn_info): Likewise. (cp_parser_omp_clause_name): Added a check for "mask", "nomask" and "vectorlength" clauses when Cilk Plus is enabled. (cp_parser_omp_clause_linear): Added a new parameter of type bool and emit a sorry message when step size is a parameter. * parser.h (cp_parser::cilk_simd_fn_info): New field. * decl.c (grokfndecl): Added flag_enable_cilkplus along with flag_openmp. * pt.c (apply_late_template_attributes): Likewise. testsuite/ChangeLog 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com> * g++.dg/cilk-plus/cilk-plus.exp: Called the C/C++ common tests for SIMD enabled function. * g++.dg/cilk-plus/ef_test.C: New test. * c-c++-common/cilk-plus/ef_error3.c: Made certain messages C specific and added C++ ones. * c-c++-common/cilk-plus/vlength_errors.c: Added new dg-error tags to differenciate C error messages from C++ ones. From-SVN: r206975
2014-01-23re PR middle-end/58809 (ICE with complex variable in OpenMP reduction clause)Jakub Jelinek2-3/+18
PR middle-end/58809 * c-typeck.c (c_finish_omp_clause): Reject MIN_EXPR, MAX_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs. * semantics.c (finish_omp_reduction_clause): Reject BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs. * c-c++-common/gomp/pr58809.c: New test. From-SVN: r206962
2014-01-22re PR c/59891 (ICE on invalid code (with div-by-zero) at all optimization ↵Marek Polacek2-2/+10
levels on x86_64-linux-gnu) PR c/59891 c/ * c-typeck.c (build_conditional_expr): Call c_fully_fold instead of remove_c_maybe_const_expr on op1 and op2. testsuite/ * gcc.dg/torture/pr59891.c: New test. From-SVN: r206944
2014-01-15re PR c/58943 (wrong calculation of indirect structure member arithmetic via ↵Jakub Jelinek2-4/+24
function call) PR c/58943 * c-typeck.c (build_modify_expr): For lhs op= rhs, if rhs has side effects, preevaluate rhs using SAVE_EXPR first. * c-omp.c (c_finish_omp_atomic): Set in_late_binary_op around build_modify_expr with non-NOP_EXPR opcode. Handle return from it being COMPOUND_EXPR. (c_finish_omp_for): Handle incr being COMPOUND_EXPR with first operand a SAVE_EXPR and second MODIFY_EXPR. * gcc.c-torture/execute/pr58943.c: New test. * gcc.dg/tree-ssa/ssa-fre-33.c (main): Avoid using += in the test. From-SVN: r206620
2014-01-09re PR c++/59631 (ICE using _Cilk_spawn without -fcilkplus)Balaji V. Iyer2-1/+7
Fix for PR c++/59631. +++ gcc/cp/ChangeLog +2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c++/59631 + * parser.c (cp_parser_postfix_expression): Added a new if-statement + and replaced an existing if-statement with else-if statement. + Changed an existing error message wording to match the one from the C + parser. + +++ gcc/testsuite/ChangeLog +2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c++/59631 + * gcc.dg/cilk-plus/cilk-plus.exp: Removed "-fcilkplus" from flags list. + * g++.dg/cilk-plus/cilk-plus.exp: Likewise. + * c-c++-common/cilk-plus/CK/spawnee_inline.c: Replaced second dg-option + with dg-additional-options. + * c-c++-common/cilk-plus/CK/varargs_test.c: Likewise. + * c-c++-common/cilk-plus/CK/steal_check.c: Likewise. + * c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise. + * c-c++-common/cilk-plus/CK/spawning_arg.c: Likewise. + * c-c++-common/cilk-plus/CK/invalid_spawns.c: Added a dg-options tag. + * c-c++-common/cilk-plus/CK/pr59631.c: New testcase. + gcc/c/ChangeLog +2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c++/59631 + * c-parser.c (c_parser_postfix_expression): Replaced consecutive if + statements with if-elseif statements. + From-SVN: r206463
2014-01-06re PR c/57773 (-Wpedantic incorrect warning for enum bit-field)Marek Polacek2-1/+8
PR c/57773 * doc/implement-c.texi: Mention that other integer types are permitted as bit-field types in strictly conforming mode. c/ * c-decl.c (check_bitfield_type_and_width): Warn for implementation defined bit-field types only in ISO C. testsuite/ * gcc.dg/pr57773.c: New test. From-SVN: r206373
2014-01-02Update copyright years in gcc/Richard Sandiford16-16/+20
From-SVN: r206289
2014-01-02arc-common.c, [...]: Use the standard form for the copyright notice.Richard Sandiford2-1/+5
gcc/ * common/config/arc/arc-common.c, config/arc/arc-modes.def, config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, config/arc/arc.md, config/arc/arc.opt, config/arm/arm_neon_builtins.def, config/arm/crypto.def, config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h, config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h, config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md, config/linux-protos.h, config/linux.c, config/winnt-c.c, diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c, vtable-verify.c, vtable-verify.h: Use the standard form for the copyright notice. gcc/c-family/ * array-notation-common.c, c-cilkplus.c: Use the standard form for the copyright notice. gcc/c/ * c-array-notation.c: Use the standard form for the copyright notice. gcc/cp/ * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use the standard form for the copyright notice. gcc/testsuite/ * gcc.target/arc/arc.exp: Use the standard form for the copyright notice. libgcc/ * config/arc/asm.h, config/arc/crtg.S, config/arc/crtgend.S, config/arc/crti.S, config/arc/crtn.S, config/arc/divtab-arc700.c, config/arc/dp-hack.h, config/arc/fp-hack.h, config/arc/ieee-754/adddf3.S, config/arc/ieee-754/addsf3.S, config/arc/ieee-754/arc600-dsp/divdf3.S, config/arc/ieee-754/arc600-dsp/divsf3.S, config/arc/ieee-754/arc600-dsp/muldf3.S, config/arc/ieee-754/arc600-dsp/mulsf3.S, config/arc/ieee-754/arc600-mul64/divdf3.S, config/arc/ieee-754/arc600-mul64/divsf3.S, config/arc/ieee-754/arc600-mul64/muldf3.S, config/arc/ieee-754/arc600-mul64/mulsf3.S, config/arc/ieee-754/arc600/divsf3.S, config/arc/ieee-754/arc600/mulsf3.S, config/arc/ieee-754/divdf3.S, config/arc/ieee-754/divsf3-stdmul.S, config/arc/ieee-754/divsf3.S, config/arc/ieee-754/divtab-arc-df.c, config/arc/ieee-754/divtab-arc-sf.c, config/arc/ieee-754/eqdf2.S, config/arc/ieee-754/eqsf2.S, config/arc/ieee-754/extendsfdf2.S, config/arc/ieee-754/fixdfsi.S, config/arc/ieee-754/fixsfsi.S, config/arc/ieee-754/fixunsdfsi.S, config/arc/ieee-754/floatsidf.S, config/arc/ieee-754/floatsisf.S, config/arc/ieee-754/floatunsidf.S, config/arc/ieee-754/gedf2.S, config/arc/ieee-754/gesf2.S, config/arc/ieee-754/gtdf2.S, config/arc/ieee-754/gtsf2.S, config/arc/ieee-754/muldf3.S, config/arc/ieee-754/mulsf3.S, config/arc/ieee-754/orddf2.S, config/arc/ieee-754/ordsf2.S, config/arc/ieee-754/truncdfsf2.S, config/arc/ieee-754/uneqdf2.S, config/arc/ieee-754/uneqsf2.S, config/arc/initfini.c, config/arc/lib1funcs.S, config/arc/t-arc, config/arc/t-arc-newlib, config/cris/umulsidi3.S, config/msp430/cmpsi2.S, config/msp430/epilogue.S, config/msp430/lib2bitcountHI.c, config/msp430/lib2divHI.c, config/msp430/lib2divQI.c, config/msp430/lib2divSI.c, config/msp430/lib2mul.c, config/msp430/msp430-divmod.h, config/msp430/msp430-mul.h, config/msp430/slli.S, config/msp430/srai.S, config/msp430/srli.S, config/rl78/divmodhi.S, config/rl78/divmodqi.S, config/rl78/divmodsi.S, config/rl78/signbit.S, vtv_end.c, vtv_end_preinit.c, vtv_start.c, vtv_start_preinit.c: Use the standard form for the copyright notice. libgomp/ * hashtab.h: Use the standard form for the copyright notice. libstdc++-v3/ * testsuite/18_support/new_handler.cc, testsuite/18_support/terminate_handler.cc, testsuite/18_support/unexpected_handler.cc: Use the standard form for the copyright notice. From-SVN: r206288
2013-12-18Added support for Cilk Plus SIMD-enabled function for C.Balaji V. Iyer2-34/+254
+++ gcc/ChangeLog +2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * omp-low.c (simd_clone_clauses_extract): Replaced the string + "cilk simd elemental" with "cilk simd function." + * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): + Removed a carriage-return from a warning string. + +++ gcc/c-family/ChangeLog +2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-common.c (c_common_attribute_table): Added "cilk simd function" + attribute. + * c-pragma.h (enum pragma_cilk_clause): Remove. + (enum pragma_omp_clause): Added the following fields: + PRAGMA_CILK_CLAUSE_NOMASK, PRAGMA_CILK_CLAUSE_MASK, + PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_NONE, + PRAGMA_CILK_CLAUSE_LINEAR, PRAGMA_CILK_CLAUSE_PRIVATE, + PRAGMA_CILK_CLAUSE_FIRSTPRIVATE, PRAGMA_CILK_CLAUSE_LASTPRIVATE, + PRAGMA_CILK_CLAUSE_UNIFORM. + + +++ gcc/c/ChangeLog +2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-parser.c (struct c_parser::cilk_simd_fn_tokens): Added new field. + (c_parser_declaration_or_fndef): Added a check if cilk_simd_fn_tokens + field in parser is not empty. If not-empty, call the function + c_parser_finish_omp_declare_simd. + (c_parser_cilk_clause_vectorlength): Modified function to be shared + between SIMD-enabled functions and #pragma simd. Added new parameter. + (c_parser_cilk_all_clauses): Modified the usage of the function + c_parser_cilk_clause_vectorlength as mentioned above. + (c_parser_cilk_simd_fn_vector_attrs): New function. + (c_finish_cilk_simd_fn_tokens): Likewise. + (is_cilkplus_vector_p): Likewise. + (c_parser_omp_clause_name): Added checking for "vectorlength," + "nomask," and "mask" strings in clause name. + (c_parser_omp_all_clauses): Added 3 new case statements: + PRAGMA_CILK_CLAUSE_VECTORLENGTH, PRAGMA_CILK_CLAUSE_MASK and + PRAGMA_CILK_CLAUSE_NOMASK. + (c_parser_attributes): Added a cilk_simd_fn_tokens parameter. Added a + check for vector attribute and if so call the function + c_parser_cilk_simd_fn_vector_attrs. Also, when Cilk plus is enabled, + called the function c_finish_cilk_simd_fn_tokens. + (c_finish_omp_declare_simd): Added a check if cilk_simd_fn_tokens in + parser field is non-empty. If so, parse them as you would parse + the omp declare simd pragma. + (c_parser_omp_clause_linear): Added a new bool parm. is_cilk_simd_fn. + Added a check when step is a parameter and flag it as error. + (CILK_SIMD_FN_CLAUSE_MASK): New #define. + (c_parser_cilk_clause_name): Changed pragma_cilk_clause to + pragma_omp_clause. + +++ gcc/testsuite/ChangeLog +2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-c++-common/cilk-plus/SE/ef_test.c: New test. + * c-c++-common/cilk-plus/SE/ef_test2.c: Likewise. + * c-c++-common/cilk-plus/SE/vlength_errors.c: Likewise. + * c-c++-common/cilk-plus/SE/ef_error.c: Likewise. + * c-c++-common/cilk-plus/SE/ef_error2.c: Likewise. + * c-c++-common/cilk-plus/SE/ef_error3.c: Likewise. + * gcc.dg/cilk-plus/cilk-plus.exp: Added calls for the above tests. + From-SVN: r206095
2013-12-17Fix description of OpenMP parallel directive in the C and C++ front ends.Thomas Schwinge2-3/+14
gcc/c/ * c-parser.c (c_parser_omp_parallel): Fix description. gcc/cp/ * parser.c (cp_parser_omp_parallel): Fix description. From-SVN: r206052
2013-12-11Added Compiler Support for _Cilk_spawn and _Cilk_sync for C++.Balaji V. Iyer3-10/+36
gcc/c-family/ChangeLog 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> * cilk.c (cilk_outline): Made this function non-static. (gimplify_cilk_spawn): Removed pre_p and post_p arguments. (create_cilk_wrapper): Added a new parameter: a function pointer. (c_install_body_w_frame_cleanup): Remove (extract_free_variables): Added VEC_INIT_EXPR and CONSTRUCTOR case. * c-common.h (cilk_outline): New prototype. (gimplify_cilk_spawn): Removed two parameters. (cilk_install_body_with_frame_cleanup): New prototype. * c-gimplify.c (c_gimplify_expr): Added MODIFY_EXPR, CALL_EXPR and CILK_SPAWN_STMT case. gcc/c/ChangeLog 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-objc-common.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Remove. (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise. (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise. * c-typeck.c (cilk_install_body_with_frame_cleanup): New function. gcc/ChangeLog 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> * langhooks.h (lang_hooks_for_decls): Remove lang_hooks_for_cilkplus. (lang_hooks_for_cilkplus): Remove. * langhooks.c (lhd_cilk_detect_spawn): Likewise. (lhd_install_body_with_frame_cleanup): Likewise. * langhooks-def.h (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise. (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise. (LANG_HOOKS_CILKPLUS_CILKPLUS_GIMPLIFY_SPAWN): Likewise. (LANG_HOOKS_CILKPLUS): Likewise. (LANG_HOOKS_DECLS): Remove LANG_HOOKS_CILKPLUS. * gimplify.c (gimplify_expr): Removed CILK_SPAWN_STMT case. (gimplify_modify_expr): Removed handling of _Cilk_spawn in expr. (gimplify_call_expr): Likewise. gcc/cp/ChangeLog 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> * cp-tree.h (cilk_valid_spawn): New prototype. (gimplify_cilk_spawn): Likewise. (create_try_catch_expr): Likewise. * decl.c (finish_function): Insert Cilk function-calls when a _Cilk_spawn is used in a function. * parser.c (cp_parser_postfix_expression): Added RID_CILK_SPAWN and RID_CILK_SYNC cases. * cp-cilkplus.c (set_cilk_except_flag): New function. (set_cilk_except_data): Likewise. (cilk_install_body_with_frame_cleanup): Likewise. * except.c (create_try_catch_expr): Likewise. * parser.h (IN_CILK_SPAWN): New #define. * pt.c (tsubst_expr): Added CILK_SPAWN_STMT and CILK_SYNC_STMT cases. * semantics.c (potential_constant_expression_1): Likewise. * typeck.c (cp_build_compound_expr): Reject a spawned function in a compound expression. (check_return_expr): Reject a spawned function in a return expression. * cp-gimplify.c (cp_gimplify_expr): Added a CILK_SPAWN_STMT and CALL_EXPR case. Added handling of spawned function in MODIFY_EXPR and INIT_EXPR. gcc/testsuite/ChangeLog 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> * g++.dg/cilk-plus/CK/catch_exc.cc: New test case. * g++.dg/cilk-plus/CK/const_spawn.cc: Likewise. * g++.dg/cilk-plus/CK/fib-opr-overload.cc: Likewise. * g++.dg/cilk-plus/CK/fib-tplt.cc: Likewise. * g++.dg/cilk-plus/CK/lambda_spawns.cc: Likewise. * g++.dg/cilk-plus/CK/lambda_spawns_tplt.cc: Likewise. * g++.dg/cilk-plus/cilk-plus.exp: Added support to run Cilk Keywords test stored in c-c++-common. Also, added the Cilk runtime's library to the ld_library_path. From-SVN: r205902
2013-12-04re PR c/52023 ([C11] _Alignof (double) yields wrong value on x86)Joseph Myers2-4/+16
PR c/52023 c-family: * c-common.c (c_sizeof_or_alignof_type): Add parameter min_alignof and check field alignment if set. * c-common.h (c_sizeof_or_alignof_type): Update prototype. (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type. c: * c-parser.c (c_parser_alignas_specifier): Use c_sizeof_or_alignof_type instead of c_alignof. (c_parser_alignof_expression): Likewise, with min_alignof parameter depending on alignof spelling used. cp: * typeck.c (cxx_sizeof_or_alignof_type): Update call to c_sizeof_or_alignof_type. objc: * objc-act.c (objc_synthesize_getter): Update calls to c_sizeof_or_alignof_type. testsuite: * gcc.dg/c11-align-6.c: New test. From-SVN: r205685