1. 29 Jun, 2017 13 commits
    • Whitespace cleanups. · e9888922
      	* call.c (name_as_c_string): Move CONST_CAST to return.
      	(build_new_method_call_1): Remove unneeded bracing.
      	* class.c (include_empty_classes): Unbreak line.
      	* constraint.cc (tsubst_check_constraint): Add space.
      	* cp-tree.h (lang_decl_ns): Add comment.
      	(PTRMEM_CST_MEMBER): Break line.
      	* decl.c (grokfndecl): Add blank lines. Unbreak some others.
      	(grokdeclarator): Remove lines, move declaration to first use.
      	* decl2.c (decl_needed_p): Fix indentation.
      	(c_parse_final_cleanups): Remove blank line.
      	* method.c (implicitly_declare_fn): Move declaration to first use.
      	* search.c (current_scope): Add blank lines.
      
      From-SVN: r249786
      Nathan Sidwell committed
    • tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add reduction chains to… · 0630a4ec
      tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add reduction chains to LOOP_VINFO_REDUCTIONS.
      
      2017-06-29  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
      	reduction chains to LOOP_VINFO_REDUCTIONS.
      	* tree-vect-slp.c (vect_analyze_slp): Continue looking for
      	SLP reductions after processing reduction chains.
      
      	* gcc.dg/vect/slp-reduc-8.c: New testcase.
      
      From-SVN: r249785
      Richard Biener committed
    • builtins.c (fold_builtin_FUNCTION): Use lang_hooks.decl_printable_name. · f76b4224
      	gcc/
      	* builtins.c (fold_builtin_FUNCTION): Use
      	lang_hooks.decl_printable_name.
      
      	gcc/cp/
      	* g++.dg/cpp1y/builtin_FUNCTION.C: New.
      
      From-SVN: r249784
      Nathan Sidwell committed
    • re PR middle-end/81194 (ICE during RTL pass: expand) · f66459c1
      gcc/
      	PR middle-end/81194
      	* cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
      	with only one label.
      	* stmt.c (expand_case): Assert NCASES is greater than one.
      
      gcc/testsuite/
      	PR middle-end/81194
      	* g++.dg/pr81194.C: New test.
      
      From-SVN: r249783
      Peter Bergner committed
    • Add a testcase for PR ipa/80565 · 3c7bb489
      The testcase in
      
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80565
      
      is passing now.  Check in the testcase and resolve it as fixed.
      
      	PR ipa/80565
      	* gcc.dg/torture/pr80565.c: New file.
      
      From-SVN: r249782
      H.J. Lu committed
    • tree-cfg.c (group_case_labels_stmt): Return whether we changed anything. · 4e3e8a5f
      2017-06-29  Richard Biener  <rguenther@suse.de>
      
      	* tree-cfg.c (group_case_labels_stmt): Return whether we changed
      	anything.
      	(group_case_labels): Likewise.
      	(find_taken_edge): Push sanity checking on val to workers...
      	(find_taken_edge_cond_expr): ... here
      	(find_taken_edge_switch_expr): ... and here, handle cases
      	with just a default label.
      	* tree-cfg.h (group_case_labels_stmt): Adjust prototype.
      	(group_case_labels): Likewise.
      	* tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
      	group_case_labels does anything cleanup the CFG again.
      
      From-SVN: r249780
      Richard Biener committed
    • re PR tree-optimization/81196 (Number of iterations found for p!=q but not for p<q) · 6cd83bec
      	PR tree-optimization/81196
      	* tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
      	exit condition comparing two IVs.
      
      	gcc/testsuite
      	* gcc.dg/vect/pr81196.c: New.
      
      From-SVN: r249778
      Bin Cheng committed
    • [arm] Fix bootstrap - missing initializer in tail entry of autogenerated code · a7c9a304
      My patch yesterday accidentally missed a hunk that added the
      update to the tail entry of the autogenerated data structure
      produced by parsecpu.awk.  This causes native bootstraps to
      fail.
      
      This patch adds back the missing hunk.
      
      2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
      
      	* config/arm/parsecpu.awk (gen_comm_data): Add initializer for
      	profile to the dummy entry at the end of the list of architectures.
      	* config/arm/arm-cpu-cdata.h: Regenerated.
      
      From-SVN: r249777
      Richard Earnshaw committed
    • 2017-06-29 Michael Collison <michael.collison@arm.com> · 4c6a51a0
      	Fix date on prevfious ChangeLog entry.
      
      From-SVN: r249775
      Michael Collison committed
    • re PR target/70119 (AArch64 should take advantage of implicit truncation of… · 7813b280
      re PR target/70119 (AArch64 should take advantage of implicit truncation of variable shift amount without defining SHIFT_COUNT_TRUNCATED)
      
      2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      	    Michael Collison <michael.collison@arm.com>
      
      	PR target/70119
      	* config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
      	New pattern.
      	(*aarch64_reg_<mode>3_neg_mask2): New pattern.
      	(*aarch64_reg_<mode>3_minus_mask): New pattern.
      	(*aarch64_<optab>_reg_di3_mask2): New pattern.
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
      	of shift when the shift amount is masked with constant equal to
      	the size of the mode.
      	* config/aarch64/predicates.md (subreg_lowpart_operator): New
      	predicate.
      
      
      2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      	    Michael Collison <michael.collison@arm.com>
      
      	PR target/70119
      	* gcc.target/aarch64/var_shift_mask_1.c: New test.
      
      Co-Authored-By: Michael Collison <michael.collison@arm.com>
      
      From-SVN: r249774
      Kyrylo Tkachov committed
    • Fix -mbranch-cost range. · 696bafe6
      2017-06-29  Martin Liska  <mliska@suse.cz>
      
      	* config/i386/i386.opt: Change range from [1,5] to [0,5].
      
      From-SVN: r249773
      Martin Liska committed
    • re PR ipa/80565 (ICE at -O2 and -O3 in 32-bit mode (not 64-bit) on… · c8fb20d8
      re PR ipa/80565 (ICE at -O2 and -O3 in 32-bit mode (not 64-bit) on x86_64-linux-gnu (in edge_badness, at ipa-inline.c:1028))
      
      2017-06-29  Yury Gribov  <tetra2005@gmail.com>
      
      	PR bootstrap/80565
              * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
      	code.
              * ipa-inline.h
      	(edge_growth_cache_entry::edge_growth_cache_entry): New
      	function.
              (reset_edge_growth_cache): Update to use constructor.
      
      From-SVN: r249771
      Yury Gribov committed
    • Daily bump. · 1cc6250d
      From-SVN: r249769
      GCC Administrator committed
  2. 28 Jun, 2017 27 commits
    • [AArch64] Do not increase data alignment at -Os and with -fconserve-stack. · 98503487
      We unnecessarily align data to 8 byte alignments even when -Os is
      specified. This brings the logic in the AArch64 backend more in line
      with the ARM backend and helps gain some image size in a few
      places. Caught by an internal report on the size of rodata sections
      being high with aarch64 gcc.
      
      * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
        (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
        (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
      
      Bootstrapped and regression tested on aarch64-none-linux-gnu with no
      regressions.
      
      From-SVN: r249764
      Ramana Radhakrishnan committed
    • PR c++/72764 - ICE with invalid template typename. · cffc4a68
      	* decl.c (build_typename_type): No longer static.
      	* tree.c (strip_typedefs): Use it instead of make_typename_type.
      
      From-SVN: r249760
      Jason Merrill committed
    • * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64) · 395a191d
      	(_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
      
      testsuite/ChangeLog:
      
      	* gcc.target/i386/avx512vl-vpermd-1.c (_mm256_permutexvar_epi32):
      	Test new intrinsic.
      	* gcc.target/i386/avx512vl-vpermq-imm-1.c (_mm256_permutex_epi64):
      	Ditto.
      	* gcc.target/i386/avx512vl-vpermq-var-1.c (_mm256_permutexvar_epi64):
      	Ditto.
      	* gcc.target/i386/avx512f-vpermd-2.c: Do not check for AVX512F_LEN.
      	* gcc.target/i386/avx512f-vpermq-imm-2.c: Ditto.
      	* gcc.target/i386/avx512f-vpermq-var-2.c: Ditto.
      
      From-SVN: r249759
      Sebastian Peryt committed
    • PR c++/69300 - ICE with self-referential noexcept · 38a79c5a
      	* pt.c (maybe_instantiate_noexcept): Check for recursion.
      
      From-SVN: r249757
      Jason Merrill committed
    • PR c++/61022 - error with variadic template template parm · 7e61b3d4
      	* pt.c (convert_template_argument): Keep the TYPE_PACK_EXPANSION.
      
      From-SVN: r249756
      Jason Merrill committed
    • PR c++/72801 - ICE with variadic partial specialization · d778c637
      	* pt.c (unify_pack_expansion): Use PACK_EXPANSION_EXTRA_ARGS.
      
      From-SVN: r249755
      Jason Merrill committed
    • PR c++/55639 - partial specialization with ::template · 4516a545
      	* parser.c (cp_parser_class_head): Handle ::template.
      
      From-SVN: r249754
      Jason Merrill committed
    • PR c++/45976 - error with ::template in declarator. · 36f48ebd
      	* pt.c (resolve_typename_type): Fix TEMPLATE_ID_EXPR handling.
      
      From-SVN: r249753
      Jason Merrill committed
    • PR c++/54769 - wrong lookup of dependent template-name. · 1e5f79b6
      	* parser.c (cp_parser_template_name): Handle dependent object type.
      	(cp_parser_nested_name_specifier_opt): Make template_keyword_p a
      	parameter.
      	(cp_parser_id_expression): Pass it.
      	(cp_parser_diagnose_invalid_type_name): Handle TEMPLATE_ID_EXPR.
      
      From-SVN: r249752
      Jason Merrill committed
    • Make the TEMPLATE_ID_EXPR location a range. · dc3b932e
      	* parser.c (cp_parser_template_id): Use the range location on the
      	TEMPLATE_ID_EXPR.
      
      From-SVN: r249751
      Jason Merrill committed
    • PR c++/81204 - parse error with dependent template-name · 2a4754f5
      	* parser.c (cp_parser_lookup_name): Disqualify function templates
      	after lookup.
      
      From-SVN: r249750
      Jason Merrill committed
    • multiarch support for non-glibc linux systems · ad669a1a
      Current multiarch directory name is always *-linux-gnu* on linux,
      this patch configures different names for uclibc and musl targets.
      
      2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
      
      	* config.gcc (*-linux-musl*): Add t-musl tmake_file.
      	(*-linux-uclibc*): Add t-uclibc tmake_file.
      	* config/t-musl: New.
      	* config/t-uclibc: New.
      
      From-SVN: r249745
      Szabolcs Nagy committed
    • [ARM] Consistently check for neon in vect effective targets · 0ddc0ebc
      Conditions checked for ARM targets in vector-related effective targets
      are inconsistent:
      
      * sometimes arm*-*-* is checked
      * sometimes Neon is checked
      * sometimes arm_neon_ok and sometimes arm_neon is used for neon check
      * sometimes check_effective_target_* is used, sometimes
      * is-effective-target
      
      This patch consolidate all of these check into using is-effective-target
      arm_neon and when little endian was checked, the check is kept.
      
      2017-06-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/testsuite/
          * lib/target-supports.exp (check_effective_target_vect_int): Replace
          current ARM check by ARM NEON's availability check.
          (check_effective_target_vect_intfloat_cvt): Likewise.
          (check_effective_target_vect_uintfloat_cvt): Likewise.
          (check_effective_target_vect_floatint_cvt): Likewise.
          (check_effective_target_vect_floatuint_cvt): Likewise.
          (check_effective_target_vect_shift): Likewise.
          (check_effective_target_whole_vector_shift): Likewise.
          (check_effective_target_vect_bswap): Likewise.
          (check_effective_target_vect_shift_char): Likewise.
          (check_effective_target_vect_long): Likewise.
          (check_effective_target_vect_float): Likewise.
          (check_effective_target_vect_perm): Likewise.
          (check_effective_target_vect_perm_byte): Likewise.
          (check_effective_target_vect_perm_short): Likewise.
          (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise.
          (check_effective_target_vect_widen_sum_qi_to_hi): Likewise.
          (check_effective_target_vect_widen_mult_qi_to_hi): Likewise.
          (check_effective_target_vect_widen_mult_hi_to_si): Likewise.
          (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise.
          (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise.
          (check_effective_target_vect_widen_shift): Likewise.
          (check_effective_target_vect_extract_even_odd): Likewise.
          (check_effective_target_vect_interleave): Likewise.
          (check_effective_target_vect_multiple_sizes): Likewise.
          (check_effective_target_vect64): Likewise.
          (check_effective_target_vect_max_reduc): Likewise.
      
      From-SVN: r249744
      Thomas Preud'homme committed
    • [arm] Fix incorrect __ARM_ARCH_PROFILE for -march=armv7 · 8afb5358
      ACLE explicitly states that when targetting the common subset of
      ARMv7-A, ARMv7-R and ARMv7-M, the __ARM_ARCH_PROFILE macro should not
      be set.  We currently set it to 'M' which is clearly erroneous.
      
      The logic for creating this is very convoluted and also somewhat
      fragile, so I've taken the opportunity to use the new CPU and
      architecture definition infrastructure to record the profile for each
      architecture explicitly rather than try to reconstruct it from other
      data.  I think this results in a much more robust solution.
      
      2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
      
      	* config/arm/parsecpu.awk (profile): Parse new keyword in an arch
      	context.
      	(gen_comm_data): Emit architectural setting of arch_prof.
      	* config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
      	profile.
      	(armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
      	(armv8-m.base, armv8-m.main): Likewise.
      	* arm-protos.h (arm_build_target): Add profile field.
      	(arch_option): Likewise.
      	* config/arm/arm.c (arm_configure_build_target): Copy the profile to
      	the active target.
      	* config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
      	arm_active_target.profile.
      
      From-SVN: r249743
      Richard Earnshaw committed
    • re PR tree-optimization/81227 (ICE in get_single_symbol, at tree-vrp.c:799) · 56a6d474
      2017-06-28  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/81227
      	* fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
      	TYPE_OVERFLOW_WRAPS.
      	* match.pd (negate_expr_p): Likewise.
      	* tree-ssa-reassoc.c (optimize_range_tests_diff): Use
      	fold_build2, not fold_binary.
      
      	* gcc.dg/pr81227.c: New testcase.
      
      From-SVN: r249742
      Richard Biener committed
    • This patch fixes a failure in gcc.target/aarch64/reload-valid-spoff.c triggered... · 00eee3fa
      This patch fixes a failure in gcc.target/aarch64/reload-valid-spoff.c 
      triggered by https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01367.html.
      
      In ILP32 all memory accesses must have Pmode as the base address, but
      aarch64_expand_mov_immediate wasn't emitting a conversion in one case.
      Besides fixing this add an assert that flags any MEM operands that are
      not Pmode.
      
          gcc/
      	* config/aarch64/aarch64 (aarch64_expand_mov_immediate):
      	Convert memory address to Pmode.
      	(aarch64_print_operand): Assert MEM operands are always Pmode.
      
      From-SVN: r249741
      Wilco Dijkstra committed
    • Improve Cortex-A53 shift bypass · 55994b97
      The aarch_forward_to_shift_is_not_shifted_reg bypass always returns true
      on AArch64 shifted instructions.  This causes the bypass to activate in
      too many cases, resulting in slower execution on Cortex-A53 like reported
      in PR79665.
      
      This patch uses the arm_no_early_alu_shift_dep condition instead which
      improves the example in PR79665 by ~7%.  Given it is no longer used,
      remove aarch_forward_to_shift_is_not_shifted_reg.  Also remove an
      unnecessary REG_P check.
      
          gcc/
      	PR target/79665
      	* config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
      	Remove redundant if.
      	(aarch_forward_to_shift_is_not_shifted_reg): Remove.
      	* config/arm/aarch-common-protos.h
      	(aarch_forward_to_shift_is_not_shifted_re): Remove.
      	* config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
      
      From-SVN: r249740
      Wilco Dijkstra committed
    • re PR ipa/81238 (Target clone support does not make default clone static.) · 926c7865
      [gcc]
      2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR ipa/81238
      	* multiple_target.c (create_dispatcher_calls): Set the default
      	clone to be static, not public.
      
      [gcc/testsuite]
      2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81193
      	* lib/target-supports.exp
      	(check_ppc_cpu_supports_hw_available): New test to make sure
      	__builtin_cpu_supports works on power7 and newer.
      
      From-SVN: r249737
      Michael Meissner committed
    • tree-vect-loop.c (vectorizable_reduction): Move special cond reduction IV var creation ... · 62cf7335
      2017-06-28  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-loop.c (vectorizable_reduction): Move special
      	cond reduction IV var creation ...
      	(vect_create_epilog_for_reduction): ... here.  Remove induction_index
      	parameter.  Use STMT_VINFO_VECTYPE.
      	* tree-vect-slp.c (vect_get_constant_vectors): Properly reset
      	constant_p.
      
      From-SVN: r249736
      Richard Biener committed
    • Do not allow to inline ifunc resolvers (PR ipa/81128). · 17a7218b
      2017-06-28  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/81128
      	* ipa-visibility.c (non_local_p): Handle visibility.
      2017-06-28  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/81128
      	* c-attribs.c (handle_alias_ifunc_attribute): Append ifunc alias
      	to a function declaration.
      2017-06-28  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/81128
      	* gcc.target/i386/pr81128.c: New test.
      
      From-SVN: r249735
      Martin Liska committed
    • Introduce IntegerRange for options (PR driver/79659). · 63010089
      2017-06-28  Martin Liska  <mliska@suse.cz>
      
      	PR driver/79659
      	* common.opt: Add IntegerRange to various options.
      	* opt-functions.awk (integer_range_info): New function.
      	* optc-gen.awk: Add integer_range_info to cl_options struct.
      	* opts-common.c (decode_cmdline_option): Handle
      	CL_ERR_INT_RANGE_ARG.
      	(cmdline_handle_error): Likewise.
      	* opts.c (print_filtered_help): Show valid interval in
      	when --help is provided.
      	* opts.h (struct cl_option): Add range_min and range_max fields.
      	* config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
      2017-06-28  Martin Liska  <mliska@suse.cz>
      
      	PR driver/79659
      	* c.opt: Add IntegerRange to various options.
      2017-06-28  Martin Liska  <mliska@suse.cz>
      
      	PR driver/79659
      	* g++.dg/opt/pr79659.C: New test.
      
      From-SVN: r249734
      Martin Liska committed
    • copy-sign-1.c, mult-abs-2.c: Restrict to c99_runtime. · b1cac008
      2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* gcc.dg/tree-ssa/copy-sign-1.c: Add c99_runtime effective target
      	and options.
      	* gcc.dg/tree-ssa/mult-abs-2.c: Likewise.
      
      From-SVN: r249733
      Christophe Lyon committed
    • Simplify 3*x == 3*y for wrapping types · 42bd89ce
      2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
      	(x * C EQ/NE y * C): New transformation.
      
      gcc/testsuite/
      	* gcc.dg/tree-ssa/addadd.c: Remove test duplicated in addadd-2.c.
      	* gcc.dg/tree-ssa/mulcmp-1.c: New file.
      
      From-SVN: r249732
      Marc Glisse committed
    • Use ucontext_t not struct ucontext in linux-unwind.h files. · 883312dc
      Current glibc no longer gives the ucontext_t type the tag struct
      ucontext, to conform with POSIX namespace rules.  This requires
      various linux-unwind.h files in libgcc, that were previously using
      struct ucontext, to be fixed to use ucontext_t instead.  This is
      similar to the removal of the struct siginfo tag from siginfo_t some
      years ago.
      
      This patch changes those files to use ucontext_t instead.  As the
      standard name that should be unconditionally safe, so this is not
      restricted to architectures supported by glibc, or conditioned on the
      glibc version.
      
      Tested compilation together with current glibc with glibc's
      build-many-glibcs.py.
      
      	* config/aarch64/linux-unwind.h (aarch64_fallback_frame_state),
      	config/alpha/linux-unwind.h (alpha_fallback_frame_state),
      	config/bfin/linux-unwind.h (bfin_fallback_frame_state),
      	config/i386/linux-unwind.h (x86_64_fallback_frame_state,
      	x86_fallback_frame_state), config/m68k/linux-unwind.h (struct
      	uw_ucontext), config/nios2/linux-unwind.h (struct nios2_ucontext),
      	config/pa/linux-unwind.h (pa32_fallback_frame_state),
      	config/riscv/linux-unwind.h (riscv_fallback_frame_state),
      	config/sh/linux-unwind.h (sh_fallback_frame_state),
      	config/tilepro/linux-unwind.h (tile_fallback_frame_state),
      	config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Use
      	ucontext_t instead of struct ucontext.
      
      From-SVN: r249731
      Joseph Myers committed
    • genmultilib (combination_space): Accept '+' in option names. · 601d22f6
      2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	gcc/
      	* genmultilib (combination_space): Accept '+' in option names.
      
      From-SVN: r249730
      Christophe Lyon committed
    • cmov7.c (sgn): Renamed to ... · b8d62ac8
      	* gcc.target/i386/cmov7.c (sgn): Renamed to ...
      	(foo): ... this.  Change constants such that it isn't matched
      	as __builtin_copysign, yet tests the combiner the same.
      
      From-SVN: r249729
      Jakub Jelinek committed
    • Bail out HARD_REGISTER vars in asan (PR sanitizer/81224). · 6dc61b45
      2017-06-28  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/81224
      	* asan.c (instrument_derefs): Bail out inner references
      	that are hard register variables.
      2017-06-28  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/81224
      	* gcc.dg/asan/pr81224.c: New test.
      
      From-SVN: r249728
      Martin Liska committed