- 03 Feb, 2015 5 commits
-
-
PR other/63504 * combine.c (reg_n_sets_max): New variable. (can_change_dest_mode, reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine, get_last_value_validate, get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max. (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max. (rest_of_handle_combine): Initialize reg_n_sets_max. From-SVN: r220368
Jakub Jelinek committed -
Consider the example code mentionned in this PR: $ cat -n test.c 1 #define C(a, b) a ## b 2 #define L(x) C(L, x) 3 #define M(a) goto L(__LINE__); __LINE__; L(__LINE__): 4 M(a /* --> this is the line of the expansion point of M. */ 5 ); /* --> this is the line of the end of the invocation of M. */ $ "cc1 -quiet -E test.c" yields: goto L5; 5; L4: ; Notice how we have a 'L4' there, where it should be L5. That is the issue. My understanding is that during the *second* expansion of __LINE__ (the one between the two L(__LINE__)), builtin_macro() is called by enter_macro_context() with the location of the expansion point of M (which is at line 4). Then _cpp_builtin_macro_text() expands __LINE__ into the line number of the location of the last token that has been lexed, which is the location of the closing parenthesis of the invocation of M, at line 5. So that invocation of __LINE__ is expanded into 5. Now let's see why the last invocation of __LINE__ is expanded into 4. In builtin_macro(), we have this code at some point: /* Set pfile->cur_token as required by _cpp_lex_direct. */ pfile->cur_token = _cpp_temp_token (pfile); cpp_token *token = _cpp_lex_direct (pfile); /* We should point to the expansion point of the builtin macro. */ token->src_loc = loc; The first two statements insert a new token in the stream of lexed token and pfile->cur_token[-1], is the "new" last token that has been lexed. But the location of pfile->cur_token[-1] is the same location as the location of the "previous" pfile->cur_token[-1], by courtesy of _cpp_temp_token(). So normally, in subsequent invocations of builtin_macro(), the location of pfile->cur_token[-1] should always be the location of the closing parenthesis of the invocation of M at line 5. Except that that code in master now has the statement "token->src_loc = loc;" on the next line. That statement actually sets the location of pfile->cur_token[-1] to 'loc'. Which is the location of the expansion point of M, which is on line 4. So in the subsequent call to builtin_macro() (for the last expansion of __LINE__ in L(__LINE__)), for _cpp_builtin_macro_text(), pfile->cur_token[-1].src_loc is going to have a line number of 4. I think the core issue here is that the location that is passed to builtin_macro() from enter_macro_context() is not correct when we are in presence of a top-most function-like macro invocation; in that case, that location should be the location of the closing parenthesis of the macro invocation. Otherwise, if we are in presence of a a top-most object-like macro invocation then the location passed down to builtin_macro should be the location of the expansion point of the macro. That way, in the particular case of the input code above, the location received by builtin_macro() will always have line number 5. Boostrapped and tested on x86_64-unknown-linux-gnu against trunk. libcpp/ChangeLog: * internal.h (cpp_reader::top_most_macro_node): New data member. * macro.c (enter_macro_context): Pass the location of the end of the top-most invocation of the function-like macro, or the location of the expansion point of the top-most object-like macro. (cpp_get_token_1): Store the top-most macro node in the new pfile->top_most_macro_node data member. (_cpp_pop_context): Clear the new cpp_reader::top_most_macro_node data member. gcc/testsuite/ChangeLog: * gcc.dg/cpp/builtin-macro-1.c: New test case. Signed-off-by: Dodji Seketeli <dodji@redhat.com> From-SVN: r220367
Dodji Seketeli committed -
PR go/64836 PR go/64838 compiler: Use int64_t for backend type size and alignment. Fixes 32-bit host 64-bit target cross-compilation. * go-gcc.cc (Gcc_backend::type_size): Change return type to int64_t. (Gcc_backend::type_alignment): Likewise. (Gcc_backend::type_field_alignment): Likewise. (Gcc_backend::type_field_offset): Likewise. (Gcc_backend::implicit_variable): Change alignment parameter type to int64_t. From-SVN: r220364
Ian Lance Taylor committed -
PR c++/64901 * decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and DECL_OVERRIDE_P. From-SVN: r220363
Ville Voutilainen committed -
From-SVN: r220362
GCC Administrator committed
-
- 02 Feb, 2015 15 commits
-
-
* ipa-inline.c (early_inliner): Skip inlining only in always_inlined; if some always_inline was inlined, apply changes before inlining heuristically. * g++.dg/ipa/devirt-37.C: Disable early inlining. From-SVN: r220359
Jan Hubicka committed -
2015-02-02 Bruno Loff <bruno.loff@gmail.com> * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after processing enum declaration. From-SVN: r220358
Bruno Loff committed -
From-SVN: r220356
Jason Merrill committed -
2015-02-02 Christophe Lyon <christophe.lyon@linaro.org> * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (_ARM_FPSRC): Add DN and AHP fields. (clean_results): Force DN=1 on AArch64. * gcc.target/aarch64/advsimd-intrinsics/binary_op_no64.inc: New file. * gcc.target/aarch64/advsimd-intrinsics/vhadd.c: New file. * gcc.target/aarch64/advsimd-intrinsics/vhsub.c: New file. * gcc.target/aarch64/advsimd-intrinsics/vmax.c: New file. * gcc.target/aarch64/advsimd-intrinsics/vmin.c: New file. * gcc.target/aarch64/advsimd-intrinsics/vrhadd.c: New file. From-SVN: r220353
Christophe Lyon committed -
* MAINTAINERS (Various Maintainers: testsuite): Remove myself. (Write After Approval): Update address. From-SVN: r220352
Janis Johnson committed -
gcc/ChangeLog: PR jit/64810 * config/arm/arm.c (arm_option_override): Set arm_selected_arch/cpu/tune to NULL on entry. From-SVN: r220351
David Malcolm committed -
gcc/po: * gcc.pot: Regenerate. libcpp/po: * cpplib.pot: Regenerate. From-SVN: r220349
Joseph Myers committed -
2015-02-02 Tejas Belagod <tejas.belagod@arm.com> Andrew Pinski <pinskia@gcc.gnu.org> Jakub Jelinek <jakub@gcc.gnu.org> PR target/64231 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large integer typing for small model. Use IN_RANGE. Co-Authored-By: Andrew Pinski <pinskia@gcc.gnu.org> Co-Authored-By: Jakub Jelinek <jakub@gcc.gnu.org> From-SVN: r220348
Tejas Belagod committed -
gcc/jit/ChangeLog: PR jit/64810 * dummy-frontend.c (jit_langhook_type_for_mode): Support TYPE_MODE (long_long_integer_type_node). From-SVN: r220347
David Malcolm committed -
2015-02-02 Richard Biener <rguenther@suse.de> * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs. * tree-vrp.c (vrp_valueize_1): Likewise. From-SVN: r220346
Richard Biener committed -
* trans-decl.c (gfc_get_symbol_decl): Removed duplicate code. * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation. Fixed datatype of charlen to be a 32-bit int. From-SVN: r220345
Andre Vehreschild committed -
gcc/ * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather than mem for toc_restore. * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define. (call_indirect_aix, call_value_indirect_aix): Adjust to suit. (call_indirect_elfv2, call_value_indirect_elfv2): Likewise. gcc/testsuite/ * gcc.target/powerpc/cprophard.c: New. From-SVN: r220344
Alan Modra committed -
re PR libgomp/64635 (darwin produces libgomp-plugin-host_nonshm.1.dylib but tries to load libgomp-plugin-host_nonshm.so.1) PR libgomp/64635 * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h. Link with -lpthread. * config/aix/plugin-suffix.h: Delete. From-SVN: r220341
David Edelsohn committed -
PR target/64047 * config/rs6000/rs6000.c (rs6000_set_current_function): Handle explicit default options. From-SVN: r220340
David Edelsohn committed -
From-SVN: r220339
GCC Administrator committed
-
- 01 Feb, 2015 11 commits
-
-
2015-02-01 Andreas Tobler <andreast@gcc.gnu.org> * gfortran.dg/enum_9.f90: Use arm_eabi instead of arm*-*-linux*. * gfortran.dg/enum_10.f90: Likewise. Reorder dg-additional-sources. From-SVN: r220330
Andreas Tobler committed -
PR ipa/64872 * ipa-utils.c (ipa_merge_profiles): Add release argument. * ipa-icf.c (sem_function::merge): Do not release body when merging. * ipa-utils.h (ipa_merge_profiles): Update prototype. From-SVN: r220329
Jan Hubicka committed -
PR debug/64817 * cfgexpand.c (deep_ter_debug_map): New variable. (avoid_deep_ter_for_debug): New function. (expand_debug_expr): If TERed SSA_NAME is in deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL instead of trying to expand SSA_NAME's def stmt. (expand_debug_locations): When expanding debug bind of a DEBUG_EXPR_DECL to corresponding SSA_NAME, temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's value. (pass_expand::execute): Call avoid_deep_ter_for_debug on all debug bind stmts. Delete deep_ter_debug_map after expand_debug_location if non-NULL and clear it. * gcc.dg/pr64817-1.c: New test. * gcc.dg/pr64817-2.c: New test. From-SVN: r220320
Jakub Jelinek committed -
From-SVN: r220319
Jonathan Wakely committed -
re PR libstdc++/64883 (FAIL: 17_intro/headers/c++*/all_attributes.cc (test for excess errors) on x86_64-apple-darwin10) PR libstdc++/64883 * include/c_global/cstdio (gets): Use __deprecated__ attribute instead of deprecated. * include/c_std/cstdio (gets): Likewise. * testsuite/17_intro/headers/c++1998/all_attributes.cc: Avoid clashing with attributes used in darwin headers. From-SVN: r220318
Jonathan Wakely committed -
gcc/ PR target/64851 * config/sh/sync.md (atomic_fetch_notsi_hard, atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa, atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask, atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard, atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb, atomic_not_fetch<mode>_soft_imask): New insns. gcc/testsuite/ PR target/64851 * gcc.target/sh/pr64851-0.h: New * gcc.target/sh/pr64851-1.c: New * gcc.target/sh/pr64851-2.c: New * gcc.target/sh/pr64851-3.c: New * gcc.target/sh/pr64851-4.c: New From-SVN: r220317
Oleg Endo committed -
* haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro. (rank_for_schedule_debug): Split from ... (rank_for_schedule): ... this. (ready_sort): Sort DEBUG_INSNs separately from normal INSNs. * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order. From-SVN: r220316
Maxim Kuvyrkov committed -
2015-01-31 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/md.texi (Machine Constraints): Alphabetize table by target. * doc/extend.texi (x86 Variable Attributes): Move section to correct alphabetization after renaming. (x86 Type Attributes): Likewise. (Target Builtins): Re-alphabetize menu. (x86 Built-in Functions): Move section to correct alphabetization after renaming. (x86 transactional memory intrinsics): Likewise. * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options and x86 Windows Options in table and menu. (x86 Options): Move section to correct alphabetization after renaming. (x86 Windows Options): Likewise. From-SVN: r220315
Sandra Loosemore committed -
From-SVN: r220314
Sandra Loosemore committed -
Similar to the issue with fatal_error that I fixed in <https://gcc.gnu.org/ml/gcc-patches/2015-01/msg02690.html>, the overloads of gfc_warning and gfc_warning_now (with and without a first argument for an option number) also break gcc.pot regeneration because xgettext expects the translated string argument to be in a fixed position for a given function name. This patch applies the corresponding fix of always passing a first argument (option number or 0), just like the core diagnostic functions warning and warning_at, and removing the problem overloads without it. Bootstrapped with no regressions on x86_64-unknown-linux-gnu. * error.c (gfc_warning (const char *, ...), gfc_warning_now (const char *, ...)): Remove functions. * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now (const char *, ...)): Remove declarations. * arith.c, check.c, data.c, decl.c, frontend-passes.c, interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c, options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c, trans-common.c, trans-const.c, trans-stmt.c: All callers of gfc_warning and gfc_warning_now changed to pass 0 or option number as first argument. From-SVN: r220313
Joseph Myers committed -
From-SVN: r220312
GCC Administrator committed
-
- 31 Jan, 2015 8 commits
-
-
2015-01-31 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the preferred names of the architecture and its 32- and 64-bit variants. * doc/invoke.texi: Likewise. * doc/md.texi: Likewise. From-SVN: r220309
Sandra Loosemore committed -
* config/pa/linux-atomic.c (__kernel_cmpxchg2): Change declaration of oldval and newval to const void *. Fix typo. (FETCH_AND_OP_2): Use __atomic_load_n to load value. (FETCH_AND_OP_WORD): Likewise. (OP_AND_FETCH_WORD): Likewise. (COMPARE_AND_SWAP_2): Likewise. (__sync_val_compare_and_swap_4): Likewise. (__sync_lock_test_and_set_4): Likewise. (SYNC_LOCK_RELEASE_2): Likewise. Remove support for long long atomic operations. From-SVN: r220307
John David Anglin committed -
re PR target/64882 (ICE on valid code at -O3 with -g enabled in simplify_subreg, at simplify-rtx.c:5681) 2015-01-31 Uros Bizjak <ubizjak@gmail.com> PR target/64882 * config/i386/predicates.md (address_no_seg_operand): Reject non-CONST_INT_P operands in invalid mode. 2015-01-31 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of address_operand 0. Rename from *prefetch_prefetchwt1_<mode>. * config/i386/predicates.md (address_no_seg_operand): Call address_operand with VOIDmode. (vsib_address_operand): Ditto. (address_mpx_no_base_operand): Ditto. (address_mpx_no_index_operand): Ditto. testsuite/ChangeLog: 2015-01-31 Uros Bizjak <ubizjak@gmail.com> PR target/64882 * gcc.dg/torture/pr64882.c: New test. From-SVN: r220306
Uros Bizjak committed -
PR target/64159 * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Add XFAIL for powerpc*-*-* and sparc*-*-*. From-SVN: r220305
David Edelsohn committed -
From-SVN: r220304
Uros Bizjak committed -
* g++.dg/ipa/pr64146.C (dg-final): Cleanup icf ipa dump. * gcc.target/i386/chkp-builtins-1.c (dg-final): Cleanup chkp tree dump. * gcc.target/i386/chkp-builtins-2.c (dg-final): Ditto. * gcc.target/i386/chkp-builtins-3.c (dg-final): Ditto. * gcc.target/i386/chkp-builtins-4.c (dg-final): Ditto. * gcc.target/i386/chkp-const-check-1.c (dg-final): Cleanup chkopt tree dump. * gcc.target/i386/chkp-lifetime-1.c (dg-final): Ditto. * gcc.target/i386/chkp-remove-bndint-1.c (dg-final): Cleanup optimized tree dump. * gcc.target/i386/chkp-remove-bndint-2.c (dg-final): Ditto. * gfortran.dg/goacc/private-1.f95 (dg-final): Cleanup omplower tree dump. From-SVN: r220303
Uros Bizjak committed -
Fixes golang/go#9695. From-SVN: r220301
Ian Lance Taylor committed -
From-SVN: r220300
GCC Administrator committed
-
- 30 Jan, 2015 1 commit
-
-
re PR rtl-optimization/64688 (internal compiler error: Max. number of generated reload insns per insn is achieved (90)) 2015-01-30 Vladimir Makarov <vmakarov@redhat.com> PR target/64688 * lra-constraints.c (original_subreg_reg_mode): New. (simplify_operand_subreg): Try to simplify subreg of const. Use original_subreg_reg_mode for it. (swap_operands): Update original_subreg_reg_mode. (curr_insn_transform): Set up original_subreg_reg_mode. 2015-01-30 Vladimir Makarov <vmakarov@redhat.com> PR target/64688 * g++.dg/pr64688-2.C: New. From-SVN: r220297
Vladimir Makarov committed
-