- 12 Nov, 2012 15 commits
-
-
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. From-SVN: r193439
Dodji Seketeli committed -
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. From-SVN: r193438
Dodji Seketeli committed -
This patch implements the protection of global variables. See the comments appended to the beginning of the asan.c file. * varasm.c: Include asan.h. (assemble_noswitch_variable): Grow size by asan_red_zone_size if decl is asan protected. (place_block_symbol): Likewise. (assemble_variable): If decl is asan protected, increase DECL_ALIGN if needed, and for decls emitted using assemble_variable_contents append padding zeros after it. * Makefile.in (varasm.o): Depend on asan.h. * asan.c: Include output.h. (asan_pp, asan_pp_initialized, asan_ctor_statements): New variables. (asan_pp_initialize, asan_pp_string): New functions. (asan_emit_stack_protection): Use asan_pp{,_initialized} instead of local pp{,_initialized} vars, use asan_pp_initialize and asan_pp_string helpers. (asan_needs_local_alias, asan_protect_global, asan_global_struct, asan_add_global): New functions. (asan_finish_file): Protect global vars that can be protected. Use asan_ctor_statements instead of ctor_statements * asan.h (asan_protect_global): New prototype. (asan_red_zone_size): New inline function. Co-Authored-By: Wei Mi <wmi@google.com> From-SVN: r193437
Jakub Jelinek committed -
This patch implements the protection of stack variables. It lays out stack variables as well as the different red zones, emits some prologue code to populate the shadow memory as to poison (mark as non-accessible) the regions of the red zones and mark the regions of stack variables as accessible, and emit some epilogue code to un-poison (mark as accessible) the regions of red zones right before the function exits. * Makefile.in (asan.o): Depend on $(EXPR_H) $(OPTABS_H). (cfgexpand.o): Depend on asan.h. * asan.c: Include expr.h and optabs.h. (asan_shadow_set): New variable. (asan_shadow_cst, asan_emit_stack_protection): New functions. (asan_init_shadow_ptr_types): Initialize also asan_shadow_set. * cfgexpand.c: Include asan.h. Define HOST_WIDE_INT heap vector. (partition_stack_vars): If i is large alignment and j small alignment or vice versa, break out of the loop instead of continue, and put the test earlier. If flag_asan, break out of the loop if for small alignment size is different. (struct stack_vars_data): New type. (expand_stack_vars): Add DATA argument. Change PRED type to function taking size_t argument instead of tree. Adjust pred calls. Fill DATA in and add needed padding in between variables if -faddress-sanitizer. (defer_stack_allocation): Defer everything for flag_asan. (stack_protect_decl_phase_1, stack_protect_decl_phase_2): Take size_t index into stack_vars array instead of the decl directly. (asan_decl_phase_3): New function. (expand_used_vars): Return var destruction sequence. Adjust expand_stack_vars calls, add another one for flag_asan. Call asan_emit_stack_protection if expand_stack_vars added anything to the vectors. (expand_gimple_basic_block): Add disable_tail_calls argument. (gimple_expand_cfg): Pass true to it if expand_used_vars returned non-NULL. Emit the sequence returned by expand_used_vars after return_label. * asan.h (asan_emit_stack_protection): New prototype. (asan_shadow_set): New decl. (ASAN_RED_ZONE_SIZE, ASAN_STACK_MAGIC_LEFT, ASAN_STACK_MAGIC_MIDDLE, ASAN_STACK_MAGIC_RIGHT, ASAN_STACK_FRAME_MAGIC): Define. (asan_protect_stack_decl): New inline. * toplev.c (process_options): Also disable -faddress-sanitizer on !FRAME_GROWS_DOWNWARDS targets. From-SVN: r193436
Jakub Jelinek committed -
This patch defines a new asan pass gate that is activated at -O0, in addition to the pass that was initially activated at -O3 level The patch also does some comment cleanups here and there. * asan.c (build_check_stmt): Rename join_bb variable to else_bb. (gate_asan_O0): New function. (pass_asan_O0): New variable. * passes.c (init_optimization_passes): Add pass_asan_O0. * tree-pass.h (pass_asan_O0): New declaration. From-SVN: r193435
Jakub Jelinek committed -
This patch cleanups the instrumentation code generation by emitting GIMPLE directly, as opposed to emitting GENERIC tree and then gimplifying them. It also does some cleanups here and there * Makefile.in (GTFILES): Add $(srcdir)/asan.c. (asan.o): Update the dependencies of asan.o. * asan.c (tm.h, tree.h, tm_p.h, basic-block.h, flags.h function.h, tree-inline.h, tree-dump.h, diagnostic.h, demangle.h, langhooks.h, ggc.h, cgraph.h, gimple.h): Remove these unused but included headers. (shadow_ptr_types): New variable. (report_error_func): Change is_store argument to bool, don't append newline to function name. (PROB_VERY_UNLIKELY, PROB_ALWAYS): Define. (build_check_stmt): Change is_store argument to bool. Emit GIMPLE directly instead of creating trees and gimplifying them. Mark the error reporting function as very unlikely. (instrument_derefs): Change is_store argument to bool. Use int_size_in_bytes to compute size_in_bytes, simplify size check. Use build_fold_addr_expr instead of build_addr. (transform_statements): Adjust instrument_derefs caller. Use gimple_assign_single_p as stmt test. Don't look at MEM refs in rhs2. (asan_init_shadow_ptr_types): New function. (asan_instrument): Don't push/pop gimplify context. Call asan_init_shadow_ptr_types if not yet initialized. * asan.h (ASAN_SHADOW_SHIFT): Adjust comment. Co-Authored-By: Dodji Seketeli <dodji@redhat.com> Co-Authored-By: Xinliang David Li <davidxl@google.com> From-SVN: r193434
Jakub Jelinek committed -
This patch defines a new asan_shadow_offset target macro, instead of having a mere macro in the asan.c file. It becomes thus cleaner to define the target macro for targets that supports asan, namely x86 for now. The ASAN_SHADOW_SHIFT (which, along with the asan_shadow_offset constant, is used to compute the address of the shadow memory byte for a given memory address) is defined in asan.h. gcc/ChangeLog * toplev.c (process_options): Warn and turn off -faddress-sanitizer if not supported by target. * asan.c: Include target.h. (asan_scale, asan_offset_log_32, asan_offset_log_64, asan_offset_log): Removed. (build_check_stmt): Use ASAN_SHADOW_SHIFT and targetm.asan_shadow_offset (). (asan_instrument): Don't initialize asan_offset_log. * asan.h (ASAN_SHADOW_SHIFT): Define. * target.def (TARGET_ASAN_SHADOW_OFFSET): New hook. * doc/tm.texi.in (TARGET_ASAN_SHADOW_OFFSET): Add it. * doc/tm.texi: Regenerated. * Makefile.in (asan.o): Depend on $(TARGET_H). * config/i386/i386.c (ix86_asan_shadow_offset): New function. (TARGET_ASAN_SHADOW_OFFSET): Define. From-SVN: r193433
Jakub Jelinek committed -
This patch imports the initial state of asan as it was in the Google branch. It provides basic infrastructure for asan to instrument memory accesses on the heap, at -O3. Note that it supports neither stack nor global variable protection. The rest of the patches of the set is intended to further improve this base. gcc/ChangeLog * Makefile.in: Add asan.c and its dependencies. * common.opt: Add -faddress-sanitizer option. * invoke.texi: Document the new flag. * passes.c: Add the asan pass. * toplev.c (compile_file): Call asan_finish_file. * asan.c: New file. * asan.h: New file. * tree-pass.h: Declare pass_asan. Co-Authored-By: Diego Novillo <dnovillo@google.com> Co-Authored-By: Dodji Seketeli <dodji@redhat.com> From-SVN: r193432
Wei Mi committed -
2012-11-12 Tobias Burnus <burnus@net-b.de> PR fortran/55272 * module.c (mio_array_spec): Correctly handle coarray scalars. 2012-11-12 Tobias Burnus <burnus@net-b.de> PR fortran/55272 * gfortran.dg/coarray_29_1.f90: New. * gfortran.dg/coarray_29_2.f90: New. From-SVN: r193429
Tobias Burnus committed -
2012-11-12 Tobias Burnus <burnus@net-b.de> * diagnostic.c (diagnostic_append_note): Also call va_end when inhibit_notes_p is true. From-SVN: r193428
Tobias Burnus committed -
From-SVN: r193426
Ed Smith-Rowland committed -
* gcse.c (struct bb_data): Add new fields, old_pressure, live_in and backup. (get_regno_pressure_class): Add prototype. (update_bb_reg_pressure): New. (should_hoist_expr_to_dom): Add new parameter from. Monitor the change of reg pressure and use it to drive hoisting. (hoist_code): Update LIVE and reg pressure information. (calculate_bb_reg_pressure): Initialize live_in and backup. * gcc.dg/hoist-register-pressure-3.c: New test. From-SVN: r193425
Bin Cheng committed -
md.texi (Standard Pattern Names For Generation): Fix swapped sine and cosine operands in the sincos description. * doc/md.texi (Standard Pattern Names For Generation): Fix swapped sine and cosine operands in the sincos description. From-SVN: r193424
Oleg Endo committed -
PR target/53512 * config/sh/sh.md (sincossf3): Fix swapped sin and cos operands. From-SVN: r193423
Oleg Endo committed -
From-SVN: r193422
GCC Administrator committed
-
- 11 Nov, 2012 19 commits
-
-
* gcc.target/sh/sh4a-fprun.c: Add test_sinf and test_cosf noinline wrappers around sinf and cosf. From-SVN: r193419
Oleg Endo committed -
* config/i386/i386.md (*movti_internal_rex64): Remove "!" from riF->o alternative. From-SVN: r193418
H.J. Lu committed -
* config/sparc/sparc.h (AS_NIAGARA3_FLAG): Tweak. * config/sparc/sol2.h (TARGET_CPU_niagara4 support): Fix pasto. From-SVN: r193416
Eric Botcazou committed -
re PR rtl-optimization/55247 (internal compiler error: Max. number of generated reload insns per insn is achieved (90)) PR rtl-optimization/55247 PR middle-end/55259 * emit-rtl.c (adjust_address_1): If POINTERS_EXTEND_UNSIGNED > 0, handle ZERO_EXTEND. * recog.c (offsettable_address_addr_space_p): Likewise. From-SVN: r193415
Eric Botcazou committed -
* doc/xml/chapter.txml: Remove whitespace inside <keyword>. * doc/xml/class.txml: Likewise. * doc/xml/manual/abi.xml: Likewise. * doc/xml/manual/algorithms.xml: Likewise. * doc/xml/manual/allocator.xml: Likewise. * doc/xml/manual/appendix_contributing.xml: Likewise. * doc/xml/manual/appendix_free.xml: Likewise. * doc/xml/manual/appendix_porting.xml: Likewise. * doc/xml/manual/atomics.xml: Likewise. * doc/xml/manual/auto_ptr.xml: Likewise. * doc/xml/manual/backwards_compatibility.xml: Likewise. * doc/xml/manual/bitmap_allocator.xml: Likewise. * doc/xml/manual/build_hacking.xml: Likewise. * doc/xml/manual/codecvt.xml: Likewise. * doc/xml/manual/concurrency.xml: Likewise. * doc/xml/manual/concurrency_extensions.xml: Likewise. * doc/xml/manual/configure.xml: Likewise. * doc/xml/manual/containers.xml: Likewise. * doc/xml/manual/ctype.xml: Likewise. * doc/xml/manual/debug.xml: Likewise. * doc/xml/manual/debug_mode.xml: Likewise. * doc/xml/manual/diagnostics.xml: Likewise. * doc/xml/manual/extensions.xml: Likewise. * doc/xml/manual/internals.xml: Likewise. * doc/xml/manual/intro.xml: Likewise. * doc/xml/manual/io.xml: Likewise. * doc/xml/manual/iterators.xml: Likewise. * doc/xml/manual/locale.xml: Likewise. * doc/xml/manual/localization.xml: Likewise. * doc/xml/manual/messages.xml: Likewise. * doc/xml/manual/mt_allocator.xml: Likewise. * doc/xml/manual/numerics.xml: Likewise. * doc/xml/manual/parallel_mode.xml: Likewise. * doc/xml/manual/policy_data_structures.xml: Likewise. * doc/xml/manual/prerequisites.xml: Likewise. * doc/xml/manual/profile_mode.xml: Likewise. * doc/xml/manual/shared_ptr.xml: Likewise. * doc/xml/manual/status_cxx1998.xml: Likewise. * doc/xml/manual/status_cxx2011.xml: Likewise. * doc/xml/manual/status_cxxtr1.xml: Likewise. * doc/xml/manual/status_cxxtr24733.xml: Likewise. * doc/xml/manual/strings.xml: Likewise. * doc/xml/manual/support.xml: Likewise. * doc/xml/manual/test.xml: Likewise. * doc/xml/manual/using_exceptions.xml: Likewise. * doc/xml/manual/utilities.xml: Likewise. * doc/xml/spine.xml: Likewise. From-SVN: r193414
Andreas Schwab committed -
acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Also check for /usr/share/xml/docbook/stylesheet/nwalsh5/current. * acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Also check for /usr/share/xml/docbook/stylesheet/nwalsh5/current. * configure: Regenerate. From-SVN: r193413
Andreas Schwab committed -
re PR middle-end/55263 (ICE: pre_and_rev_post_order_compute, at cfganal.c:875 with -O -fgcse-after-reload -fnon-call-exceptions) gcc/ PR middle-end/55263 * postreload.c (rest_of_handle_postreload): With non-call exceptions, if edges are purged call cleanup_cfg to remove unreachable blocks. testsuite/ PR middle-end/55263 * g++.dg/pr55263.C: New test. From-SVN: r193412
Steven Bosscher committed -
2012-11-11 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/extend.texi: Copy-edit to use "built-in function" instead of "builtin", per GCC coding standards. Also use consistent capitalization in titles of sections describing built-in functions. From-SVN: r193411
Sandra Loosemore committed -
re PR tree-optimization/55238 (ICE in find_aggregate_values_for_callers_subset, at ipa-cp.c:2908 building zlib) PR tree-optimization/55238 * ipa-cp.c (agg_pass_through_permissible_p): New function. (propagate_aggs_accross_jump_function): Use it. (find_aggregate_values_for_callers_subset): Likewise and relax an assert. * testsuite/gcc.dg/torture/pr55238.c: New test. From-SVN: r193410
Martin Jambor committed -
PR target/47440 * config/i386/i386.c (check_avx256_stores): Remove. (ix86_check_avx256_register): New. (ix86_avx_u128_mode_needed): Use ix86_check_avx256_register. Check the whole RTX for 256bit registers using for_each_rtx. (ix86_check_avx_stores): New. (ix86_avx_u128_mode_after): Change mode of CALL RTX to AVX_U128_CLEAN if there are no 256bit registers used in the function return register. (ix86_avx_u128_mode_entry): Use ix86_check_avx256_register. (ix86_avx_u128_mode_exit): Ditto. From-SVN: r193409
Uros Bizjak committed -
* gcc.dg/torture/pr54920.c: Add "-fno-common" option on hppa*-*-hpux*. * c-c++-common/torture/vector-subscript-1.c: Likewise. * c-c++-common/torture/vector-subscript-2.c: Likewise. From-SVN: r193408
John David Anglin committed -
From-SVN: r193407
Jan Hubicka committed -
PR middle-end/48636 * ipa-inline.c (want_inline_small_function_p): Take aray index hint. (edge_badness): Likewise. * ipa-inline.h (inline_hints_vals): Add array_index and comments. (inline_summary_: Add ARRAY_INDEX. * ipa-inline-analysis.c (dump_inline_hints): Dump array_index hint. (reset_inline_summary): Handle array_index hint. (inline_node_duplication_hook): Likewise. (dump_inline_summary): Likewise. (array_index_predicate): New function. (estimate_function_body_sizes): Use it. (estimate_node_size_and_time): Use array_index hint. (inline_merge_summary, inline_read_section): Likewise. From-SVN: r193406
Jan Hubicka committed -
* doc/xml/manual/policy_data_structures.xml: Update reference for select. From-SVN: r193405
Gerald Pfeifer committed -
2012-11-10 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/extend.texi: Copy-edit to use "bit-field" consistently instead of "bitfield" or "bit field". From-SVN: r193403
Sandra Loosemore committed -
2012-11-10 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/extend.texi: Copy-edit to fix incorrect hyphenation phrases involving "bit", "byte", "word", "precision", and "floating" modifiers. From-SVN: r193402
Sandra Loosemore committed -
* cp-demangle.c (d_unqualified_name): Handle abi tags here. (d_name): Not here. From-SVN: r193401
Jason Merrill committed -
2012-11-10 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/extend.texi: Copy-edit to fix incorrect uses of "which" and "that" throughout the file. From-SVN: r193400
Sandra Loosemore committed -
From-SVN: r193399
GCC Administrator committed
-
- 10 Nov, 2012 6 commits
-
-
From-SVN: r193395
Ian Lance Taylor committed -
* gcc.target/i386/pr55247.c: Require maybe_x32 target. Add -mno-sse -mno-mmx to dg-options. Reformat. From-SVN: r193394
H.J. Lu committed -
2012-11-10 Andrew Pinski <apinski@cavium.com> PR bootstrap/55202 * configure.ac: Set PLUGIN_LD_SUFFIX to just "ld" if it was "ld-new" or "collect-ld". * configure: Regenerate. From-SVN: r193393
Andrew Pinski committed -
From-SVN: r193392
Jason Merrill committed -
* expr.c (store_field): Remove TYPE parameter. Remove block of code dealing with BLKmode in registers. Reimplement this support using pseudo-registers and bit-field techniques. (store_constructor_field): Remove TYPE parameter and adjust calls to store_field. (expand_assignment): Adjust calls to store_field. Add comment. (store_expr): Add comment. (store_constructor): Adjust calls to store_constructor_field. (expand_expr_real_2): Adjust call to store_field. From-SVN: r193391
Eric Botcazou committed -
* g++.dg/other/unused1.C: Skip on AIX. * g++.dg/other/anon5.C: Allow Undefined to be capitalized. Ignore extra message on AIX. From-SVN: r193390
David Edelsohn committed
-