aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-11-01 * configure.ac: Change target-libasan to target-libsanitizer.asanWei Mi
* configure.in: Regenerate. * Makefile.def: Change libasan module to libsanitizer. * Makefile.in: Regenerate. * libsanitizer: Change libasan to libsanitizer and add an empty tsan directory under libsanitizer. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/asan@193074 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-30 2012-10-29 Wei Mi <wmi@google.com>Wei Mi
* configure.ac: Add libasan to target_libraries * Makefile.def: Ditto * configure: Regenerate * Makefile.in: Regenerate * libasan: New directory for asan runtime gcc: 2012-10-29 Wei Mi <wmi@google.com> * gcc.c (LINK_COMMAND_SPEC): Add -lasan to link command if -fasan is on. libasan: 2012-10-29 Wei Mi <wmi@google.com> Initial checkin: migrate asan runtime from llvm. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/asan@192977 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26 Merge from trunk rev 192857.Diego Novillo
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/asan@192864 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26 * ChangeLog: Fix whitespace.Uros Bizjak
* testsute/ChangeLog: Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192856 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26 * config/i386/crtfastmath.c (set_fast_math): Use __builtin_ia32_fxsave.Uros Bizjak
Clear only fxsave.mxcsr_mask. Use saved mxcsr from fxsave structure when appropriate. Correct structure element types. * config/i386/t-crtfm (crtfastmath.o): Compile with -mfxsr, remove -minline-all-stringops from compile flags. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192855 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26syscall: fix creds_test to reliably close os.FileIan Lance Taylor
Uncovered by Uros Bizjak. Before this patch the test would close the file descriptor but not the os.File. When the os.File was GC'ed, the finalizer would close the file descriptor again. That would cause problems if the same file descriptor were returned by a later call to open in another test. On my system: > GOGC=30 go test --- FAIL: TestPassFD (0.04 seconds) passfd_test.go:62: FileConn: dup: bad file descriptor FAIL git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192854 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26 PR target/55061Jack Howarth
* configure.ac: Check for _Unwind_GetIPInfo function declaration. * configure: Regenerate. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192853 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26 * tree-ssa-threadedge.c (cond_arg_set_in_bb): Use last stmt.Jeff Law
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192852 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26Author: Gunther Nikl <gnikl@users.sourceforge.net>Gunther Nikl
* common/config/m68k/m68k-common.c (m68k_handle_option): Set gcc_options fields of opts_set for -m68020-40 and -m68020-60. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192851 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26Avoid conservative behavior in REE by allowing removal of redundant extendsTeresa Johnson
when the def feeds another extend with a different mode. This works because in merge_def_and_ext only calls combine_set_extension if the candidate for removal has a wider mode than the def extend's mode, otherwise the def extend mode is preserved. In combine_set_extension the def is modified to use the wider candidate's mode. 2012-10-26 Teresa Johnson <tejohnson@google.com> * ree.c (add_removable_extension): Remove unnecessary mode check with other extension. * testsuite/gcc.c-torture/execute/20111227-2.c: New test. * testsuite/gcc.c-torture/execute/20111227-3.c: Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192850 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26 * ipa-inline-transform.c (inline_call): Only account size changesJan Hubicka
for !DECL_EXTERNAL. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192849 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-262012-10-26 Martin Jambor <mjambor@suse.cz>Martin Jambor
PR debug/54971 * tree-sra.c (struct access): New flag grp_to_be_debug_replaced. (dump_access): Dump the new flag. (analyze_access_subtree): Set the new flag when appropriate. (create_access_replacement): Handle debug replacements differently. (generate_subtree_copies): Handle the grp_to_be_debug_replaced flag. (init_subtree_with_zero): Likewise. (sra_modify_expr): Likewise. (load_assign_lhs_subreplacements): Likewise. (sra_modify_assign): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192848 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26/cpPaolo Carlini
2012-10-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54984 * init.c (build_new): Don't turn a null *init into a pointer to empty vector orig_init. /testsuite 2012-10-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54984 * g++.dg/template/new11.C: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192846 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26[asan] Instrument built-in memory access function callsDodji Seketeli
This patch instruments many memory access patterns through builtins. Basically, for a call like: __builtin_memset (from, 0, n_bytes); the patch would only instrument the accesses at the beginning and at the end of the memory region [from, from + n_bytes]. This is the strategy used by the llvm implementation of asan. This instrumentation is done for all the memory access builtin functions that expose a well specified memory region -- one that explicitly states the number of bytes accessed in the region. A special treatment is used for __builtin_strlen. The patch instruments the access to the first byte of its argument, as well as the access to the byte (of the argument) at the offset returned by strlen. For the __sync_* and __atomic* calls the patch instruments the access to the bytes pointed to by the argument. While doing this, I have added a new parameter to build_check_stmt to decide whether to insert the instrumentation code before or after the statement iterator. This allows us to do away with the gsi_{next,prev} dance we were doing in the callers of this function. Tested by running cc1 -fasan on variations of simple programs like: int foo () { char foo[10] = {0}; foo[0] = 't'; foo[1] = 'e'; foo[2] = 's'; foo[3] = 't'; int l = __builtin_strlen (foo); int n = sizeof (foo); __builtin_memset (&foo[4], 0, n - 4); __sync_fetch_and_add (&foo[11], 1); return l; } and by starring at the gimple output which for this function is: ;; Function foo (foo, funcdef_no=0, decl_uid=1714, cgraph_uid=0) foo () { int n; int l; char foo[10]; int D.1725; char * D.1724; int D.1723; long unsigned int D.1722; int D.1721; long unsigned int D.1720; long unsigned int _1; int _4; long unsigned int _5; int _6; char * _7; int _8; char * _9; unsigned long _10; unsigned long _11; unsigned long _12; signed char * _13; signed char _14; _Bool _15; unsigned long _16; signed char _17; _Bool _18; _Bool _19; char * _20; unsigned long _21; unsigned long _22; unsigned long _23; signed char * _24; signed char _25; _Bool _26; unsigned long _27; signed char _28; _Bool _29; _Bool _30; char * _31; unsigned long _32; unsigned long _33; unsigned long _34; signed char * _35; signed char _36; _Bool _37; unsigned long _38; signed char _39; _Bool _40; _Bool _41; char * _42; unsigned long _43; unsigned long _44; unsigned long _45; signed char * _46; signed char _47; _Bool _48; unsigned long _49; signed char _50; _Bool _51; _Bool _52; char * _53; unsigned long _54; unsigned long _55; unsigned long _56; signed char * _57; signed char _58; _Bool _59; unsigned long _60; signed char _61; _Bool _62; _Bool _63; char[10] * _64; unsigned long _65; unsigned long _66; unsigned long _67; signed char * _68; signed char _69; _Bool _70; unsigned long _71; signed char _72; _Bool _73; _Bool _74; unsigned long _75; unsigned long _76; unsigned long _77; signed char * _78; signed char _79; _Bool _80; unsigned long _81; signed char _82; _Bool _83; _Bool _84; long unsigned int _85; long unsigned int _86; char * _87; char * _88; unsigned long _89; unsigned long _90; unsigned long _91; signed char * _92; signed char _93; _Bool _94; unsigned long _95; signed char _96; _Bool _97; _Bool _98; char * _99; unsigned long _100; unsigned long _101; unsigned long _102; signed char * _103; signed char _104; _Bool _105; unsigned long _106; signed char _107; _Bool _108; _Bool _109; <bb 2>: foo = {}; _9 = &foo[0]; _10 = (unsigned long) _9; _11 = _10 >> 3; _12 = _11 + 17592186044416; _13 = (signed char *) _12; _14 = *_13; _15 = _14 != 0; _16 = _10 & 7; _17 = (signed char) _16; _18 = _17 >= _14; _19 = _15 & _18; if (_19 != 0) goto <bb 5>; else goto <bb 4>; <bb 5>: __asan_report_store1 (_10); <bb 4>: foo[0] = 116; _20 = &foo[1]; _21 = (unsigned long) _20; _22 = _21 >> 3; _23 = _22 + 17592186044416; _24 = (signed char *) _23; _25 = *_24; _26 = _25 != 0; _27 = _21 & 7; _28 = (signed char) _27; _29 = _28 >= _25; _30 = _26 & _29; if (_30 != 0) goto <bb 7>; else goto <bb 6>; <bb 7>: __asan_report_store1 (_21); <bb 6>: foo[1] = 101; _31 = &foo[2]; _32 = (unsigned long) _31; _33 = _32 >> 3; _34 = _33 + 17592186044416; _35 = (signed char *) _34; _36 = *_35; _37 = _36 != 0; _38 = _32 & 7; _39 = (signed char) _38; _40 = _39 >= _36; _41 = _37 & _40; if (_41 != 0) goto <bb 9>; else goto <bb 8>; <bb 9>: __asan_report_store1 (_32); <bb 8>: foo[2] = 115; _42 = &foo[3]; _43 = (unsigned long) _42; _44 = _43 >> 3; _45 = _44 + 17592186044416; _46 = (signed char *) _45; _47 = *_46; _48 = _47 != 0; _49 = _43 & 7; _50 = (signed char) _49; _51 = _50 >= _47; _52 = _48 & _51; if (_52 != 0) goto <bb 11>; else goto <bb 10>; <bb 11>: __asan_report_store1 (_43); <bb 10>: foo[3] = 116; _53 = (char *) &foo; _54 = (unsigned long) _53; _55 = _54 >> 3; _56 = _55 + 17592186044416; _57 = (signed char *) _56; _58 = *_57; _59 = _58 != 0; _60 = _54 & 7; _61 = (signed char) _60; _62 = _61 >= _58; _63 = _59 & _62; if (_63 != 0) goto <bb 13>; else goto <bb 12>; <bb 13>: __asan_report_load1 (_54); <bb 12>: _1 = __builtin_strlen (&foo); _64 = _53 + _1; _65 = (unsigned long) _64; _66 = _65 >> 3; _67 = _66 + 17592186044416; _68 = (signed char *) _67; _69 = *_68; _70 = _69 != 0; _71 = _65 & 7; _72 = (signed char) _71; _73 = _72 >= _69; _74 = _70 & _73; if (_74 != 0) goto <bb 15>; else goto <bb 14>; <bb 15>: __asan_report_load1 (_65); <bb 14>: l_2 = (int) _1; n_3 = 10; _4 = n_3 + -4; _5 = (long unsigned int) _4; _6 = l_2 + 1; _7 = &foo[_6]; if (_5 != 0) goto <bb 17>; else goto <bb 16>; <bb 17>: _75 = (unsigned long) _7; _76 = _75 >> 3; _77 = _76 + 17592186044416; _78 = (signed char *) _77; _79 = *_78; _80 = _79 != 0; _81 = _75 & 7; _82 = (signed char) _81; _83 = _82 >= _79; _84 = _80 & _83; _85 = _5; _86 = _85 - 1; _87 = _7; _88 = _87 + _86; _89 = (unsigned long) _88; _90 = _89 >> 3; _91 = _90 + 17592186044416; _92 = (signed char *) _91; _93 = *_92; _94 = _93 != 0; _95 = _89 & 7; _96 = (signed char) _95; _97 = _96 >= _93; _98 = _94 & _97; if (_98 != 0) goto <bb 21>; else goto <bb 20>; <bb 21>: __asan_report_store1 (_89); <bb 20>: if (_84 != 0) goto <bb 19>; else goto <bb 18>; <bb 19>: __asan_report_store1 (_75); <bb 18>: <bb 16>: __builtin_memset (_7, 0, _5); _99 = &foo[11]; _100 = (unsigned long) _99; _101 = _100 >> 3; _102 = _101 + 17592186044416; _103 = (signed char *) _102; _104 = *_103; _105 = _104 != 0; _106 = _100 & 7; _107 = (signed char) _106; _108 = _107 >= _104; _109 = _105 & _108; if (_109 != 0) goto <bb 23>; else goto <bb 22>; <bb 23>: __asan_report_store1 (_100); <bb 22>: __sync_fetch_and_add_1 (&foo[11], 1); _8 = l_2; foo ={v} {CLOBBER}; <L1>: return _8; } ;; Function _GLOBAL__sub_I_00099_0_foo (_GLOBAL__sub_I_00099_0_foo, funcdef_no=1, decl_uid=1752, cgraph_uid=4) _GLOBAL__sub_I_00099_0_foo () { <bb 2>: __asan_init (); return; } gcc/ * asan.c (insert_if_then_before_iter, instrument_mem_region_access, (instrument_strlen_call, maybe_instrument_builtin_call, (maybe_instrument_call): New static functions. (create_cond_insert_point): Renamed create_cond_insert_point_before_iter into this. Add a new parameter to decide whether to insert the condition before or after the statement iterator. (build_check_stmt): Adjust for the new create_cond_insert_point. Add a new parameter to decide whether to add the instrumentation code before or after the statement iterator. (instrument_assignment): Factorize from ... (transform_statements): ... here. Use maybe_instrument_call to instrument builtin function calls as well. (instrument_derefs): Adjust for the new parameter of build_check_stmt. Fix detection of bit-field access. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/asan@192845 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26[asan] Factorize condition insertion code out of build_check_stmtDodji Seketeli
This patch splits a new create_cond_insert_point_before_iter function out of build_check_stmt, to be used by a later patch. Tested by running cc1 -fasan on the test program below with and without the patch and by inspecting the gimple output to see that there is no change. void foo () { char foo[1] = {0}; foo[0] = 1; } gcc/ * asan.c (create_cond_insert_point_before_iter): Factorize out of ... (build_check_stmt): ... here. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/asan@192844 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26[asan] Make build_check_stmt accept an SSA_NAME for its baseDodji Seketeli
This patch makes build_check_stmt accept its memory access parameter to be an SSA name. This is useful for a subsequent patch that will re-use. Tested by running cc1 -fasan on the program below with and without the patch and inspecting the gimple output to see that there is no change. void foo () { char foo[1] = {0}; foo[0] = 1; } gcc/ * asan.c (build_check_stmt): Accept the memory access to be represented by an SSA_NAME. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/asan@192843 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26 * config/i386/i386.c (insn_is_function_arg) : Add check on CALLYuri Rumyantsev
instruction. (ix86_dependencies_evaluation_hook): Insert dependencies in all predecessors of call block for non-trivial region avoiding creation of loop-carried dependency to avoid cross-block motion of HW registers. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192842 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-262012-10-26 Richard Biener <rguenther@suse.de>Richard Biener
PR middle-end/54824 * tree-optimize.c (execute_fixup_cfg): Insert __builtin_unreachable at the end of blocks with no successors. * gcc.dg/torture/pr54824.c: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192841 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26ChangeLog/Alexander Ivchenko
* gcc/common/config/i386/i386-common.c (OPTION_MASK_ISA_FXSR_SET): New. (OPTION_MASK_ISA_XSAVE_SET): Likewise. (OPTION_MASK_ISA_XSAVEOPT_SET): Likewise. (ix86_handle_option): Handle mfxsr, mxsave, mxsaveopt options. * gcc/config.gcc (i[34567]86-*-*): Add fxsrintrin.h, xsaveintrin.h, xsaveoptintrin.h. (x86_64-*-*): Likewise. * config/i386/fxsrintrin.h: New header. * config/i386/xsaveintrin.h: Likewise. * config/i386/xsaveoptintrin.h: Likewise. * gcc/config/i386/driver-i386.c (host_detect_local_cpu): Detect FXSR/XSAVE/XSAVEOPT support. * gcc/config/i386/i386-builtin-types.def (VOID_FTYPE_PVOID_INT64): New function type. * gcc/config/i386/i386-c.c: Define __FXSR__, __XSAVE__ and __XSAVEOPT__ if needed. * gcc/config/i386/i386.c (ix86_target_string): Define -mfxsr, -mxsave and -mxsaveopt options. (PTA_FXSR): New. (PTA_XSAVE): Likewise. (PTA_XSAVEOPT): Likewise. (ix86_option_override_internal): Handle new option. (processor_alias_table): Added PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT. (ix86_valid_target_attribute_inner_p): Add OPT_mfxsr, OPT_mxsave, OPT_mxsaveopt. (ix86_builtins): Add IX86_BUILTIN_FXSAVE, IX86_BUILTIN_FXRSTOR, IX86_BUILTIN_FXSAVE64, IX86_BUILTIN_XSAVE, IX86_BUILTIN_XSAVE64, IX86_BUILTIN_XRSTOR, IX86_BUILTIN_XRSTOR64, IX86_BUILTIN_XSAVEOPT, IX86_BUILTIN_XSAVEOPT64. (ix86_expand_builtin): Handle these built-ins. * gcc/config/i386/i386.h (TARGET_FXSR): New. (TARGET_XSAVE): Likewise. (TARGET_XSAVEOPT): Likewise. * gcc/config/i386/i386.md (ANY_XSAVE): New int iterator. (ANY_XSAVE64): Likewise. (xsave): New int attribute. (fxsave): New instruction. (fxsave64): Likewise. (fxrstor): Likewise. (fxrstor64): Likewise. (<xsave>): Likewise. (<xsave>_rex64): Likewise. (xrstor): Likewise. (xrstor_rex64): Likewise. (xrstor64): Likewise. * gcc/config/i386/i386.opt (mfxsr): New. (mxsave): Likewise. (mxsaveopt): Likewise. * gcc/config/i386/x86intrin.h: Include xsaveintrin.h, fxsrintrin.h, xsaveoptintrin.h. testsuite/ChangeLog * gcc.target/i386/fxsave-1.c: New. * gcc.target/i386/fxsave64-1.c: Ditto. * gcc.target/i386/fxrstor-1.c: Ditto. * gcc.target/i386/fxrstor64-1.c: Ditto. * gcc.target/i386/xsave-1.c: Ditto. * gcc.target/i386/xsave64-1.c: Ditto. * gcc.target/i386/xrstor-1.c: Ditto. * gcc.target/i386/xrstor64-1.c: Ditto. * gcc.target/i386/xsaveopt-1.c: Ditto. * gcc.target/i386/xsaveopt64-1.c: Ditto. * gcc.target/i386/sse-12.c: Add -mfxsr, -mxsaveopt. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-14.c: Ditto. * gcc.target/i386/sse-22.c: Ditto. * gcc.target/i386/sse-23.c: Ditto. * g++.dg/other/i386-2.C: Ditto. * g++.dg/other/i386-3.C: Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192840 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-262012-10-26 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius
* config/avr/t-rtems: Revert previous commit. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192838 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26gcc/Richard Sandiford
PR bootstrap/55049 * Makefile.in (rtlanal.o): Add dependency on addresses.h. * rtl.h (address_info): New structure. (strip_address_mutations, decompose_address, decompose_lea_address) (decompose_mem_address, update_address, get_index_scale) (get_index_code): Declare. * rtlanal.c: Include addresses.h. (strip_address_mutations, must_be_base_p, must_be_index_p) (set_address_segment, set_address_base, set_address_index) (set_address_disp, decompose_incdec_address, decompose_automod_address) (extract_plus_operands, baseness, decompose_normal_address) (decompose_address, decompose_lea_address, decompose_mem_address) (update_address, get_index_scale, get_index_code): New functions. * lra-constraints.c (strip_subreg): New function. (address, extract_loc_address_regs, extract_address_regs) (get_index_scale): Delete. (process_addr_reg): Apply strip_subreg to the location. (uses_hard_regs_p): Use decompose_mem_address. (valid_address_p, base_plus_disp_to_reg, can_add_disp_p) (equiv_address_substitution): Take an address_info rather than an address. Remove other arguments. Avoid using Pmode. (process_address): Use decompose_mem_address and decompose_lea_address. Update calls to above functions. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192837 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26gcc/Richard Sandiford
* lra-constraints.c (process_address): Tighten arguments to base_reg_class. Use simplify_gen_binary to generate PLUS rtxes. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192836 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26gcc/Richard Sandiford
* lra-constraints.c (get_index_scale, can_add_disp_p): New functions. (equiv_address_substitution): Use them. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192835 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26gcc/Richard Sandiford
* lra-constraints.c (valid_address_p): New function, split out from... (process_address): ...here. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192834 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26gcc/Richard Sandiford
* lra-constraints.c (process_address): Describe the kinds of address that we might see. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192833 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-262012-10-25 Vladimir Makarov <vmakarov@redhat.com>Vladimir Makarov
* lra-int.h (lra_assert): Redefine it gcc_checking_assert. * lra-constraints.c (check_and_process_move): Remove #if ENABLE_ASSERT_CHECKING. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192832 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26 * varasm.c (assemble_variable): Set asan_protected evenWei Mi
for decls that are already ASAN_RED_ZONE_SIZE or more bytes aligned. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/asan@192830 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-262012-10-26 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius
* config/avr/rtems.h (TARGET_OS_CPP_BUILTINS): Remove __USE_INIT_FINI__. * config/avr/t-rtems (LIB1ASMFUNCS): Filter out _exit. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192828 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-26Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192827 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25Remove unnecessary sparc constraint.David S. Miller
* config/sparc/constraints.md ("U"): Delete. * config/sparc/sparc.md: Use 'r' constraint instead of 'U'. * config/sparc/sync.md: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192824 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25Change hash_table to support a comparator type different from theLawrence Crowl
value type stored in the hash table. The 'find' functions now may take a different type from the value type. This requires introducing a second typedef into the Descriptor conceptual type. Change the Descriptor concept to use typedefs value_type and compare_type instead of T. Change all users to match. Add usage documentation to hash-table.h. Tested on x86-64. Index: gcc/ChangeLog 2012-10-25 Lawrence Crowl <crowl@google.com> * hash-table.h: Add usage documentation. (template struct typed_free_remove): Clarify documentation. Rename template parameter. (struct typed_noop_remove): Likewise. (descriptor concept): Change typedef T to value_type. Add typedef compare_type. Use more precise template parameter name, Descriptor instead of Descr. Update users to match. (struct hash_table): Change 'find' parameters to use compare_type instead of the value type. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192823 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25 * gcc.dg/tree-ssa/cunroll-4.c: Update; we now remove the loopJan Hubicka
at ivcanon time. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192822 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25 * ipa-cp.c (ipcp_discover_new_direct_edges): If something was turnedJan Hubicka
to direct call update the summary. * ipa-inline-transform.c (inline_call): Sanity check that summaries match the predicted effect; fix updating of summary after edge redirection. * ipa-inline-analysis.c (inline_node_duplication_hook): Do not try to update the summary and recompute it instead. (estimate_function_body_sizes): Fix self size estimation; double check that it agrees with inline_update_overall_summary. (estimate_edge_size_and_time): Handle devirtualizaiton costs. (estimate_edge_devirt_benefit): Update to be called from estimate_edge_size_and_time. (estimate_calls_size_and_time): Update. (estimate_node_size_and_time): Watch overflows. (inline_merge_summary): Likewise. * ipa-prob.c: Include ipa-inline.h (ipa_make_edge_direct_to_target): After redirection update the summary. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192821 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25gcc/Cary Coutant
PR debug/55063 * dwarf2out.c (prune_unused_types_prune): Check whether DIE is already a declaration. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192820 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25libgo: Solaris portability patches.Ian Lance Taylor
From Rainer Orth. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192819 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-252012-10-25 Vladimir Makarov <vmakarov@redhat.com>Vladimir Makarov
* lra-assigns.c (assign_by_spills): Add non-reload pseudos assigned to hard register to changed_pseudo_bitmap. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192817 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-252012-10-25 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius
* config.gcc (microblaze*-*-rtems*): New target. * config/microblaze/rtems.h: New. * config/microblaze/t-rtems: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192815 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25/cpPaolo Carlini
2012-10-25 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53761 * class.c (finish_struct_1): Reject aggregates decorated with __transparent_union__ which cannot be made transparent because the type of the first field has a different ABI from the class overall. /testsuite 2012-10-25 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53761 * g++.dg/ext/transparent-union.C: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192814 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25 Core 1402Jason Merrill
cp/ * call.c (joust): An implicitly deleted move function is worse than any non-deleted function. * method.c (process_subob_fn): No special rules for move. (synthesized_method_walk, implicitly_declare_fn): Likewise. Warn about virtual base with non-trivial move assignment. * cp-tree.h (struct lang_decl_fn): Remove suppress_implicit_decl. (FNDECL_SUPPRESS_IMPLICIT_DECL): Remove. c-family/ * c.opt (Wvirtual-move-assign): New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192813 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25 * semantics.c (finish_omp_threadprivate): Call complete_type.Jason Merrill
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192812 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25c-family/Jason Merrill
* c.opt (Winherited-variadic-ctor): New. cp/ * class.c (one_inherited_ctor): Warn about variadic inherited ctor. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192811 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25Fix previous commit.Jan Hubicka
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192810 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25 PR tree-optimize/54980Jan Hubicka
* tree-ssa-loop-ivcanon.c (constant_after_peeling): Fix obvious typo. (loop_edge_to_cancel): Be sure that the edge is from an conditional so we can cancel it. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192809 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-252012-10-25 Marc Glisse <marc.glisse@inria.fr>Marc Glisse
PR c++/54427 gcc/ * tree.c (signed_or_unsigned_type_for): Handle vectors. gcc/cp/ * typeck.c (build_x_conditional_expr): Handle VEC_COND_EXPR. * call.c (build_conditional_expr_1): Likewise. gcc/c-family/ * c-common.c (scalar_to_vector): Handle VEC_COND_EXPR. gcc/testsuite/ * g++.dg/ext/vector19.C: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192808 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25 * ipa-inline.c (recursive_inlining): Redirect to masterJan Hubicka
clone before testing profitability. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192807 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-252012-10-25 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius
* config.host (sh*-*-rtems*): Add sh*-*-elf*'s extra_parts. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192805 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-252012-10-25 Richard Biener <rguenther@suse.de>Richard Biener
PR tree-optimization/54902 * tree-ssa-pre.c (fini_eliminate): Return TODO. (do_pre): Adjust. (execute_fre): Likewise. * tree-ssa-tailmerge.c (tail_merge_optimize): Delete unreachable blocks before computing dominators. * g++.dg/torture/pr54902.C: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192804 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25/cpPaolo Carlini
2012-10-25 Paolo Carlini <paolo.carlini@oracle.com> PR c++/34892 * parser.c (cp_parser_template_parameter): When cp_parser_parameter_declaration parsed a default argument don't see if *is_parameter_pack needs setting. /testsuite 2012-10-25 Paolo Carlini <paolo.carlini@oracle.com> PR c++/34892 * g++.dg/template/crash114.C: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192802 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-25gcc/Richard Sandiford
* expr.c (emit_block_move_via_loop): Use simplify_gen_binary rather than gen_rtx_PLUS. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192801 138bc75d-0d04-0410-961f-82ee72b054a4
2012-10-252012-10-25 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius
* config.host (sh*-*-rtems*): Add sh*-*-elf*'s extra_parts. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@192799 138bc75d-0d04-0410-961f-82ee72b054a4