Implement -fsanitize=signed-integer-overflow.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205684 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c/52023
c-family:
	* c-common.c (c_sizeof_or_alignof_type): Add parameter min_alignof
	and check field alignment if set.
	* c-common.h (c_sizeof_or_alignof_type): Update prototype.
	(c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.

c:
	* c-parser.c (c_parser_alignas_specifier): Use
	c_sizeof_or_alignof_type instead of c_alignof.
	(c_parser_alignof_expression): Likewise, with min_alignof
	parameter depending on alignof spelling used.

cp:
	* typeck.c (cxx_sizeof_or_alignof_type): Update call to
	c_sizeof_or_alignof_type.

objc:
	* objc-act.c (objc_synthesize_getter): Update calls to
	c_sizeof_or_alignof_type.

testsuite:
	* gcc.dg/c11-align-6.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205685 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205688 138bc75d-0d04-0410-961f-82ee72b054a4
	* common.opt: Split up -fisolate-erroneous-paths into
	-fisolate-erroneous-paths-dereference and
	-fisolate-erroneous-paths-attribute.
	* invoke.texi: Corresponding changes.
	* gimple.c (infer_nonnull_range):  Add and use new arguments
	to control what kind of statements can be used to infer a
	non-null range.
	* gimple.h (infer_nonnull_range): Update prototype.
	* tree-vrp.c (infer_value_range): Corresponding changes.
	* opts.c (default_options_table): Update due to option split.
	* gimple-ssa-isolate-paths.c: Fix trailing whitespace.
	(find_implicit_erroneous_behaviour): Pass additional arguments
	to infer_nonnull_range.
	(find_explicit_erroneous_behaviour): Similarly.
	(gate_isolate_erroneous_paths): Check both of the new
	options.

testsuite/

	* gcc.dg/pr38984.c: Use -fno-isolate-erroneous-paths-dereference.
	* gcc.dg/tree-ssa/isolate-2.c: Explicitly turn on
	-fisolate-erroneous-paths-attribute.
	* gcc.dg/tree-ssa/isolate-4.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205689 138bc75d-0d04-0410-961f-82ee72b054a4
	* configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
	build != host.
	<recursive call for build != host>: Clear GMPINC.  Don't bother
	saving CFLAGS.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205690 138bc75d-0d04-0410-961f-82ee72b054a4
ChangeLog/

        * config/ia64/ia64.md (prologue_allocate_stack): Block auto-
        generation of predicated version.
        (epilogue_deallocate_stack): Ditto.
        (prologue_allocate_stack_pr): Add explicit predicated version.
        (epilogue_deallocate_stack_pr): Ditto.
        * config/ia64/ia64.c (ia64_single_set): Use explicit versions.

testsuite/ChangeLog/

        * gcc.target/ia64/pr52731.c: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205692 138bc75d-0d04-0410-961f-82ee72b054a4
2013-12-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59374
	* tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
	Commonize known and unknown dependence case fixing the allowed
	read-write dependence case and dropping code that should not
	matter.

	* gcc.dg/torture/pr59374-1.c: New testcase.
	* gcc.dg/torture/pr59374-2.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205694 138bc75d-0d04-0410-961f-82ee72b054a4
libsanitizer merge from upstream r196090

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205695 138bc75d-0d04-0410-961f-82ee72b054a4
2013-12-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56787
	* gcc.dg/vect/pr56787.c: Adjust to not require vector float
	division.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205696 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2013-12-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (duplicate_decls): Replace pairs of errors and permerrors
	with error + inform (permerror + inform, respectively).

/testsuite
2013-12-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp0x/constexpr-46336.C: Adjust expected messages.
	* g++.dg/cpp0x/defaulted2.C: Likewise.
	* g++.dg/cpp1y/auto-fn8.C: Likewise.
	* g++.dg/gomp/udr-3.C: Likewise.
	* g++.dg/lookup/extern-c-redecl5.C: Likewise.
	* g++.dg/lookup/linkage1.C: Likewise.
	* g++.dg/overload/new1.C: Likewise.
	* g++.dg/parse/friend5.C: Likewise.
	* g++.dg/parse/namespace-alias-1.C: Likewise.
	* g++.dg/parse/namespace10.C: Likewise.
	* g++.dg/parse/redef2.C: Likewise.
	* g++.dg/template/friend44.C: Likewise.
	* g++.old-deja/g++.brendan/crash42.C: Likewise.
	* g++.old-deja/g++.brendan/crash52.C: Likewise.
	* g++.old-deja/g++.brendan/crash55.C: Likewise.
	* g++.old-deja/g++.jason/overload21.C: Likewise.
	* g++.old-deja/g++.jason/overload5.C: Likewise.
	* g++.old-deja/g++.jason/redecl1.C: Likewise.
	* g++.old-deja/g++.law/arm8.C: Likewise.
	* g++.old-deja/g++.other/main1.C: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205697 138bc75d-0d04-0410-961f-82ee72b054a4
2013-12-05  Yury Gribov  <y.gribov@samsung.com>

	PR sanitizer/59368
	* Makefile.am (gcc_version): Added gcc_version.
	* Makefile.in: Regenerate.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205698 138bc75d-0d04-0410-961f-82ee72b054a4
2013-12-05  Yury Gribov  <y.gribov@samsung.com>

	PR sanitizer/59369
	* c-c++-common/asan/pr59063-1.c: Disable on non-Linux platforms.
	* c-c++-common/asan/pr59063-2.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205699 138bc75d-0d04-0410-961f-82ee72b054a4
libsanitizer merge from upstream r196489

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205700 138bc75d-0d04-0410-961f-82ee72b054a4
Add forgotten file.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205701 138bc75d-0d04-0410-961f-82ee72b054a4
ChangeLog/
        * config/i386/i386.c(IX86_BUILTIN_READ_FLAGS): New.
	(IX86_BUILTIN_WRITE_FLAGS): Ditto.
	(ix86_init_mmx_sse_builtins): Define
	__builtin_ia32_writeeflags_u32, __builtin_ia32_writeeflags_u64,
	__builtin_ia32_readeflags_u32, __builtin_ia32_readeflags_u64.
	(ix86_expand_builtin): Expand them.
	* config/i386/ia32intrin.h (__readeflags): New.
	(__writeeflags): Ditto.
	* gcc/config/i386/i386.md (*pushfl<mode>): Ditto.
	(*popfl<mode>1): Ditto.

testsuite/ChangeLog/
        * gcc.target/i386/readeflags-1.c: New.
        * gcc.target/i386/writeeflags-1.c: Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205703 138bc75d-0d04-0410-961f-82ee72b054a4
2013-12-05  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	* c-c++-common/tsan/atomic_stack.c: New test.
	* c-c++-common/tsan/fd_pipe_race.c: New test.
	* c-c++-common/tsan/free_race.c: New test.
	* c-c++-common/tsan/mutexset1.c: New test.
	* c-c++-common/tsan/race_on_barrier.c: New test.
	* c-c++-common/tsan/sleep_sync.c: New test.
	* c-c++-common/tsan/thread_leak.c: New test.
	* c-c++-common/tsan/thread_leak1.c: New test.
	* c-c++-common/tsan/thread_leak2.c: New test.
	* c-c++-common/tsan/tiny_race.c: New test.
	* c-c++-common/tsan/tls_race.c: New test.
	* c-c++-common/tsan/write_in_reader_lock.c: New test.	
	* lib/tsan-dg.exp: New file.
	* gcc.dg/tsan/tsan.exp: New file.
	* g++.dg/tsan/tsan.exp: New file.
	* g++.dg/dg.exp: Prune tsan subdirectory.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205704 138bc75d-0d04-0410-961f-82ee72b054a4
2013-12-05  Marek Polacek  <polacek@redhat.com>

c-family/
	* c-common.c (c_sizeof_or_alignof_type): Move a declaration into
	[ADJUST_FIELD_ALIGN].


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205705 138bc75d-0d04-0410-961f-82ee72b054a4
        * config/i386/i386.c (ix86_expand_builtin): Generate
        reg for readflags built-in when optimizing.
        * config/i386/i386.md (*pushfl<mode>): Rename to ...
        (pushfl<mode>2): This. Fix iterator.
        (*popfl<mode>): Rename to ...
        (*popfl<mode>1): This. Fix iterator.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205707 138bc75d-0d04-0410-961f-82ee72b054a4
Add -lm to link_sanitizer_common

	* configure.ac (link_sanitizer_common): Add -lm.
	* configure: Regenerated.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205710 138bc75d-0d04-0410-961f-82ee72b054a4
	Revert this change; no longer required.
	2013-11-06  Ian Lance Taylor  <iant@google.com>

	* go-lang.c (go_langhook_post_options): If
	-fisolate-erroneous-paths was turned on by an optimization option,
	turn it off.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205711 138bc75d-0d04-0410-961f-82ee72b054a4