aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-07-20re PR middle-end/81030 (ICE on valid code at -O1 (only) on x86_64-linux-gnu: ↵Jan Hubicka4-3/+52
verify_flow_info failed) PR middle-end/81030 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note when gimple level profile disagrees with what RTL expander did. * gcc.dg/pr81030.c: New test. From-SVN: r250383
2017-07-20re PR tree-optimization/61171 (vectorization fails for a reduction in ↵Richard Biener9-99/+292
presence of subtraction) 2017-07-20 Richard Biener <rguenther@suse.de> PR tree-optimization/61171 * tree-vectorizer.h (slp_instance): Add reduc_phis member. (vect_analyze_stmt): Add slp instance parameter. (vectorizable_reduction): Likewise. * tree-vect-loop.c (vect_analyze_loop_operations): Adjust. (vect_is_simple_reduction): Deal with chains not detected as SLP reduction chain, specifically not properly associated chains containing a mix of plus/minus. (get_reduction_op): Remove. (get_initial_defs_for_reduction): Simplify, pass in whether this is a reduction chain, pass in the SLP node for the PHIs. (vect_create_epilog_for_reduction): Get the SLP instance as arg and adjust. (vectorizable_reduction): Get the SLP instance as arg. During analysis remember the SLP node with the PHIs in the instance. Simplify getting at the vectorized reduction PHIs. * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass through SLP instance. (vect_slp_analyze_operations): Likewise. * tree-vect-stms.c (vect_analyze_stmt): Likewise. (vect_transform_stmt): Likewise. * g++.dg/vect/pr61171.cc: New testcase. * gfortran.dg/vect/pr61171.f: Likewise. * gcc.dg/vect/vect-reduc-11.c: Likewise. From-SVN: r250382
2017-07-20slp-43.c: Increase loop count to enable vectorization with V64QImode.Richard Biener3-6/+18
2017-07-20 Richard Biener <rguenther@suse.de> * gcc.dg/vect/slp-43.c: Increase loop count to enable vectorization with V64QImode. * gcc.dg/vect/slp-45.c: Likewise. From-SVN: r250380
2017-07-20Fix phi arg location in find_implicit_erroneous_behaviorTom de Vries2-1/+9
2017-07-20 Tom de Vries <tom@codesourcery.com> PR tree-optimization/81489 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move read of phi arg location to before loop that modifies phi. From-SVN: r250378
2017-07-20match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): New pattern.Naveen H.S4-0/+27
gcc * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): New pattern. gcc/testsuite * gcc.dg/tree-ssa/vrp116.c: New Test. From-SVN: r250377
2017-07-20Daily bump.GCC Administrator1-1/+1
From-SVN: r250376
2017-07-19re PR regression/81331 (missed Eh delivery in partitioned function)Jan Hubicka2-1/+7
PR middle-end/81331 * except.c (execute): Fix ordering issue. From-SVN: r250370
2017-07-19combine: Fix for PR81423Segher Boessenkool2-12/+9
We here have an AND of a SUBREG of an LSHIFTRT. If that SUBREG is paradoxical, the extraction we form is the length of the size of the inner mode, which includes some bits that should not be in the result. Just give up in that case. PR rtl-optimization/81423 * combine.c (make_compound_operation_int): Don't try to optimize the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical. From-SVN: r250365
2017-07-19cpu-builtin-1.c: Change test to use #ifdef __BUILTIN_CPU_SUPPORTS to see if...Michael Meissner2-1/+18
2017-07-19 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/cpu-builtin-1.c: Change test to use #ifdef __BUILTIN_CPU_SUPPORTS to see if the GLIBC is new enough that __builtin_cpu_is and __builtin_cpu_supports are supported. From-SVN: r250364
2017-07-19simplify-rtx: The truncation of an IOR can have all bits set (PR81423)Segher Boessenkool2-0/+15
... if it is an IOR with a constant with all bits set in the mode that is truncated to, for example. Handle that case. PR rtl-optimization/81423 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR with a constant that is -1 in the truncated to mode. From-SVN: r250363
2017-07-19Fix up plafform testes in check headers.Steven Munroe3-2/+11
Fix up plafform testes in check headers. After a resent GCC change the previously submitted BMI/BMI2 intrinsic test started to fail with a warning/error. [gcc/testsuite] 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org> * gcc.target/powerpc/bmi-check.h (main): Skip unless __BUILTIN_CPU_SUPPORTS__ defined. * gcc.target/powerpc/bmi2-check.h (main): Skip unless __BUILTIN_CPU_SUPPORTS__ defined. From-SVN: r250362
2017-07-19predict.c (propagate_unlikely_bbs_forward): Break out from ...Jan Hubicka3-0/+21
* predict.c (propagate_unlikely_bbs_forward): Break out from ... (determine_unlikely_bbs): ... here. * predict.h (propagate_unlikely_bbs_forward): Declare. * cfgexpand.c (pass_expand::execute): Use it. * bb-reorder.c (sanitize_hot_paths): Do not consider known to be unlikely edges. (find_rarely_executed_basic_blocks_and_crossing_edges): Use propagate_unlikely_bbs_forward. From-SVN: r250360
2017-07-19predict.c (propagate_unlikely_bbs_forward): Break out from ...Jan Hubicka2-37/+60
* predict.c (propagate_unlikely_bbs_forward): Break out from ... (determine_unlikely_bbs): ... here. * predict.h (propagate_unlikely_bbs_forward): Declare. * cfgexpand.c (pass_expand::execute): Use it. * bb-reorder.c (sanitize_hot_paths): Do not consider known to be unlikely edges. (find_rarely_executed_basic_blocks_and_crossing_edges): Use propagate_unlikely_bbs_forward. From-SVN: r250359
2017-07-19re PR regression/81331 (missed Eh delivery in partitioned function)Jan Hubicka2-0/+62
PR middle-end/81331 * except.c (maybe_add_nop_after_section_switch): New function. (execute): Use it. From-SVN: r250358
2017-07-19ada-tree.h (TYPE_OBJECT_RECORD_TYPE, [...]): Use TYPE_MIN_VALUE_RAW instead ↵Jakub Jelinek2-4/+13
of TYPE_MINVAL. * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE, TYPE_GCC_MIN_VALUE): Use TYPE_MIN_VALUE_RAW instead of TYPE_MINVAL. (TYPE_GCC_MAX_VALUE): Use TYPE_MAX_VALUE_RAW instead of TYPE_MAXVAL. From-SVN: r250355
2017-07-19Fix assert in gimple_phi_set_argTom de Vries2-1/+5
2017-07-19 Tom de Vries <tom@codesourcery.com> * gimple.h (gimple_phi_set_arg): Make assert more strict. From-SVN: r250352
2017-07-19Fix assert in gimple_phi_argTom de Vries2-1/+5
2017-07-19 Tom de Vries <tom@codesourcery.com> * gimple.h (gimple_phi_arg): Make assert more strict. From-SVN: r250351
2017-07-19Now adding the mmintrin.h intrinsic headers. The DG tests will follow.Steven Munroe4-2/+1468
2017-07-19 Steven Munroe <munroesj@gcc.gnu.org> * config.gcc (powerpc*-*-*): Add mmintrin.h. * config/rs6000/mmintrin.h: New file. * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h. From-SVN: r250350
2017-07-19class.c (add_implicitly_declared_members): Use ↵Nathan Sidwell5-35/+31
classtype_has_move_assign_or_move_ctor_p. * class.c (add_implicitly_declared_members): Use classtype_has_move_assign_or_move_ctor_p. (classtype_has_move_assign_or_move_ctor, classtype_has_user_move_assign_or_move_ctor_p): Merge into ... (classtype_has_move_assign_or_move_ctor_p): ... this new function. * cp-tree.h (classtype_has_user_move_assign_or_move_ctor_p): Replace with ... (classtype_has_move_assign_or_move_ctor_p): ... this. * method.c (maybe_explain_implicit_delete, lazily_declare_fn): Adjust. * tree.c (type_has_nontrivial_copy_init): Adjust. From-SVN: r250344
2017-07-19re PR tree-optimization/81346 (Missed constant propagation into comparison)Jakub Jelinek4-0/+40
PR tree-optimization/81346 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0. * gcc.dg/tree-ssa/pr81346-5.c: New test. From-SVN: r250342
2017-07-19Add v2di support for nvptxTom de Vries11-6/+162
2017-07-19 Tom de Vries <tom@codesourcery.com> * config/nvptx/nvptx-modes.def: Add V2DImode. * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare. * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode. (nvptx_output_mov_insn): Handle lack of mov.b128. (nvptx_print_operand): Handle 'H' and 'L' codes. (nvptx_vector_mode_supported): Allow V2DImode. (nvptx_preferred_simd_mode): New function. (nvptx_data_alignment): New function. (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to nvptx_preferred_simd_mode. * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from 64 to 128 bits. (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment. * config/nvptx/nvptx.md (VECIM): Add V2DI. * gcc.target/nvptx/decl-init.c: Update alignment. * gcc.target/nvptx/slp-2-run.c: New test. * gcc.target/nvptx/slp-2.c: New test. * gcc.target/nvptx/v2di.c: New test. * testsuite/libgomp.oacc-c/vec.c: New test. From-SVN: r250341
2017-07-19Add v2si support for nvptxTom de Vries11-0/+261
2017-07-19 Tom de Vries <tom@codesourcery.com> * config/nvptx/nvptx-modes.def: New file. Add V2SImode. * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode. (nvptx_vector_mode_supported): New function. Allow V2SImode. (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported. * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI. (mov<VECIM>_insn): New define_insn. (define_expand "mov<VECIM>): New define_expand. * gcc.target/nvptx/slp-run.c: New test. * gcc.target/nvptx/slp.c: New test. * gcc.target/nvptx/v2si-cvt.c: New test. * gcc.target/nvptx/v2si-run.c: New test. * gcc.target/nvptx/v2si.c: New test. * gcc.target/nvptx/vec.inc: New test. From-SVN: r250340
2017-07-19Add generic v2 vector mode support for nvptxTom de Vries2-4/+37
2017-07-19 Tom de Vries <tom@codesourcery.com> * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode. From-SVN: r250339
2017-07-19re PR tree-optimization/81346 (Missed constant propagation into comparison)Jakub Jelinek10-147/+430
PR tree-optimization/81346 * fold-const.h (fold_div_compare, range_check_type): Declare. * fold-const.c (range_check_type): New function. (build_range_check): Use range_check_type. (fold_div_compare): No longer static, rewritten into a match.pd helper function. (fold_comparison): Don't call fold_div_compare here. * match.pd (X / C1 op C2): New optimization using fold_div_compare as helper function. * gcc.dg/tree-ssa/pr81346-1.c: New test. * gcc.dg/tree-ssa/pr81346-2.c: New test. * gcc.dg/tree-ssa/pr81346-3.c: New test. * gcc.dg/tree-ssa/pr81346-4.c: New test. * gcc.target/i386/umod-3.c: Hide comparison against 1 from the compiler to avoid X / C1 op C2 optimization to trigger. From-SVN: r250338
2017-07-19tree.h (TYPE_MINVAL, [...]): Rename to ...Nathan Sidwell12-45/+74
gcc/ * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ... (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these. * tree.c (find_decls_types_r, verify_type): Use TYPE_{MIN,MAX}_VALUE_RAW. * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise. (hash_tree): Likewise. * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): Likewise. * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): Likewise. gcc/cp/ * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS, PACK_EXPANSION_EXTRA_ARGS): Use TYPE_{MIN,MAX}_VALUE_RAW. gcc/lto/ * lto.c (mentions_vars_p_type): Use TYPE_{MIN,MAX}_VALUE_RAW. (compare_tree_sccs_1, lto_fixup_prevailing_decls): Likewise. gcc/objc/ * objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use TYPE_{MIN,MAX}_VALUE_RAW. From-SVN: r250337
2017-07-19Fix an UBSAN test-case (PR sanitizer/63361).Martin Liska2-1/+8
2017-07-19 Martin Liska <mliska@suse.cz> PR sanitizer/63361 * c-c++-common/ubsan/float-cast-overflow-1.c: Add either -ffloat-store or -mieee for targets that need it. From-SVN: r250336
2017-07-19Handle equal-argument loop exit phi in expand_omp_for_static_chunkTom de Vries4-0/+34
2017-07-18 Tom de Vries <tom@codesourcery.com> PR middle-end/81464 * omp-expand.c (expand_omp_for_static_chunk): Handle equal-argument loop exit phi. * gfortran.dg/pr81464.f90: New test. From-SVN: r250335
2017-07-19Daily bump.GCC Administrator1-1/+1
From-SVN: r250332
2017-07-18compiler: insert backend type conversion for closure func ptrIan Lance Taylor2-2/+9
In Func_expression::do_get_backend when creating the backend representation for a closure, create a backend type conversion to account for potential differences between the closure struct type (where the number of fields is dependent on the number of values referenced in the closure) and the generic function descriptor type (struct with single function pointer field). Reviewed-on: https://go-review.googlesource.com/49255 From-SVN: r250327
2017-07-18re PR go/81451 (missing futex check - libgo/runtime/thread-linux.c:12:0 ↵Ian Lance Taylor1-1/+1
futex.h:13:12: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘long’) PR go/81451 runtime: inline runtime_osinit We had two identical copies of runtime_osinit. They set runtime_ncpu, a variable that is no longer used. Removing that leaves us with two lines. Inline those two lines in the two places the function was called. This fixes GCC PR 81451. Reviewed-on: https://go-review.googlesource.com/48862 From-SVN: r250326
2017-07-18compiler: pass correct 'function' flag to circular_pointer_typeIan Lance Taylor2-3/+3
The code in Named_type::do_get_backend was not passing the correct flag value for circular function types to Backend::circular_pointer_type (it was always setting this flag to false). Pass a true value if the type being converted is a function type. Reviewed-on: https://go-review.googlesource.com/49330 From-SVN: r250325
2017-07-18re PR go/81324 (libgo does not build with glibc 2.18)Ian Lance Taylor1-1/+1
PR go/81324 sysinfo.c: ignore ptrace_peeksiginfo_args from <linux/ptrace.h> With some versions of glibc and GNU/Linux ptrace_pseeksiginfo_args is defined in both <sys/ptrace.h> and <linux/ptrace.h>. We don't actually care about the struct, so use a #define to avoid a redefinition error. This fixes https://gcc.gnu.org/PR81324. Reviewed-on: https://go-review.googlesource.com/49290 From-SVN: r250324
2017-07-18re PR target/81471 (internal compiler error: in curr_insn_transform, at ↵Uros Bizjak4-7/+41
lra-constraints.c:3495) PR target/81471 * config/i386/i386.md (rorx_immediate_operand): New mode attribute. (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as operand 2 predicate. (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as operand 2 predicate. (ror,rol -> rorx splitters): Use const_int_operand as operand 2 predicate. testsuite/ChangeLog: PR target/81471 * gcc.target/i386/pr81471.c: New test. From-SVN: r250315
2017-07-18re PR tree-optimization/81410 (-O3 breaks code)Richard Biener4-4/+77
2017-06-18 Richard Biener <rguenther@suse.de> PR tree-optimization/81410 * tree-vect-stmts.c (vectorizable_load): Properly adjust for the gap in the ! slp_perm SLP case after each group. * gcc.dg/vect/pr81410.c: New testcase. From-SVN: r250312
2017-07-18re PR tree-optimization/81463 (ICE in scale_loop_profile at ↵Jan Hubicka2-1/+7
gcc/cfgloopmanip.c:603) PR middle-end/81463 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency again. From-SVN: r250311
2017-07-18re PR tree-optimization/81462 (ICE in estimate_bb_frequencies at ↵Jan Hubicka4-8/+47
gcc/predict.c:3546) PR middle-end/81462 * predict.c (set_even_probabilities): Cleanup; do not affect probabilities that are already known. (combine_predictions_for_bb): Call even when count is set. * g++.dg/torture/pr81462.C: New testcase. From-SVN: r250310
2017-07-18tree-parloops.c (try_transform_to_exit_first_loop_alt): Use TYPE_MAX_VALUE.Nathan Sidwell10-19/+39
gcc/ * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use TYPE_MAX_VALUE. gcc/c-family/ * c-warn.c (warn_for_memset): Use TYPE_{MIN,MAX}_VALUE. gcc/c/ * c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE. gcc/cp/ * cp-array-notation.c (build_array_notation_ref): Use TYPE_{MIN,MAX}_VALUE. gcc/fortran/ * trans.c (gfc_build_array_ref): Use TYPE_MAX_VALUE. From-SVN: r250309
2017-07-18gcc: ada: delete old $(P) referenceMike Frysinger2-2/+6
The P variable was deleted back in Nov 2015 (svn rev 231062), but its expansion was missed. Delete those now too. From-SVN: r250307
2017-07-18class.c (classtype_has_move_assign_or_move_ctor): Declare.Nathan Sidwell3-29/+17
* class.c (classtype_has_move_assign_or_move_ctor): Declare. (add_implicitly_declared_members): Use it. (type_has_move_constructor, type_has_move_assign): Merge into ... (classtype_has_move_assign_or_move_ctor): ... this new function. * cp-tree.h (type_has_move_constructor, type_has_move_assign): Delete. From-SVN: r250305
2017-07-18re PR middle-end/81408 (Lots of new -Wunsafe-loop-optimizations warnings ↵Bin Cheng5-8/+112
with 7 compared to 6) PR target/81408 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed optimization for loop niter analysis. gcc/testsuite * g++.dg/tree-ssa/pr81408.C: New. * gcc.dg/tree-ssa/pr19210-1.c: Check dump message rather than warning. From-SVN: r250304
2017-07-18re PR target/81473 ([avr] build fails due to INT8_MIN and friends.)Georg-Johann Lay2-3/+9
gcc/ PR target/81473 * config/avr/avr.c (avr_optimize_casesi): Don't use INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX. From-SVN: r250301
2017-07-18Fix PR81362: Vector peelingRobin Dapp2-22/+16
npeel was erroneously overwritten by vect_peeling_hash_get_lowest_cost although the corresponding dataref is not used afterwards. It should be safe to get rid of the npeel parameter since we use the returned peeling_info's npeel anyway. Also removed the body_cost_vec parameter which is not used elsewhere. gcc/ChangeLog: 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com> * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove body_cost_vec from _vect_peel_extended_info. (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec. (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and npeel. From-SVN: r250300
2017-07-18* config/arm/arm.c (emit_unlikely_jump): Remove unused var.Bin Cheng2-2/+4
From-SVN: r250299
2017-07-18re PR tree-optimization/80620 (gcc produces wrong code with -O3)Richard Biener5-2/+120
2017-07-18 Richard Biener <rguenther@suse.de> PR tree-optimization/80620 PR tree-optimization/81403 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to info when re-using a VN table entry. * gcc.dg/torture/pr80620.c: New testcase. * gcc.dg/torture/pr81403.c: Likewise. From-SVN: r250297
2017-07-18re PR tree-optimization/81418 (ICE in vect_get_vec_def_for_stmt_copy)Richard Biener4-23/+68
2017-06-18 Richard Biener <rguenther@suse.de> PR tree-optimization/81418 * tree-vect-loop.c (vectorizable_reduction): Properly compute vectype_in. Verify that with lane-reducing reduction operations we have a single def-use cycle. * gcc.dg/torture/pr81418.c: New testcase. From-SVN: r250296
2017-07-18Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>Carl Love7-115/+38
gcc/ChangeLog: 2017-07-17 Carl Love <cel@us.ibm.com> Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, VMULOSW): New enum "unspec" values. (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, altivec_vmulosw): New patterns. * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, VMULOSW): Add definitions. gcc/testsuite/ChangeLog: 2017-07-17 Carl Love <cel@us.ibm.com> Revert commit r249572 2017-06-22 Carl Love <cel@us.ibm.com> test case changes for commit 249424 * gcc.target/powerpc/builtins-2.c (vmulosh, vmulouh, vmulesh, vmuleuh): Fix scan-assembler-times should check for word not half word instructions. From-SVN: r250295
2017-07-18Daily bump.GCC Administrator1-1/+1
From-SVN: r250294
2017-07-17alpha.c: Include predict.h.Uros Bizjak2-0/+5
* config/alpha/alpha.c: Include predict.h. From-SVN: r250290
2017-07-17re PR tree-optimization/81162 (UBSAN switch triggers incorrect optimization ↵Bill Schmidt2-0/+6
in SLSR) 2017-07-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/81162 * gcc.dg/pr81162.c: Move this to... * gcc.dg/ubsan/pr81162.c: ...here. From-SVN: r250284
2017-07-17parser.c (cp_parser_decl_specifier_seq): Add fix-it hints for friend outside ↵Volker Reichelt5-7/+35
class and obsolete auto as... * parser.c (cp_parser_decl_specifier_seq): Add fix-it hints for friend outside class and obsolete auto as storage-class-specifier. * g++.dg/diagnostic/friend1.C: New test. * g++.dg/cpp0x/auto1.C: Add check for fix-it hint. From-SVN: r250282