+2014-04-24 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.c (standard_exc): Expand introductory comment.
+
+2014-04-24 Michael Sturm <michael.sturm@mintel.com>
+ Walfred Tedeschi <walfred.tedeschi@intel.com>
+
+ * amd64-linux-nat.c (amd64_linux_gregset32_reg_offset): Add
+ AVX512 registers.
+ (amd64_linux_read_description): Add code to handle AVX512 xstate
+ mask and return respective tdesc.
+ * amd64-linux-tdep.c: Include features/i386/amd64-avx512-linux.c
+ and features/i386/x32-avx512-linux.c.
+ (amd64_linux_gregset_reg_offset): Add AVX512 registers.
+ (amd64_linux_core_read_description): Add code to handle AVX512
+ xstate mask and return respective tdesc.
+ (_initialize_amd64_linux_tdep): Initialize AVX512 tdesc.
+ * amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Adjust regnum
+ calculation.
+ (AMD64_LINUX_NUM_REGS): Adjust to new number of registers.
+ (tdesc_amd64_avx512_linux): New prototype.
+ (tdesc_x32_avx512_linux): Likewise.
+ * amd64-tdep.c: Include features/i386/amd64-avx512.c and
+ features/i386/x32-avx512.c.
+ (amd64_ymm_avx512_names): New register names for pseudo
+ registers YMM16-31.
+ (amd64_ymmh_avx512_names): New register names for raw registers
+ YMMH16-31.
+ (amd64_k_names): New register names for K registers.
+ (amd64_zmmh_names): New register names for ZMM raw registers.
+ (amd64_zmm_names): New registers names for ZMM pseudo registers.
+ (amd64_xmm_avx512_names): New register names for XMM16-31
+ registers.
+ (amd64_pseudo_register_name): Add code to return AVX512 pseudo
+ registers.
+ (amd64_init_abi): Add code to intitialize AVX512 tdep variables
+ if feature is present.
+ (_initialize_amd64_tdep): Call AVX512 tdesc initializers.
+ * amd64-tdep.h (enum amd64_regnum): Add AVX512 registers.
+ (AMD64_NUM_REGS): Adjust to new number of registers.
+ * i386-linux-nat.c (GETXSTATEREGS_SUPPLIES): Extend range of
+ registers supplied via XSTATE by AVX512 registers.
+ (i386_linux_read_description): Add case for AVX512.
+ * i386-linux-tdep.c: Include i386-avx512-linux.c.
+ (i386_linux_gregset_reg_offset): Add AVX512 registers.
+ (i386_linux_core_read_description): Add case for AVX512.
+ (i386_linux_init_abi): Install supported register note section
+ for AVX512.
+ (_initialize_i386_linux_tdep): Add call to tdesc init function for
+ AVX512.
+ * i386-linux-tdep.h (I386_LINUX_NUM_REGS): Set number of
+ registers to be number of zmm7h + 1.
+ (tdesc_i386_avx512_linux): Add tdesc for AVX512 registers.
+ * i386-tdep.c: Include features/i386/i386-avx512.c.
+ (i386_zmm_names): Add ZMM pseudo register names array.
+ (i386_zmmh_names): Add ZMM raw register names array.
+ (i386_k_names): Add K raw register names array.
+ (num_lower_zmm_regs): Add constant for the number of lower ZMM
+ registers. AVX512 has 16 more ZMM registers than there are YMM
+ registers.
+ (i386_zmmh_regnum_p): Add function to look up register number of
+ ZMM raw registers.
+ (i386_zmm_regnum_p): Likewise for ZMM pseudo registers.
+ (i386_k_regnum_p): Likewise for K raw registers.
+ (i386_ymmh_avx512_regnum_p): Likewise for additional YMM raw
+ registers added by AVX512.
+ (i386_ymm_avx512_regnum_p): Likewise for additional YMM pseudo
+ registers added by AVX512.
+ (i386_xmm_avx512_regnum_p): Likewise for additional XMM registers
+ added by AVX512.
+ (i386_register_name): Add code to hide YMMH16-31 and ZMMH0-31.
+ (i386_pseudo_register_name): Add ZMM pseudo registers.
+ (i386_zmm_type): Construct and return vector registers type for ZMM
+ registers.
+ (i386_pseudo_register_type): Return appropriate type for YMM16-31,
+ ZMM0-31 pseudo registers and K registers.
+ (i386_pseudo_register_read_into_value): Add code to read K, ZMM
+ and YMM16-31 registers from register cache.
+ (i386_pseudo_register_write): Add code to write K, ZMM and
+ YMM16-31 registers.
+ (i386_register_reggroup_p): Add code to include/exclude AVX512
+ registers in/from respective register groups.
+ (i386_validate_tdesc_p): Handle AVX512 feature, add AVX512
+ registers if feature is present in xcr0.
+ (i386_gdbarch_init): Add code to initialize AVX512 feature
+ variables in tdep structure, wire in pseudo registers and call
+ initialize_tdesc_i386_avx512.
+ * i386-tdep.h (struct gdbarch_tdep): Add AVX512 related
+ variables.
+ (i386_regnum): Add AVX512 registers.
+ (I386_SSE_NUM_REGS): New define for number of SSE registers.
+ (I386_AVX_NUM_REGS): Likewise for AVX registers.
+ (I386_AVX512_NUM_REGS): Likewise for AVX512 registers.
+ (I386_MAX_REGISTER_SIZE): Change to 64 bytes, ZMM registers are
+ 512 bits wide.
+ (i386_xmm_avx512_regnum_p): New prototype for register look up.
+ (i386_ymm_avx512_regnum_p): Likewise.
+ (i386_k_regnum_p): Likewise.
+ (i386_zmm_regnum_p): Likewise.
+ (i386_zmmh_regnum_p): Likewise.
+ * i387-tdep.c : Update year in copyright notice.
+ (xsave_ymm_avx512_offset): New table for YMM16-31 offsets in
+ XSAVE buffer.
+ (XSAVE_YMM_AVX512_ADDR): New macro.
+ (xsave_xmm_avx512_offset): New table for XMM16-31 offsets in
+ XSAVE buffer.
+ (XSAVE_XMM_AVX512_ADDR): New macro.
+ (xsave_avx512_k_offset): New table for K register offsets in
+ XSAVE buffer.
+ (XSAVE_AVX512_K_ADDR): New macro.
+ (xsave_avx512_zmm_h_offset): New table for ZMM register offsets
+ in XSAVE buffer.
+ (XSAVE_AVX512_ZMM_H_ADDR): New macro.
+ (i387_supply_xsave): Add code to supply AVX512 registers to XSAVE
+ buffer.
+ (i387_collect_xsave): Add code to collect AVX512 registers from
+ XSAVE buffer.
+ * i387-tdep.h (I387_NUM_XMM_AVX512_REGS): New define for number
+ of XMM16-31 registers.
+ (I387_NUM_K_REGS): New define for number of K registers.
+ (I387_K0_REGNUM): New define for K0 register number.
+ (I387_NUM_ZMMH_REGS): New define for number of ZMMH registers.
+ (I387_ZMM0H_REGNUM): New define for ZMM0H register number.
+ (I387_NUM_YMM_AVX512_REGS): New define for number of YMM16-31
+ registers.
+ (I387_YMM16H_REGNUM): New define for YMM16H register number.
+ (I387_XMM16_REGNUM): New define for XMM16 register number.
+ (I387_YMM0_REGNUM): New define for YMM0 register number.
+ (I387_KEND_REGNUM): New define for last K register number.
+ (I387_ZMMENDH_REGNUM): New define for last ZMMH register number.
+ (I387_YMMH_AVX512_END_REGNUM): New define for YMM31 register
+ number.
+ (I387_XMM_AVX512_END_REGNUM): New define for XMM31 register
+ number.
+ * common/i386-xstate.h: Add AVX 3.1 feature bits, mask and XSTATE
+ size.
+ * features/Makefile: Add AVX512 related files.
+ * features/i386/32bit-avx512.xml: New file.
+ * features/i386/64bit-avx512.xml: Likewise.
+ * features/i386/amd64-avx512-linux.c: Likewise.
+ * features/i386/amd64-avx512-linux.xml: Likewise.
+ * features/i386/amd64-avx512.c: Likewise.
+ * features/i386/amd64-avx512.xml: Likewise.
+ * features/i386/i386-avx512-linux.c: Likewise.
+ * features/i386/i386-avx512-linux.xml: Likewise.
+ * features/i386/i386-avx512.c: Likewise.
+ * features/i386/i386-avx512.xml: Likewise.
+ * features/i386/x32-avx512-linux.c: Likewise.
+ * features/i386/x32-avx512-linux.xml: Likewise.
+ * features/i386/x32-avx512.c: Likewise.
+ * features/i386/x32-avx512.xml: Likewise.
+ * regformats/i386/amd64-avx512-linux.dat: New file.
+ * regformats/i386/amd64-avx512.dat: Likewise.
+ * regformats/i386/i386-avx512-linux.dat: Likewise.
+ * regformats/i386/i386-avx512.dat: Likewise.
+ * regformats/i386/x32-avx512-linux.dat: Likewise.
+ * regformats/i386/x32-avx512.dat: Likewise.
+ * NEWS: Add note about new support for AVX512.
+
+
+2014-04-23 Pedro Alves <palves@redhat.com>
+
+ * breakpoint.c (insert_bp_location): Tolerate errors if the
+ breakpoint is set in a user-loaded objfile.
+ (remove_breakpoint_1): Likewise. Also tolerate errors if the
+ location is marked shlib_disabled. If the breakpoint is set in a
+ user-loaded objfile is a GDB-side memory breakpoint, validate it
+ before uninsertion. (disable_breakpoints_in_freed_objfile): Skip
+ non-OBJF_USERLOADED objfiles. Don't clear the location's inserted
+ flag.
+ * mem-break.c (memory_validate_breakpoint): New function.
+ * objfiles.c (userloaded_objfile_contains_address_p): New
+ function.
+ * objfiles.h (userloaded_objfile_contains_address_p): Declare.
+ * target.h (memory_validate_breakpoint): New declaration.
+
+2014-04-23 Pedro Alves <palves@redhat.com>
+
+ * breakpoint.c (insert_bp_location, remove_breakpoint_1): If
+ the breakpoint is set in a shared library, only suppress
+ errors for software breakpoints, not hardware breakpoints.
+
+2014-04-22 Pedro Alves <palves@redhat.com>
+
+ * infrun.c (schedlock_applies): New function, factored out from
+ find_thread_needs_step_over.
+ (find_thread_needs_step_over): Use it.
+ (switch_back_to_stepped_thread): Always clear trap_expected if the
+ step over is finished. Return early if scheduler locking applies.
+ Look for the stepping thread and a potential step-over thread with
+ a single loop.
+ (currently_stepping_or_nexting_callback): Delete.
+
+2014-04-22 Nick Clifton <nickc@redhat.com>
+
+ * NEWS: Mention that ARM sim now supports tracing.
+
+2014-04-22 Yao Qi <yao@codesourcery.com>
+
+ * tracefile-tfile.c (tfile_fetch_registers): Move the bottom
+ to ...
+ * tracefile.c (tracefile_fetch_registers): ... it. New
+ function.
+ * tracefile.h (tracefile_fetch_registers): Declare.
+ * ctf.c (ctf_fetch_registers): Remove the bottom. Call
+ tracefile_fetch_registers.
+
+2014-04-19 Eli Zaretskii <eliz@gnu.org>
+
+ PR gdb/14018
+ * windows-nat.c (thread_rec): Don't display a warning when
+ SuspendThread fails with ERROR_ACCESS_DENIED. If SuspendThread
+ fails for any reason, set th->suspended to -1, so that we don't
+ try to resume such a thread. Also, don't return NULL in these
+ cases, to avoid completely ruin the session due to "PC register is
+ not available" error.
+ (do_windows_fetch_inferior_registers): Check errors in
+ GetThreadContext call.
+ (windows_continue): Accept an additional argument KILLED; if not
+ zero, ignore errors in the SetThreadContext call, since the
+ inferior was killed and is shutting down.
+ (windows_resume, get_windows_debug_event)
+ (windows_create_inferior, windows_mourn_inferior)
+ (windows_kill_inferior): All callers of windows_continue changed
+ to adjust to its new calling sequence.
+
+2014-04-19 Yao Qi <yao@codesourcery.com>
+
+ * ctf.c (ctf_open): Call post_create_inferior.
+
+2014-04-19 Yao Qi <yao@codesourcery.com>
+
+ * ctf.c (handle_id): New static variable.
+ (ctf_open_dir): Get handle_id from bt_context_add_trace return
+ value. Get the declaration of event "register" and get length
+ of field "contents".
+
+2014-04-19 Yao Qi <yao@codesourcery.com>
+
+ * ctf.c (ctf_xfer_partial): Check 'name' is NULL before strcmp.
+
+2014-04-18 Siva Chandra Reddy <sivachandra@google.com>
+
+ * valops.c (oload_method_static): Remove unnecessary argument
+ METHOD. Update all callers.
+
+2014-04-18 Pedro alves <palves@redhat.com>
+ Tom Tromey <tromey@redhat.com>
+
+ PR backtrace/15558
+ * frame.c (get_prev_frame_1): Rename to ...
+ (get_prev_frame_always): ... this, and make extern. Adjust.
+ (skip_artificial_frames): Use get_prev_frame_always.
+ (frame_unwind_caller_id, frame_pop, get_prev_frame)
+ (get_frame_unwind_stop_reason): Adjust to rename.
+ * frame.h (get_prev_frame_always): Declare.
+ * inline-frame.c: Include frame.h.
+ (inline_frame_this_id): Use get_prev_frame_always.
+
+2014-04-18 Tristan Gingold <gingold@adacore.com>
+
+ * solib-darwin.c (darwin_solib_create_inferior_hook): Simplify
+ code by using bfd_mach_o_get_base_address.
+
+2014-04-17 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * spu-tdep.c: Include "dwarf2-frame.h" and "ax.h".
+ (spu_ax_pseudo_register_collect): New function.
+ (spu_ax_pseudo_register_push_stack): Likewise.
+ (spu_dwarf_reg_to_regnum): Likewise.
+ (spu_gdbarch_init): Install them. Append DWARF unwinders.
+
+2014-04-17 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gdbarch.sh (value_from_register): Make class "m" instead of "f".
+ Replace FRAME argument with FRAME_ID.
+ * gdbarch.c, gdbarch.h: Regenerate.
+ * findvar.c (default_value_from_register): Add GDBARCH argument;
+ replace FRAME by FRAME_ID. No longer call get_frame_id.
+ (value_from_register): Update call to gdbarch_value_from_register.
+ * value.h (default_value_from_register): Update prototype.
+ * s390-linux-tdep.c (s390_value_from_register): Update interface
+ and call to default_value_from_register.
+ * spu-tdep.c (spu_value_from_register): Likewise.
+
+ * findvar.c (address_from_register): Remove TYPE argument.
+ Do not call value_from_register; use gdbarch_value_from_register
+ with null_frame_id instead.
+ * value.h (address_from_register): Update prototype.
+ * dwarf2-frame.c (read_addr_from_reg): Use address_from_register.
+ * dwarf2loc.c (dwarf_expr_read_addr_from_reg): Update for
+ address_from_register interface change.
+
+2014-04-17 Yao Qi <yao@codesourcery.com>
+
+ * gdbtypes.h: Update comments to link to types and macros'
+ definitions.
+
+2014-04-16 Siva Chandra Reddy <sivachandra@google.com>
+
+ * gdbtypes.h: Remove definition of the macro TYPE_FN_FIELDS.
+
+2014-04-16 Keith Seitz <keiths@redhat.com>
+
+ PR gdb/15827
+ * dwarf2read.c (skip_one_die): Check that all relative-offset
+ sibling DIEs fall within range of the current reader's buffer.
+ (read_partial_die): Likewise.
+
+2014-04-16 Keith Seitz <keiths@redhat.com>
+
+ PR c++/16597
+ * cp-namespace.c (lookup_symbol_file): If the type name of
+ `this' is NULL, return immediately.
+
+2014-04-14 Keith Seitz <keiths@redhat.com>
+
+ PR c++/16253
+ * ada-lang.c (ada_symbol_matches_domain): Moved here and renamed
+ from symbol_matches_domain in symtab.c. All local callers
+ of symbol_matches_domain updated.
+ (standard_lookup): If DOMAIN is VAR_DOMAIN and no symbol is found,
+ search STRUCT_DOMAIN.
+ (ada_find_any_type_symbol): Do not search STRUCT_DOMAIN
+ independently. standard_lookup will do that automatically.
+ * cp-namespace.c (cp_lookup_symbol_nonlocal): Explain when/why
+ VAR_DOMAIN searches may return a STRUCT_DOMAIN match.
+ (cp_lookup_symbol_in_namespace): Likewise.
+ If no VAR_DOMAIN symbol is found, search STRUCT_DOMAIN.
+ (cp_lookup_symbol_exports): Explain when/why VAR_DOMAIN searches
+ may return a STRUCT_DOMAIN match.
+ (lookup_symbol_file): Search for the class name in STRUCT_DOMAIN.
+ * cp-support.c: Include language.h.
+ (inspect_type): Explicitly search STRUCT_DOMAIN before searching
+ VAR_DOMAIN.
+ * psymtab.c (match_partial_symbol): Compare the requested
+ domain with the symbol's domain directly.
+ (lookup_partial_symbol): Likewise.
+ * symtab.c (lookup_symbol_in_language): Explain when/why
+ VAR_DOMAIN searches may return a STRUCT_DOMAIN match.
+ If no VAR_DOMAIN symbol is found, search STRUCT_DOMAIN for
+ appropriate languages.
+ (symbol_matches_domain): Renamed `ada_symbol_matches_domain'
+ and moved to ada-lang.c
+ (lookup_block_symbol): Explain that this function only returns
+ symbol matching the requested DOMAIN.
+ Compare the requested domain with the symbol's domain directly.
+ (iterate_over_symbols): Compare the requested domain with the
+ symbol's domain directly.
+ * symtab.h (symbol_matches_domain): Remove.
+
+2014-04-14 Tom Tromey <tromey@redhat.com>
+
+ PR c++/15246:
+ * c-exp.y (type_aggregate_p): New function.
+ (qualified_name, classify_inner_name): Use it.
+ * c-typeprint.c (c_type_print_base): Handle TYPE_DECLARED_CLASS
+ and TYPE_TARGET_TYPE of an enum type.
+ * dwarf2read.c (read_enumeration_type): Set TYPE_DECLARED_CLASS on
+ an enum type.
+ (determine_prefix) <case DW_TAG_enumeration_type>: New case;
+ handle TYPE_DECLARED_CLASS.
+ * gdbtypes.c (rank_one_type): Handle TYPE_DECLARED_CLASS on enum
+ types.
+ * gdbtypes.h (TYPE_DECLARED_CLASS): Update comment.
+ * valops.c (enum_constant_from_type): New function.
+ (value_aggregate_elt): Use it.
+ * cp-namespace.c (cp_lookup_nested_symbol): Handle
+ TYPE_CODE_ENUM.
+
+2014-04-14 Tom Tromey <tromey@redhat.com>
+
+ * valops.c (value_aggregate_elt, value_struct_elt_for_reference)
+ (value_namespace_elt, value_maybe_namespace_elt): Make "name"
+ const.
+ * value.h (value_aggregate_elt): Update.
+
+2014-04-14 Tom Tromey <tromey@redhat.com>
+
+ * dwarf2read.c (read_enumeration_type): Handle DW_AT_type.
+
+2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
+
+ * eval.c (evaluate_subexp_for_sizeof): Add enum noside argument.
+ (evaluate_subexp_standard): Pass noside argument.
+ (evaluate_subexp_for_sizeof) <BINOP_SUBSCRIPT>: Handle subscript case
+ if noside equals EVAL_NORMAL. If the subscript yields a vla type
+ re-evaluate subscript operation with EVAL_NORMAL to enable sideffects.
+ * gdbtypes.c (resolve_dynamic_bounds): Mark bound as evaluated.
+ * gdbtypes.h (enum range_flags): Add RANGE_EVALUATED case.
+
+2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
+
+ * findvar.c (default_read_var_value): Resolve dynamic bounds if location
+ points to a constant blob.
+
+2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
+
+ * dwarf2read.c (read_subrange_type): Convert DW_AT_count to a dynamic
+ property and store it as the high bound and flag the range accordingly.
+ * gdbtypes.c (resolve_dynamic_bounds): If range is flagged as
+ RANGE_UPPER_BOUND_IS_COUNT assign low + high - 1 as the new high bound.
+ * gdbtypes.h (enum range_flags): New enum.
+ (struct range_bounds): Add flags member.
+
+2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
+
+ * c-typeprint.c (c_type_print_varspec_suffix): Added
+ check for not yet resolved high bound. If unresolved, print
+ "variable length" string to the console instead of random
+ length.
+
+2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
+
+ * ada-lang.c (ada_value_primitive_packed_val): Re-fetch type from
+ value.
+ (ada_template_to_fixed_record_type_1): Likewise.
+ (ada_to_fixed_type_1): Likewise.
+ * cp-valprint.c (cp_print_value_fields_rtti): Likewise.
+ (cp_print_value): Likewise.
+ * d-valprint.c (dynamic_array_type): Likewise.
+ * findvar.c (address_of_variable): Likewise.
+ * jv-valprint.c (java_value_print): Likewise.
+ * valops.c (value_ind): Likewise.
+ * value.c (coerce_ref): Likewise.
+
+2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
+
+ * eval.c (evaluate_subexp_for_sizeof) <UNOP_IND>: Create an indirect
+ value and retrieve the dynamic type size.
+
+2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
+
+ * eval.c (evaluate_subexp_for_sizeof) <OP_VAR_VALUE>: If the type
+ passed to sizeof is dynamic evaluate the argument to compute the length.
+
+2014-04-14 Sanimir Agovic <sanimir.agovic@intel.com>
+ Joel Brobecker <brobecker@adacore.com>
+
+ * dwarf2loc.c (dwarf2_locexpr_baton_eval): New function.
+ (dwarf2_evaluate_property): New function.
+ * dwarf2loc.h (dwarf2_evaluate_property): New function prototype.
+ * dwarf2read.c (attr_to_dynamic_prop): New function.
+ (read_subrange_type): Use attr_to_dynamic_prop to read high bound
+ attribute.
+ * gdbtypes.c: Include dwarf2loc.h.
+ (is_dynamic_type): New function.
+ (resolve_dynamic_type): New function.
+ (resolve_dynamic_bounds): New function.
+ (get_type_length): New function.
+ (check_typedef): Use get_type_length to compute type length.
+ * gdbtypes.h (TYPE_HIGH_BOUND_KIND): New macro.
+ (TYPE_LOW_BOUND_KIND): New macro.
+ (is_dynamic_type): New function prototype.
+ * value.c (value_from_contents_and_address): Call resolve_dynamic_type
+ to resolve dynamic properties of the type. Update comment.
+ * valops.c (get_value_at, value_at, value_at_lazy): Update comment.
+
+2014-04-14 Richard Henderson <rth@redhat.com>
+
+ * alpha-linux-nat.c (_initialize_alpha_linux_nat): Fix prototype.
+
+2014-04-12 Siva Chandra Reddy <sivachandra@google.com>
+ Doug Evans <xdje42@gmail.com>
+
+ * guile/scm-value.c (gdbscm_value_dynamic_type): Use coerce_ref to
+ dereference TYPE_CODE_REF values.
+
2014-04-11 Joel Brobecker <brobecker@adacore.com>
Revert the following changes due to regressions: