1. 13 Feb, 2013 12 commits
    • re PR c++/56302 (sys/sdt.h asms stopped working at -O0) · 6760071f
      	PR c++/56302
      	* semantics.c (finish_asm_stmt): If input constraints allow
      	neither register nor memory, try maybe_constant_value to get
      	a constant if possible.
      
      	* g++.dg/torture/pr56302.C: New test.
      	* g++.dg/cpp0x/constexpr-56302.C: New test.
      	* c-c++-common/pr56302.c: New test.
      
      From-SVN: r196018
      Jakub Jelinek committed
    • i386.c (ix86_asan_shadow_offset): Revert last change. · 6422242b
      	* config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
      
      	* asan/asan_mapping.h (SHADOW_OFFSET): Set to (1ULL << 44) on x86-64.
      
      From-SVN: r196017
      Jakub Jelinek committed
    • re PR lto/56295 (Missed optimization with LTO) · 976a81ee
      2013-02-13  Richard Biener  <rguenther@suse.de>
      
      	PR lto/56295
      	* gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
      	globals in MEM_REFs.
      
      From-SVN: r196013
      Richard Biener committed
    • re PR fortran/56204 (gfortran.dg/quad_[23].f90 FAIL on Solaris 9/x86) · 6c8064fb
      2013-02-13  Tobias Burnus  <burnus@net-b.de>
                  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
      
              PR fortran/56204
              * gfortran.dg/quad_2.f90: Use "< epsilon" instead of "==".
              * gfortran.dg/quad_3.f90: Ditto.
      
      From-SVN: r196011
      Tobias Burnus committed
    • loop-init.c (loop_optimizer_init): Clear loop state when re-initializing preserved loops. · c1874a87
      2013-02-13  Richard Biener  <rguenther@suse.de>
      
      	* loop-init.c (loop_optimizer_init): Clear loop state when
      	re-initializing preserved loops.
      	* loop-unswitch.c (unswitch_single_loop): Return whether
      	we unswitched the loop.  Do not verify loop state here.
      	(unswitch_loops): When we unswitched a loop discover new
      	loops.
      
      From-SVN: r196010
      Richard Biener committed
    • libsanitizer merge from upstream r175049 · b4ab7d34
      From-SVN: r196009
      Kostya Serebryany committed
    • [asan] Avoid instrumenting duplicated memory access in the same basic block · bdcbe80c
      Like what Address Sanitizer does in LLVM, this patch avoids instrumented
      duplicated memory accesses in the same basic blocks.
      
      The approach taken is very conservative, to keep the pass simple, for
      a start.
      
      A memory access is considered to be a pair made of an expression tree
      representing the beginning of the memory region that is accessed and
      a the size of the access, in byte.  For now that size is either 1, 2,
      4, 8 or 16 bytes.
      
      The patch builds a hash table of the memory accesses that have been
      instrumented in the current basic block.  Then it walks the gimple
      statements of the current basic block.  For each statement, it tests
      if the memory regions it references have already been instrumented.
      If not, the statement is instrumented and each memory references that
      are actually instrumented are added to the hash table.  When a memory
      region is accessed (usually through builtin functions like memset),
      then what gets added to the hash table is actually two memory
      accesses: one for the beginning of the region, and the other for the
      its end.
      
      When the patch crosses a function call that is not a built-in function
      that we ought to instrument, the hash table is cleared, because that
      function call can possibly e.g free some memory that was instrumented.
      
      Likewise, when a new basic block is visited, the hash table is
      cleared.  I guess we could be smarter than just unconditionally
      clearing the hash table in this later case, but this is what asan@llvm
      does, and for now, I thought starting in a conservative manner might
      have some value.
      
      The hash table is destroyed at the end of the pass.
      
      Bootstrapped and tested against trunk on x86-64-unknown-linux-gnu.
      
      gcc/
      	* Makefile.in (asan.o): Add new dependency on hash-table.h
      	* asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
      	(asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
      	(has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
      	(free_mem_ref_resources, has_mem_ref_been_instrumented)
      	(has_stmt_been_instrumented_p, update_mem_ref_hash_table)
      	(get_mem_ref_of_assignment): New functions.
      	(get_mem_refs_of_builtin_call): Extract from
      	instrument_builtin_call and tweak a little bit to make it fit with
      	the new signature.
      	(instrument_builtin_call): Use the new
      	get_mem_refs_of_builtin_call.  Use gimple_call_builtin_p instead
      	of is_gimple_builtin_call.
      	(instrument_derefs, instrument_mem_region_access): Insert the
      	instrumented memory reference into the hash table.
      	(maybe_instrument_assignment): Renamed instrument_assignment into
      	this, and change it to advance the iterator when instrumentation
      	actually happened and return true in that case.  This makes it
      	homogeneous with maybe_instrument_assignment, and thus give a
      	chance to callers to be more 'regular'.
      	(transform_statements): Clear the memory reference hash table
      	whenever we enter a new BB, when we cross a function call, or when
      	we are done transforming statements.  Use
      	maybe_instrument_assignment instead of instrumentation.  No more
      	need to special case maybe_instrument_assignment and advance the
      	iterator after calling it; it's now handled just like
      	maybe_instrument_call.  Update comment.
      
      gcc/testsuite/
      
      	* c-c++-common/asan/no-redundant-instrumentation-1.c: New test.
      	* testsuite/c-c++-common/asan/no-redundant-instrumentation-2.c: Likewise.
      	* testsuite/c-c++-common/asan/no-redundant-instrumentation-3.c: Likewise.
      	* testsuite/c-c++-common/asan/inc.c: Likewise.
      
      From-SVN: r196008
      Dodji Seketeli committed
    • Fix typo in ChangeLog · a50bd22d
      From-SVN: r196005
      Kai Tietz committed
    • re PR target/52122 (incorrect ln -s replacement for mingw like targets in configure files) · b97ffdc9
      PR target/52122
      * Makefile.in (LN_S_RECUSIVE): New.
      (adainclude, adalib): Use LN_S_RECURSIVE for copy.
      
      From-SVN: r196002
      Kai Tietz committed
    • Revert rev. 195980 · c345d4f1
      From-SVN: r196001
      Kai Tietz committed
    • mn10300.c (mn10300_scan_for_setlb_lcc): Fix loop discovery code. · 4861a1f7
      2013-02-13  Richard Biener  <rguenther@suse.de>
      
      	* config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
      	Fix loop discovery code.
      
      From-SVN: r195998
      Richard Biener committed
    • Daily bump. · b9526fa5
      From-SVN: r195995
      GCC Administrator committed
  2. 12 Feb, 2013 20 commits
  3. 11 Feb, 2013 8 commits
    • cstdlib (at_quick_exit, quick_exit): Do not declare. · 42906f79
      2013-02-11  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/c_std/cstdlib (at_quick_exit, quick_exit): Do not declare.
      	* include/c_global/cstdlib (at_quick_exit, quick_exit): Declare only
      	in C++11 mode and if available in the underlying C library.
      	* testsuite/18_support/quick_exit/quick_exit.cc: Compile with
      	-std=gnu++11; check _GLIBCXX_HAVE_AT_QUICK_EXIT and
      	_GLIBCXX_HAVE_QUICK_EXIT.
      
      From-SVN: r195961
      Paolo Carlini committed
    • re PR libitm/55693 (libitm.c++/eh-1.C execution test fails on darwin from r193271) · 6c59ffd1
      /libgcc
      2013-02-11  Iain Sandoe  <iain@codesourcery.com>
      	    Jack Howarth  <howarth@bromo.med.uc.edu>
      	    Patrick Marlier  <patrick.marlier@gmail.com>
      
      	PR libitm/55693
      	* config/darwin-crt-tm.c: Remove dummy functions hack.
      
      /gcc
      2013-02-11  Iain Sandoe  <iain@codesourcery.com>
      	    Jack Howarth  <howarth@bromo.med.uc.edu>
      	    Patrick Marlier  <patrick.marlier@gmail.com>
      
      	PR libitm/55693
      	* config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
      	define ENDFILE_SPEC as TM_DESTRUCTOR.
      	* config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
      
      /libitm
      2013-02-11  Iain Sandoe  <iain@codesourcery.com>
      	    Jack Howarth  <howarth@bromo.med.uc.edu>
      	    Patrick Marlier  <patrick.marlier@gmail.com>
      
      	PR libitm/55693
      	* alloc_cpp.cc: Enable function declarations on darwin.
      	* eh_cpp.cc: Likewise.
      
      Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu>
      Co-Authored-By: Patrick Marlier <patrick.marlier@gmail.com>
      
      From-SVN: r195960
      Iain Sandoe committed
    • *: Regenerate. · 53b03cce
      2013-02-11  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* doc/html/*: Regenerate.
      
      From-SVN: r195959
      Benjamin Kosnik committed
    • configure.tgt: Disable build on darwin9 and earlier. · 34dc17ed
      2013-02-11  Jack Howarth  <howarth@bromo.med.uc.edu>
      
      	    * configure.tgt: Disable build on darwin9 and earlier.
      
      From-SVN: r195958
      Jack Howarth committed
    • 2013-02-11 Sebastian Huber <sebastian.huber@embedded-brains.de> · 0c5c0b4c
              * lib/target-supports.exp
              (check_effective_target_powerpc_eabi_ok): New.
              * gcc.target/powerpc/ppc-eabi.c: Use require effective target
              powerpc_eabi_ok.
              * gcc.target/powerpc/ppc-sdata-1.c: Likewise.
              * gcc.target/powerpc/spe-small-data-2.c: Likewise. Do not run, compile
              only.
              * gcc.target/powerpc/ppc-sdata-2.c: Add powerpc-*-rtems*.
              * gcc.target/powerpc/pr51623.c: Likewise.
              * gcc.target/powerpc/ppc-stackalign-1.c: Likewise.
              * gcc.target/powerpc/ppc-ldstruct.c: Likewise.
      
      From-SVN: r195957
      Sebastian Huber committed
    • re PR sanitizer/55617 (static constructors are not being instrumented correctly on darwin) · 6a52ccb3
      2013-02-11  Alexander Potapenko <glider@google.com>
      	    Jack Howarth  <howarth@bromo.med.uc.edu>
      	    Jakub Jelinek  <jakub@redhat.com>
      
      	PR sanitizer/55617
      	* config/darwin.c (cdtor_record): Rename ctor_record.
      	(sort_cdtor_records): Rename sort_ctor_records.
      	(finalize_dtors): New routine to sort destructors by
      	priority before use in assemble_integer.
      	(machopic_asm_out_destructor): Use finalize_dtors if needed.
      
      testsuite:
      2013-02-11  Alexander Potapenko <glider@google.com>
      	    Jack Howarth  <howarth@bromo.med.uc.edu>
      	    Jakub Jelinek  <jakub@redhat.com>
      
      	PR sanitizer/55617
      	* g++.dg/asan/pr55617.C: Run on all targets.
      
      Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu>
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r195956
      Alexander Potapenko committed
    • Sync plugin-api.h with the copy in binutils. Please see: · 913bd57d
      http://sourceware.org/ml/binutils/2013-02/msg00136.html
      for a change committed to plugin-api.h
      
      2013-02-11  Sriraman Tallam  <tmsriram@google.com>
      
      	* plugin-api.h (enum ld_plugin_level): Assign integers
      	explicitly for all values.
      
      From-SVN: r195953
      Sriraman Tallam committed
    • re PR go/56171 (syscall FAILs on Solaris) · ae135907
      	PR go/56171
      libgo: Solaris portability for syscall package.
      
      From Rainer Orth.
      
      From-SVN: r195950
      Ian Lance Taylor committed