Commit Graph

121875 Commits

Author SHA1 Message Date
Jason Merrill
ff9b4073cc re PR c++/55232 ([C++11] ICE with -Wunused-parameter for unused parameter pack using qualified dependent name)
PR c++/55232
	* error.c (find_typenames_r): Don't walk into a pack expansion.

From-SVN: r196064
2013-02-14 20:26:34 -05:00
GCC Administrator
9c85798a59 Daily bump.
From-SVN: r196063
2013-02-15 00:19:00 +00:00
Thomas Koenig
308f961b9b re PR fortran/56224 (gfortran -fopenmp cannot find omp_lib.h)
2013-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/56224
	* gfortran.h (gfc_add_include_path):  Add boolean argument
	for warn.
	* scanner.c (gfc_add_include_path):  Pass along warn argument
	to add_path_to_list.
	* options.c (gfc_post_options):  Add true warn argument to
	gfc_add_include_path.
	(gfc_handle_module_path_options):  Likewise.
	(gfc_handle_option): Also gfc_add_include_path for intrinsic
	modules, without warning.

From-SVN: r196058
2013-02-14 22:13:26 +00:00
Steven Bosscher
bb3accfa6f * collect2-aix.h: Define F_LOADONLY.
From-SVN: r196057
2013-02-14 20:40:55 +00:00
H.J. Lu
8afd2ed720 OFF_T: Merged from upstream r175140
PR bootstrap/56327
	* interception/interception.h (OFF_T): Merged from upstream
	r175140.

From-SVN: r196054
2013-02-14 08:54:01 -08:00
Jason Merrill
1c322ab156 * g++.dg/cpp0x/lambda/lambda-this8.C: use __builtin_abort
From-SVN: r196053
2013-02-14 08:51:21 -05:00
Rainer Emrich
7d00dca998 re PR ada/52123 (gcc bootstrap with ada fails on mingw target)
2013-02-14  Rainer Emrich  <rainer@emrich-ebersheim.de>

        PR target/52123
        * tracebak.c: Cast from pointer via FARPROC.

From-SVN: r196051
2013-02-14 14:04:10 +01:00
Richard Biener
03143140ad re PR lto/50494 (gcc.dg/vect/vect-reduc-2char.c fails spuriously on ppc with -flto)
2013-02-14  Richard Biener  <rguenther@suse.de>

	PR lto/50494
	* varasm.c (output_constant_def_1): Get the decl representing
	the constant as argument.
	(output_constant_def): Wrap output_constant_def_1.
	(make_decl_rtl): Use output_constant_def_1 with the decl
	representing the constant.
	(build_constant_desc): Optionally re-use a decl already
	representing the constant.
	(tree_output_constant_def): Adjust.

From-SVN: r196050
2013-02-14 12:24:12 +00:00
Rainer Orth
f0e1304467 Allow for more whitespace in gcc.dg/debug/dwarf2/pr53948.c
* gcc.dg/debug/dwarf2/pr53948.c: Allow for more whitespace.

From-SVN: r196049
2013-02-14 11:45:01 +00:00
Rainer Orth
1fc53de2f5 Fix gcc.dg/debug/dwarf2/pr53948.c with Sun as
* gcc.dg/debug/dwarf2/pr53948.c: Allow for / and ! as comment
	characters.

From-SVN: r196048
2013-02-14 09:59:30 +00:00
Tobias Burnus
431e468591 revert: [multiple changes]
2013-02-14  Paul Thomas  <pault@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR testsuite/56138
        * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
        results for functions without extra result variable.

        Revert:
        2013-01-30  Tobias Burnus  <burnus@net-b.de>

        PR fortran/56138
        * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
        results for functions without extra result variable.

2013-02-14  Dominique d'Humieres  <dominiq@lps.ens.fr>
            Tobias Burnus  <burnus@net-b.de>

        PR testsuite/56138
        * gfortran.dg/allocatable_function_7.f90: New.

From-SVN: r196047
2013-02-14 10:37:53 +01:00
Jakub Jelinek
3b0c732405 dejagnu-gtest.h: Add multiple inclusion guards.
* g++.dg/asan/dejagnu-gtest.h: Add multiple inclusion guards.
	* asan_globals_test-wrapper.cc: New file.
	* g++.dg/asan/asan_test.C: Use asan_globals_test-wrapper.cc
	instead of asan_globals_test.cc as dg-additional-sources.
	Include asan_mem_test.cc, asan_str_test.cc and asan_oob_test.cc.
	* g++.dg/asan/asan_test_utils.h: Synced from upstream.  Include
	"sanitizer_test_utils.h" instead of
	"sanitizer_common/tests/sanitizer_test_utils.h".
	* g++.dg/asan/asan_str_test.cc: New file, synced from upstream.
	* g++.dg/asan/asan_mem_test.cc: New file, synced from upstream.
	* g++.dg/asan/asan_oob_test.cc: New file, synced from upstream.
	* g++.dg/asan/asan_globals_test.cc: Synced from upstream.
	* g++.dg/asan/asan_test.cc: Synced from upstream.
	* g++.dg/asan/sanitizer_test_utils.h: New file, synced from upstream.

From-SVN: r196045
2013-02-14 09:40:13 +01:00
Dodji Seketeli
8fb067263b [asan] Fix a thinko leading to a crash
It appeared that in my previous patch, a stupid thinko can lead to a
crash when instrumenting some builtin functionsK.  Fixed thus.

Bootstrapped and tested against trunk on x86_64-unknown-linux-gnu.

gcc/
	* asan.c (instrument_builtin_call):  Really put the length of the
	second source argument into src1_len.

gcc/testsuite/

	* c-c++-common/asan/memcmp-2.c: New test.

From-SVN: r196044
2013-02-14 05:37:56 +01:00
Jason Merrill
28d5c77761 re PR c++/55670 ([C++11] This isn't a pure virtual method.)
PR c++/55670
	* parser.c (cp_parser_member_declaration): Check the declarator
	form when detecting a function declaration via typedef.

From-SVN: r196043
2013-02-13 23:31:03 -05:00
Jason Merrill
e75e98f270 re PR c++/55680 ([C++11] Member specialization with lambda is rejected)
PR c++/55680
	* pt.c (maybe_process_partial_specialization): A lambda
	isn't what's being specialized.

From-SVN: r196042
2013-02-13 23:30:26 -05:00
Ed Smith-Rowland
561f7fc72c re PR c++/55582 ([C++11] Unable to define string user-defined literal without leading underscore.)
gcc/libcpp/

2013-02-13  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/55582
	* libcpp/lex.c (lex_raw_string): Allow string literal with suffix
	beginning with 's' to be parsed as a C++11 user-defined literal.


gcc/testsuite/

2013-02-13  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/55582
	* g++.dg/cpp0x/udlit-string-literal.h: New.
	* g++.dg/cpp0x/udlit-string-literal.C: New.

From-SVN: r196041
2013-02-14 02:55:42 +00:00
GCC Administrator
94504fd484 Daily bump.
From-SVN: r196039
2013-02-14 00:19:07 +00:00
Marc Glisse
1c259e8b49 re PR libstdc++/56111 ({float,double,long double} complex not accepted anymore)
2013-02-13  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/56111
	* include/std/complex (complex): Undefine.
	* include/c_compatibility/complex.h (complex): Only undefine if
	<complex> has been included.
	* testsuite/26_numerics/complex/56111.cc: New testcase.

From-SVN: r196034
2013-02-13 21:58:53 +00:00
Sriraman Tallam
9e3a83c18a mv12-aux.C: Delete, move to mv12-aux.cc.
2013-02-13  Sriraman Tallam  <tmsriram@google.com>

	* g++.dg/ext/mv12-aux.C: Delete, move to mv12-aux.cc.
	* g++.dg/ext/mv12-aux.cc: New file.
	* g++.dg/ext/mv12.h: Remove directives. Fix comment.
	* g++.dg/ext/mv12.C: Fix file name.

From-SVN: r196033
2013-02-13 21:51:27 +00:00
François Dumont
d9a3647a22 hashtable_policy.h (_Hash_code_base): Restore default constructor protected.
2013-02-13  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/hashtable_policy.h (_Hash_code_base): Restore
	default constructor protected.
	* include/bits/hashtable.h: static assert that _Hash_code_base has
	a default constructor available through inheritance.

From-SVN: r196030
2013-02-13 21:09:34 +00:00
Jakub Jelinek
c4bfe8bfdb asan.c (create_cond_insert_point): Add create_then_fallthru_edge argument.
* asan.c (create_cond_insert_point): Add create_then_fallthru_edge
	argument.  If it is false, don't create edge from then_bb to
	fallthru_bb.
	(insert_if_then_before_iter): Pass true to it.
	(build_check_stmt): Pass false to it.
	(transform_statements): Flush hash table only on extended basic
	block boundaries, rather than at the beginning of every bb.
	Don't flush hash table on nonfreeing_call_p calls.
	* tree-flow.h (nonfreeing_call_p): New prototype.
	* tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.

From-SVN: r196029
2013-02-13 21:47:39 +01:00
David S. Miller
7afe28013f We should not strip subregs of non-scalars during shift expansion.
* expmed.c (expand_shift_1): Only strip scalar integer subregs.

From-SVN: r196027
2013-02-13 12:25:41 -08:00
Sriraman Tallam
8a04a774db Make sure mv12-aux.C has same directives as mv12.C.
Make sure mv12-aux.C has same directives as mv12.C. mv12-aux.C should not
compile for non-x86 targets.

2013-02-13  Sriraman Tallam  <tmsriram@google.com>

	* g++.dg/ext/mv12-aux.C: Add directives to match mv12.C.

From-SVN: r196026
2013-02-13 18:55:02 +00:00
Jason Merrill
43c2d791b4 re PR c++/55710 ([C++11] Linkage errors with lambdas)
PR c++/55710
	* semantics.c (maybe_add_lambda_conv_op): Mark static thunk
	TREE_USED.

From-SVN: r196025
2013-02-13 13:17:39 -05:00
Jason Merrill
70fc7c6c3d re PR c++/55879 ([C++11] nested constexpr Initialisation raises internal compiler error)
PR c++/55879
	* semantics.c (cxx_bind_parameters_in_call): Undo DECL_BY_REFERENCE.

From-SVN: r196024
2013-02-13 12:56:38 -05:00
Jason Merrill
58b922f813 re PR c++/55993 ([C++11] derived-to-base conversion fails in constant expression)
PR c++/55993
	* semantics.c (cxx_fold_indirect_ref): Handle empty bases at
	non-zero offsets, too.

From-SVN: r196023
2013-02-13 12:56:28 -05:00
Jason Merrill
d0d9cf0ebf re PR c++/56155 ([C++11] enumeration with fixed underlying type - enumerators have wrong type within enumerator-list)
PR c++/56155
	* decl.c (build_enumerator): Always convert the value to a
	fixed underlying type.

From-SVN: r196022
2013-02-13 12:56:16 -05:00
Jason Merrill
78a2ea4199 re PR c++/56135 ([c++11] this incorrectly captured as null in template member function)
PR c++/56135
	* pt.c (tsubst_copy_and_build): Don't forget any new
	captures that arose from use of dependent names.

From-SVN: r196021
2013-02-13 12:56:05 -05:00
Vladimir Makarov
70cc328858 re PR target/56184 (Internal compiler error in push_reload during bootstrap stage 2)
2013-02-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/56184
	* ira.c (max_regno_before_ira): Move from ...
	(ira): ... here.
	(fix_reg_equiv_init): Use max_regno_before_ira instead of
	vec_safe_length.

2013-02-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/56184
	* gcc.target/arm/pr56184.C: New test.

From-SVN: r196019
2013-02-13 17:40:22 +00:00
Jakub Jelinek
6760071f30 re PR c++/56302 (sys/sdt.h asms stopped working at -O0)
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
2013-02-13 17:09:27 +01:00
Jakub Jelinek
6422242b91 i386.c (ix86_asan_shadow_offset): Revert last change.
* 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
2013-02-13 17:06:43 +01:00
Richard Biener
976a81ee63 re PR lto/56295 (Missed optimization with LTO)
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
2013-02-13 13:31:18 +00:00
Tobias Burnus
6c8064fbd1 re PR fortran/56204 (gfortran.dg/quad_[23].f90 FAIL on Solaris 9/x86)
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
2013-02-13 13:03:18 +01:00
Richard Biener
c1874a876f loop-init.c (loop_optimizer_init): Clear loop state when re-initializing preserved loops.
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
2013-02-13 11:42:04 +00:00
Kostya Serebryany
b4ab7d34f5 libsanitizer merge from upstream r175049
From-SVN: r196009
2013-02-13 10:46:01 +00:00
Dodji Seketeli
bdcbe80c52 [asan] Avoid instrumenting duplicated memory access in the same basic block
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
2013-02-13 11:32:26 +01:00
Kai Tietz
a50bd22d71 Fix typo in ChangeLog
From-SVN: r196005
2013-02-13 11:30:32 +01:00
Kai Tietz
b97ffdc983 re PR target/52122 (incorrect ln -s replacement for mingw like targets in configure files)
PR target/52122
* Makefile.in (LN_S_RECUSIVE): New.
(adainclude, adalib): Use LN_S_RECURSIVE for copy.

From-SVN: r196002
2013-02-13 11:19:26 +01:00
Kai Tietz
c345d4f126 Revert rev. 195980
From-SVN: r196001
2013-02-13 11:01:13 +01:00
Richard Biener
4861a1f721 mn10300.c (mn10300_scan_for_setlb_lcc): Fix loop discovery code.
2013-02-13  Richard Biener  <rguenther@suse.de>

	* config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
	Fix loop discovery code.

From-SVN: r195998
2013-02-13 09:38:09 +00:00
GCC Administrator
b9526fa588 Daily bump.
From-SVN: r195995
2013-02-13 00:18:45 +00:00
Jason Merrill
d8af1a5557 re PR c++/56285 ([C++11] Arguments to an inheriting constructor are not forwarded properly)
PR c++/56285
	* method.c (add_one_base_init): Handle base constructor
	taking rvalue reference parm.

From-SVN: r195990
2013-02-12 15:47:15 -05:00
Marek Polacek
2ee028f1be Fix bootstrap with -O3.
From-SVN: r195989
2013-02-12 20:07:04 +00:00
Vladimir Makarov
1c86bd80a3 re PR inline-asm/56148 (inline asm matching constraint with different mode)
2013-02-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR inline-asm/56148
	* lra-constraints.c (process_alt_operands): Match early clobber
	operand with itself.  Check conflicts with earlyclobner only if
	the operand is not reloaded.  Prefer to reload conflicting operand
	if earlyclobber and matching operands are the same.

2013-02-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR inline-asm/56148
	* gcc.target/i386/pr56148.c: New test.

From-SVN: r195988
2013-02-12 17:44:47 +00:00
Jason Merrill
1f8aec0030 re PR c++/56291 (ICE for C++11 in output_constructor_regular_field, at varasm.c:4821)
PR c++/56291
	* semantics.c (sort_constexpr_mem_initializers): Handle
	vptr out of order.

From-SVN: r195986
2013-02-12 12:36:58 -05:00
Jason Merrill
bf94424ce1 int128 tests
From-SVN: r195985
2013-02-12 11:32:30 -05:00
Dominique d'Humieres
18a7895438 re PR testsuite/56082 (FAIL: gfortran.dg/bind_c_bool_1.f90 -O (test for errors, line 18) on powerpc-apple-darwin9 with -m32)
2013-02-12  Dominique d'Humieres  <dominiq@lps.ens.fr>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/56082
        * gfortran.dg/bind_c_bool_1.f90 (sub): Change kind=4
        to kind=2 as 32bit Darwin has C_Bool == 4.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r195984
2013-02-12 17:22:13 +01:00
Kai Tietz
3331275a42 re PR target/52122 (incorrect ln -s replacement for mingw like targets in configure files)
PR target/52122
        * Makefile.in (LN_S_RECUSIVE): New.
        (adainclude, adalib): Use LN_S_RECURSIVE for copy.

From-SVN: r195980
2013-02-12 16:32:01 +01:00
Richard Biener
7cbda5184c re PR lto/56297 (LTO: multiple definition error with global register variables)
2013-02-12  Richard Biener  <rguenther@suse.de>

	PR lto/56297
	* lto-streamer-out.c (write_symbol): Do not output symbols
	for hard register variables.

	* gcc.dg/lto/pr56297_0.c: New testcase.
	* gcc.dg/lto/pr56297_0.c: Likewise.

From-SVN: r195979
2013-02-12 15:14:32 +00:00
Georg-Johann Lay
e68a4ef6ea re PR target/54222 ([avr] Implement fixed-point support)
gcc/
	PR target/54222
	* config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
	(umulsidi3_insn, mulsidi3_insn): New insns.

libgcc/
	PR target/54222
	* config/avr/t-avr (LIB2FUNCS_EXCLUDE): Add: _usmulUHA, _usmulUSA,
	_ssmulHA, _ssmulSA.
	(LIB1ASMFUNCS): Add: _muldi3_6, _mulsidi3, _umulsidi3, _usmuluha3,
	_ssmulha3, _usmulusa3, _ssmulsa3.
	* config/avr/lib1funcs.S (__muldi3_6): Break out of __muldi3.
	(__muldi3): XCALL __muldi3_6 instead of rcall.
	(__umulsidi3, __mulsidi3): New functions.
	(do_prologue_saves, do_epilogue_restores): New .macros.
	(__divdi3_moddi3): Use them.
	* config/avr/lib1funcs-fixed.S (__usmuluha3, __ssmulha3)
	(__usmulusa3, __ssmulsa3): New functions.

From-SVN: r195978
2013-02-12 14:55:16 +00:00