OSDN Git Service

2012-01-18 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / c-family / ChangeLog
index f0592f5..c2045f9 100644 (file)
@@ -1,3 +1,506 @@
+2012-01-18  Richard Guenther  <rguenther@suse.de>
+
+       * c-opts.c (c_common_post_options): Reset LTO flags if
+       we are about to generate a PCH.
+
+2012-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/51777
+       * c-pretty-print.c (pp_c_integer_constant): For unsigned constants
+       use pp_unsigned_wide_integer.
+
+2012-01-10  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/51806
+       * c-opts.c (c_common_handle_option): Move -Werror handling
+       to language independent code.
+
+2012-01-05  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/51764
+       * c.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move here
+       from common.opt.
+
+2011-12-30  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/51316
+       * c-common.c (c_sizeof_or_alignof_type): In C++ allow for alignof
+       of array types with an unknown bound.
+
+2011-12-20  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-common.c (flag_isoc99): Update comment to refer to C11.
+       (flag_isoc1x): Change to flag_isoc11.
+       * c-common.h (flag_isoc99): Update comment to refer to C11.
+       (flag_isoc1x): Change to flag_isoc11.
+       * c-cppbuiltin.c (cpp_atomic_builtins): Change comment to refer to
+       C11.
+       * c-opts.c (set_std_c1x): Change to set_std_c11.
+       (c_common_handle_option): Handle OPT_std_c11 and OPT_std_gnu11.
+       Call set_std_c11.
+       (set_std_c89, set_std_c99, set_std_c11): Use flag_isoc11.
+       (set_std_c1): Use CLK_STDC11 and CLK_GNUC11.
+       * c.opt (std=c1x): Change to std=c11.  Document as non-draft
+       standard.
+       (std=c1x, std=iso9899:2011): Add as aliases of std=c11.
+       (std=gnu1x): Change to std=gnu11.  Refer to non-draft standard.
+       (std=gnu1x): Make alias of std=gnu11.
+
+2011-12-19  Jason Merrill  <jason@redhat.com>
+
+       PR c++/51228
+       * c-common.c (handle_transparent_union_attribute): Check the first
+       field if the type is complete.
+
+2011-12-15  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       PR libstdc++/51365
+       * c-common.c (RID_IS_FINAL): Add.
+       * c-common.h (RID_IS_FINAL): Add.
+
+2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * c.opt (fgnu-runtime): Provide full description.
+       (fnext-runtime): Likewise.
+       * c-opts.c (OPT_fgnu_runtime, OPT_fnext_runtime) Remove.
+
+2011-11-28  Andrew MacLeod  <amacleod@redhat.com>
+
+       * c-cpp-builtin.c (cpp_atomic_builtins):New.  Emit all atomic
+       predefines in one place.  Add LOCK_FREE predefines.
+       (c_cpp_builtins): Move Legacy HAVE_SYNC predefines to
+       new func.
+
+2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
+
+       PR c/51256
+       * c-common.c (get_atomic_generic_size): Check for various error 
+       conditions
+       (resolve_overloaded_atomic_exchange, 
+       resolve_overloaded_atomic_compare_exchange, 
+       resolve_overloaded_atomic_load, resolve_overloaded_atomic_store): Return
+       error_mark_node for error conditions.
+       
+2011-11-08  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/51010
+       c-family/
+
+2011-11-07  Richard Henderson  <rth@redhat.com>
+           Aldy Hernandez  <aldyh@redhat.com>
+           Torvald Riegel  <triegel@redhat.com>
+
+       Merged from transactional-memory.
+
+       * c-common.c (handle_tm_wrap_attribute,
+       handle_tm_attribute, ignore_attribute, parse_tm_stmt_attr): New.
+       (struct c_common_reswords): Added __transaction* keywords.
+       (struct c_common_attribute_table): Added transaction* and tm_regparm
+       attributes.
+       * c-common.h: Added RID_TRANSACTION*. Added TM_ATTR* and TM_STMT*
+       masks.
+       (parse_tm_stmt_attr, tm_attr_to_mask, tm_mask_to_attr,
+       find_tm_attribute): Declare.
+
+2011-11-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/35688
+       * c-common.c, c-common.h: Revert yesterday's changes.
+
+2011-11-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/35688
+       * c-common.c (decl_has_visibility_attr): Split out from...
+       (c_determine_visibility): ...here.
+       * c-common.h: Declare it.
+
+2011-11-06  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-common.c (c_common_reswords): Add _Alignas and _Alignof.
+       (c_sizeof_or_alignof_type): Diagnose alignof applied to a function
+       type.
+       (check_user_alignment): New.  Split out of
+       handle_aligned_attribute.  Disallow integer constants with
+       noninteger types.  Conditionally allow zero.
+       (handle_aligned_attribute): Use check_user_alignment.
+       * c-common.h (RID_ALIGNAS, check_user_alignment): New.
+
+2011-11-06  Andrew MacLeod  <amacleod@redhat.com>
+           Richard Henderson  <rth@redhat.com>
+
+       Merged from cxx-mem-model.
+
+       * c-cppbuiltin.c (c_cpp_builtins): Test both atomic and sync patterns.
+       * c-common.c (sync_resolve_params, sync_resolve_return): Only tweak 
+       parameters that are the same type size.
+       (get_atomic_generic_size): New.  Find size of generic
+       atomic function parameters and do typechecking.
+       (add_atomic_size_parameter): New.  Insert size into parameter list.
+       (resolve_overloaded_atomic_exchange): Restructure __atomic_exchange to
+       either __atomic_exchange_n or external library call.
+       (resolve_overloaded_atomic_compare_exchange): Restructure 
+       __atomic_compare_exchange to either _n variant or external library call.
+       (resolve_overloaded_atomic_load): Restructure __atomic_load to either 
+       __atomic_load_n or an external library call.
+       (resolve_overloaded_atomic_store): Restructure __atomic_store to either
+       __atomic_store_n or an external library call.
+       (resolve_overloaded_builtin): Handle new __atomic builtins.
+
+2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR c++/50608
+       * c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Call fold_offsetof_1.
+       (fold_offsetof_1): Make global.  Remove STOP_REF argument and adjust.
+       <INDIRECT_REF>: Return the argument.
+       <ARRAY_REF>: Remove special code for negative offset.
+       Call fold_build_pointer_plus instead of size_binop.
+       (fold_offsetof): Remove STOP_REF argument and adjust.
+       * c-common.h (fold_offsetof_1): Declare.
+       (fold_offsetof): Remove STOP_REF argument.
+
+2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50810
+       * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
+       of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
+       Wnarrowing for C++0x and C++98.
+       * c.opt ([Wnarrowing]): Update.
+
+2011-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/44277
+       * c.opt: Add Wzero-as-null-pointer-constant.
+
+2011-10-31  Jason Merrill  <jason@redhat.com>
+
+       * c.opt (-fdeduce-init-list): Off by default.
+
+       PR c++/50920
+       * c-common.h (cxx_dialect): Add cxx11 and cxx03.
+       * c.opt: Add -std=c++11, -std=gnu++11, -std=gnu++03,
+       and -Wc++11-compat.
+       * c-opts.c (set_std_cxx11): Rename from set_std_cxx0x.
+
+2011-10-27  Roberto Agostino Vitillo  <ravitillo@lbl.gov>
+
+       PR c++/30066
+       * c.opt (fvisibility-inlines-hidden): Description change.
+
+2011-10-26  Ed Smith-Rowland  <3dw4rd@verizon.net>
+
+       Implement C++11 user-defined literals.
+       * c-common.c (build_userdef_literal): New.
+       * c-common.def: New tree code.
+       * c-common.h (tree_userdef_literal): New tree struct and accessors.
+       * c-lex.c (interpret_float): Add suffix parm.
+       (c_lex_with_flags): Build literal tokens.
+
+2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50841
+       Revert:
+       2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50810
+       * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
+       of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
+       Wnarrowing for C++0x and C++98.
+       * c.opt ([Wnarrowing]): Update.
+
+2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50810
+       * c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
+       of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
+       Wnarrowing for C++0x and C++98.
+       * c.opt ([Wnarrowing]): Update.
+
+2011-10-21  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/45385
+       * c-common.c (conversion_warning): Remove code looking for
+       artificial operands.
+
+2011-10-18  Dodji Seketeli  <dodji@redhat.com>
+
+       PR bootstrap/50760
+       * c-lex.c (fe_file_change): Use LINEMAP_SYSP when
+       !NO_IMPLICIT_EXTERN_C.
+
+2011-10-17  Michael Spertus  <mike_spertus@symantec.com>
+
+       * c-common.c (c_common_reswords): Add __bases,
+       __direct_bases.
+       * c-common.h: Add RID_BASES and RID_DIRECT_BASES.
+
+2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50757
+       * c.opt ([Wnonnull]): Add C++ and Objective-C++.
+
+2011-10-15  Tom Tromey  <tromey@redhat.com>
+           Dodji Seketeli  <dodji@redhat.com>
+
+       * c.opt (fdebug-cpp): New option.
+       * c-opts.c (c_common_handle_option): Handle the option.
+       * c-ppoutput.c (maybe_print_line_1): New static function. Takes an
+       output stream in parameter. Factorized from ...
+       (maybe_print_line): ... this. Dump location debug information when
+       -fdebug-cpp is in effect.
+       (print_line_1): New static function. Takes an output stream in
+       parameter. Factorized from ...
+       (print_line): ... here. Dump location information when -fdebug-cpp
+       is in effect.
+       (scan_translation_unit): Dump location information when
+       -fdebug-cpp is in effect.
+
+2011-10-15  Tom Tromey  <tromey@redhat.com>
+           Dodji Seketeli  <dodji@redhat.com>
+
+       * c.opt (ftrack-macro-expansion): New option. Handle it with and
+       without argument.
+       * c-opts.c (c_common_handle_option)<case
+       OPT_ftrack_macro_expansion_, case OPT_ftrack_macro_expansion>: New
+       cases. Handle -ftrack-macro-expansion with and without argument.
+
+2011-10-15  Tom Tromey  <tromey@redhat.com>
+           Dodji Seketeli  <dodji@redhat.com>
+
+       * c-ppoutput.c (scan_translation_unit, maybe_print_line)
+       (print_line, cb_define, do_line_change): Adjust to avoid touching
+       the internals of struct line_map.  Use the public API instead.
+       * c-pch.c (c_common_read_pch): Likewise.
+       * c-lex.c (fe_file_change): Likewise.
+
+2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/17212
+       * c.opt ([Wformat-zero-length]): Add C++ and Objective-C++.
+
+2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/33067
+       * c-pretty-print.c (pp_c_floating_constant): Output
+       max_digits10 (in the ISO C++ WG N1822 sense) decimal digits.
+
+2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * c-common.c (def_builtin_1): Delete old interface with two
+       parallel arrays to hold standard builtin declarations, and replace
+       it with a function based interface that can support creating
+       builtins on the fly in the future.  Change all uses, and poison
+       the old names.  Make sure 0 is not a legitimate builtin index.
+       * c-omp.c (c_finish_omp_barrier): Ditto.
+       (c_finish_omp_taskwait): Ditto.
+       (c_finish_omp_flush): Ditto.
+
+2011-10-11  Tristan Gingold  <gingold@adacore.com>
+
+       * c.opt: (fallow-parameterless-variadic-functions): New.
+
+2011-09-08  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/33255 - Support -Wunused-local-typedefs warning
+       * c-common.h (struct c_language_function::local_typedefs): New
+       field.
+       (record_locally_defined_typedef, maybe_record_typedef_use)
+       (maybe_warn_unused_local_typedefs): Declare new functions.
+       * c-common.c (record_locally_defined_typedef)
+       (maybe_record_typedef_use)
+       (maybe_warn_unused_local_typedefs): Define new functions.
+       * c.opt: Declare new -Wunused-local-typedefs flag.
+
+2011-09-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR middle-end/50266
+       * c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Fold offsetof-like
+       computations.
+
+2011-09-05  Richard Guenther  <rguenther@suse.de>
+
+       * c-common.c (complete_array_type): Use ssize_int (-1) instead
+       of integer_minus_one_node for empty array upper bounds.
+
+2011-08-28  Dodji Seketeli  <dodji@redhat.com>
+
+       * c-pch.c (c_common_read_pch): Call linemap_add with LC_ENTER as
+       it's the first time it's being called on this main TU.
+
+2011-08-24  Richard Guenther  <rguenther@suse.de>
+
+       PR c/49396
+       * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Fix conditional.
+
+2011-08-22  Gabriel Charette  <gchare@google.com>
+
+       * c-opts.c (c_finish_options): Force BUILTINS_LOCATION for tokens
+       defined in cpp_init_builtins and c_cpp_builtins.
+
+2011-08-19  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-common.c (c_common_reswords): Add __builtin_complex.
+       * c-common.h (RID_BUILTIN_COMPLEX): New.
+
+2011-08-18  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-common.c (c_common_reswords): Add _Noreturn.
+       (keyword_is_function_specifier): Handle RID_NORETURN.
+       * c-common.h (RID_NORETURN): New.
+
+2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
+
+       * c-common.c (unsafe_conversion_p): New function. Check if it is
+       unsafe to convert an expression to the type.
+       (conversion_warning): Adjust, use unsafe_conversion_p.
+       * c-common.h (unsafe_conversion_p): New function declaration.
+
+2011-08-02  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-common.h (c_finish_omp_atomic): Adjust prototype.
+       (c_finish_omp_taskyield): New prototype.
+       * c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
+       arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
+       OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC.  If LHS1
+       or RHS1 have side-effects, evaluate those too in the right spot,
+       if it is a decl and LHS is also a decl, error out if they
+       aren't the same.
+       (c_finish_omp_taskyield): New function.
+       * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
+       * c-pragma.c (omp_pragmas): Add taskyield.
+       * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
+       (enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
+       PRAGMA_OMP_CLAUSE_MERGEABLE.
+
+2011-07-25  Dodji Seketeli  <dodji@redhat.com>
+
+       * c-common.h (set_underlying_type): Remove parm name from
+       declaration.
+
+2011-07-25  Romain Geissler  <romain.geissler@gmail.com>
+
+       * c-pretty-print.h: Search c-common.h in c-family.
+       
+2011-07-22  Jason Merrill  <jason@redhat.com>
+
+       PR c++/49793
+       * c.opt (Wnarrowing): New.
+
+       PR c++/30112
+       * c-common.h: Declare c_linkage_bindings.
+       * c-pragma.c (handle_pragma_redefine_extname): Use it.
+
+       PR c++/49813
+       * c-opts.c (set_std_cxx0x): Set flag_isoc94 and flag_isoc99.
+       * c-pretty-print.c (pp_c_cv_qualifiers): Check c_dialect_cxx as well
+       as flag_isoc99 for 'restrict'.
+       (pp_c_specifier_qualifier_list): Likewise for _Complex.
+
+2011-07-21  Ian Lance Taylor  <iant@google.com>
+
+       PR middle-end/49705
+       * c-common.c (c_disable_warnings): New static function.
+       (c_enable_warnings): New static function.
+       (c_fully_fold_internal): Change local unused_p to bool.  Call
+       c_disable_warnings and c_enable_warnings rather than change
+       c_inhibit_evaluation_warnings.
+
+2011-07-20  Jason Merrill  <jason@redhat.com>
+
+       PR c++/6709 (DR 743)
+       PR c++/42603 (DR 950)
+       * c-common.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move from cp/parser.h.
+       (CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
+       (CPP_DECLTYPE): New.
+       * c-common.c (c_parse_error): Handle CPP_DECLTYPE.
+
+2011-07-19  Richard Guenther  <rguenther@suse.de>
+
+       * c-common.c (pointer_int_sum): Use fold_build_pointer_plus.
+       * c-omp.c (c_finish_omp_for): Likewise.
+
+2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * c-ada-spec.c (dump_nested_types): Put semi-colon after empty loop
+       body on the next line.
+
+2011-07-08  Jason Merrill  <jason@redhat.com>
+
+       PR c++/45437
+       * c-omp.c (check_omp_for_incr_expr): Handle preevaluation.
+
+       PR c++/49673
+       * c-common.c (c_apply_type_quals_to_decl): Don't check
+       TYPE_NEEDS_CONSTRUCTING.
+
+2011-07-06  Richard Guenther  <rguenther@suse.de>
+
+       * c-common.c (c_common_nodes_and_builtins):
+       Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
+
+2011-07-05  Richard Guenther  <rguenther@suse.de>
+
+       * c-common.c (c_common_nodes_and_builtins): Build all common
+       tree nodes first.
+
+2011-06-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-common.h (c_tree_chain_next): New static inline function.
+
+       * c-common.c (check_builtin_function_arguments): Handle
+       BUILT_IN_ASSUME_ALIGNED.
+
+2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
+
+       * c-common.c: Add sync_ or SYNC__ to builtin names.
+       * c-omp.c: Add sync_ or SYNC__ to builtin names.
+
+2011-06-20  Pierre Vittet  <piervit@pvittet.com>
+
+       * c-pragma.h (pragma_handler_1arg, pragma_handler_2arg): New
+       handler.
+       (gen_pragma_handler): New union.
+       (internal_pragma_handler): New type.
+       (c_register_pragma_with_data)
+       (c_register_pragma_with_expansion_and_data): New functions.
+
+       * c-pragma.c (registered_pragmas, c_register_pragma_1)
+       (c_register_pragma, c_register_pragma_with_expansion)
+       (c_invoke_pragma_handler): Changed to work with
+       internal_pragma_handler.
+       (c_register_pragma_with_data)
+       (c_register_pragma_with_expansion_and_data): New functions.
+
+2011-06-14  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-common.c: Include common/common-target.h.
+       (handle_section_attribute): Use
+       targetm_common.have_named_sections.
+       * c-cppbuiltin.c: Include common/common-target.h.
+       (c_cpp_builtins): Use targetm_common.except_unwind_info.
+
+2011-06-10  Richard Guenther  <rguenther@suse.de>
+
+       * c-pretty-print.c (pp_c_type_specifier): Use pp_c_identifier
+       to print a IDENTIFIER_NODE.
+
+2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+           Joseph Myers  <joseph@codesourcery.com>
+
+       * c.opt (fbuilding-libgcc): New option.
+       * c-cppbuiltin.c (c_cpp_builtins): Define
+       __LIBGCC_TRAMPOLINE_SIZE__ if flag_building_libgcc.
+
+2011-06-07  Jason Merrill  <jason@redhat.com>
+
+       * c-common.c (max_tinst_depth): Lower default to 900.
+
+       * c-format.c (gcc_cxxdiag_char_table): Add 'S' format.
+
+2011-06-07  Richard Guenther  <rguenther@suse.de>
+
+       * c-common.c (c_common_nodes_and_builtins): Do not set
+       size_type_node or call set_sizetype.
+
 2011-06-07  Dodji Seketeli  <dodji@redhat.com>
 
        PR debug/49130