Age | Commit message (Collapse) | Author | Files | Lines |
|
Reviewed-on: https://go-review.googlesource.com/13095
From-SVN: r226543
|
|
2015-08-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR tree-optimization/67043
* loop-invariant.c (move_invariant_reg): Recompute luids in loop
preheader after hoisting invariant in it.
(find_defs): Force recomputation of all luids.
gcc/testsuite/
PR tree-optimization/67043
* gcc.dg/pr67043.c: New test.
From-SVN: r226540
|
|
From-SVN: r226538
|
|
The struct RawSockaddr contains a field Data which
should be uint8 on ppc64 and ppc64le, but is declared
as int8 in gccgo. This change adds a two new files
which contain the structure declaration for
RawSockaddr, one with the correct types for for ppc64
and ppc64le, and the other for non-ppc64 platforms.
Fixes golang/go#11469
Reviewed-on: https://go-review.googlesource.com/11946
From-SVN: r226533
|
|
gcc/
* config/rs6000/htm.md (tabort.): Restrict the source operand to
using a base register.
gcc/testsuite/
* gcc.target/powerpc/htm-tabort-no-r0.c: New test.
From-SVN: r226532
|
|
gcc/ChangeLog:
* main.c (main): Pass in NULL for toplev's external_timer.
* timevar.c: Include coretypes.h.
(class timer::named_items): New.
(timer::named_items::named_items): New.
(timer::named_items::~named_items): New.
(timer::named_items::push): New.
(timer::named_items::pop): New.
(timer::named_items::print): New.
(timer::timer): Initialize field "m_jit_client_items".
(timer::~timer): New.
(timer::push): Move bulk of implementation to...
(timer::push_internal): ...here. New function.
(timer::pop): Move bulk of implementation to...
(timer::pop_internal): ...here. New function.
(timer::push_client_item): New.
(timer::pop_client_item): New.
(timer::print_row): New function, taken from timer::print.
(timer::print): Print "GCC items" header if we also have client
items. Move row-printing to timer::print_row. Print any client
items.
(timer::get_topmost_item_name): New method.
* timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
(TV_JIT_CLIENT_CODE): New.
* timevar.h (timer::push_client_item): New declaration.
(timer::pop_client_item): New declaration.
(timer::get_topmost_item_name): New method.
(timer::push_internal): New declaration.
(timer::pop_internal): New declaration.
(timer::print_row): New declaration.
(timer::named_items): New declaration.
(timer::m_jit_client_items): New field.
(timer): Add friend class named_items.
(auto_timevar::auto_timevar): Add timer param.
(auto_timevar::~auto_timevar): Use field "m_timer".
(auto_timevar::m_timer): New field.
* toplev.c (initialize_rtl): Add g_timer as param when
constructing auto_timevar instance.
(toplev::toplev): Add "external_timer" param, and use it to
initialize the "g_timer" global if non-NULL.
(toplev::~toplev): If this created "g_timer", delete it.
* toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
with "external_timer" timer *.
gcc/jit/ChangeLog:
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_4): New.
* docs/topics/contexts.rst (GCC_JIT_BOOL_OPTION_DUMP_SUMMARY):
We no longer show a profile.
* docs/topics/index.rst (Topic Reference): Add performance.rst.
* docs/topics/performance.rst: New file.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c (gcc::jit::playback::context::compile): Add timer
param when constructing the "toplev" instance.
(gcc::jit::playback::context::acquire_mutex): Add timer param when
constructing auto_timevar instance.
(gcc::jit::playback::context::make_fake_args): If we have a timer,
add "-ftime-report".
(gcc::jit::playback::context::invoke_driver): Add timer param when
constructing auto_timevar instance.
(gcc::jit::playback::context::dlopen_built_dso): Likewise.
* jit-playback.h (gcc::jit::playback::context::get_timer): New accessor.
* jit-recording.c: Include timevar.h.
(gcc::jit::recording::context::context): Initialize field "m_timer".
* jit-recording.h: Add forward declaration of class timer.
(gcc::jit::recording::context::set_timer): New method.
(gcc::jit::recording::context::get_timer): New method.
(gcc::jit::recording::context::m_timer): New field.
* libgccjit++.h (gccjit::timer): New class.
(gccjit::auto_time): New class.
(gccjit::context::set_timer): New method.
(gccjit::context::get_timer): New.
(gccjit::timer::timer): New.
(gccjit::timer::push): New.
(gccjit::timer::pop): New.
(timer::print): New.
(timer::get_inner_timer): New.
(timer::release): New.
(auto_time::auto_time): New.
(auto_time::~auto_time): New.
* libgccjit.c: Include timevar.h.
(struct gcc_jit_timer): New.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
* libgccjit.h (LIBGCCJIT_HAVE_TIMING_API): New macro.
(gcc_jit_timer): New typedef.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
* libgccjit.map (LIBGCCJIT_ABI_4): New.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
gcc/testsuite/ChangeLog:
* jit.dg/test-benchmark.c (test_jit): Add param "timer" and use
it to push/pop timing items.
(main): For each optimization level, create a gcc_jit_timer, and
time all of the iteration within that level cumulatively.
* jit.dg/test-error-gcc_jit_timer_pop-mismatch.c: New test case.
* jit.dg/test-error-gcc_jit_timer_pop-too-many.c: New test case.
From-SVN: r226530
|
|
Fixes golang/go#11573.
Reviewed-on: https://go-review.googlesource.com/12508
From-SVN: r226529
|
|
expr.c:6659)
PR middle-end/64744
PR middle-end/48470
PR middle-end/43404
* cfgexpand.c (expand_one_var): Add check if stack is going to
be used in naked function.
* expr.c (expand_expr_addr_expr_1): Remove excess checking
whether expression should not reside in MEM.
* function.c (use_register_for_decl): Do not use registers for
non-register things (volatile, float, BLKMode) in naked functions.
PR middle-end/64744
PR middle-end/48470
PR middle-end/43404
* gcc.target/arm/pr43404.c : New testcase.
* gcc.target/arm/pr48470.c : New testcase.
* gcc.target/arm/pr64744-1.c : New testcase.
* gcc.target/arm/pr64744-2.c : New testcase.
From-SVN: r226528
|
|
There is no need to make type descriptors for named types when there
are errors during package compilation. Particularly, if the error in
package compilation is from a malformed named type, there is no
guarantee a type descriptor can be created.
Fixes golang/go#11560.
Reviewed-on: https://go-review.googlesource.com/12792
From-SVN: r226527
|
|
This change modifies the "gotest" shell script
to kill all processes, including "sleep", spawned
by the timeout subshell. This prevents the sleep
process from living beyond the gotest process.
BACKGROUND
The "gotest" shell script spawns "sleep" processes
in the background to kill off test cases that run
past their specified timeout. There are commands
included that appear to kill the sleep process,
but they only kill the parent shell, causing the
sleep process to reparent.
The orphaned sleep process can cause issues when
gotest is run under some build systems, such as
Ninja [0]. The particular issue with Ninja is the
method it uses to identify terminated processes:
it creates a pipe, passes the write end to the
child process, and waits for EOF. In the case of
libgo/gotest, the orphaned sleep process inherits
the pipe FD and keeps it open for 4 minutes by
default.
[0] https://github.com/martine/ninja
Reviewed-on: https://go-review.googlesource.com/12227
From-SVN: r226526
|
|
‘__builtin_frame_address’ with a nonzero argument is unsafe [-Werror=frame-address])
PR go/67101
runtime: Remove call to __builtin_frame_address.
__builtin_frame_address was only supposed to use nonzero arguments
for debugging purposes. Calling it with nonzero arguments can have
unpredictable results and uses are now marked unsafe when
-Wframe-address is enabled.
Reviewed-on: https://go-review.googlesource.com/13063
From-SVN: r226525
|
|
PR target/67060
* config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
Adjust splits to match new pattern.
From-SVN: r226522
|
|
2015-08-03 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
(VEC_M): Likewise.
(VEC_N): Likewise.
(mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
point in VSX registers.
* config/rs6000/constraints.md (wb constraint): Document unused
w<x> constraint.
(we constraint): Likewise.
(wo constraint): Likewise.
(wp constraint): New constraint for IEEE 128-bit floating point in
VSX registers.
(wq constraint): Likewise.
* config/rs6000/predicates.md (easy_fp_constant): Add support for
IEEE 128-bit floating point in VSX registers.
(easy_scalar_constant): Likewise.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
constraints (wp, wq) for IEEE 128-bit floating point in VSX
registers.
(rs6000_init_hard_regno_mode_ok): Likewise.
* config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
floating point in VSX registers.
(VSX_L): Likewise.
(VSX_M): Likewise.
(VSX_M2): Likewise.
(VSm): Likewise.
(VSs): Likewise.
(VSr): Likewise.
(VSa): Likewise.
(VSv): Likewise.
(vsx_le_permute_<mode>): Add support to properly swap bytes for
IEEE 128-bit floating point in VSX registers on little endian.
(vsx_le_undo_permute_<mode>): Likewise.
(vsx_le_perm_load_<mode>): Likewise.
(vsx_le_perm_store_<mode>): Likewise.
(splitters for IEEE 128-bit fp moves): Likewise.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
wq constraints.
* config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
floating point in VSX registers.
(VM2): Likewise.
* doc/md.text (Machine Constraints): Document wp and wq
constraints on PowerPC.
From-SVN: r226520
|
|
PR tree-optimization/67077
* gcc.dg/pr67077.c: New test.
From-SVN: r226518
|
|
pointer of type 'struct vec')
2015-08-03 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66942
* trans-expr.c (gfc_conv_procedure_call): Avoid NULL pointer reference
From-SVN: r226517
|
|
PR middle-end/66314
PR gcov-profile/66899
* tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
iterate over the jump threading paths when an element in the
jump threading paths array is eliminated.
PR middle-end/66314
PR gcov-profile/66899
* gcc.dg/pr66899.c: New test.
* gcc.dg/pr66314.c: New test.
From-SVN: r226516
|
|
From-SVN: r226514
|
|
gcc/ChangeLog:
* tree-ssa-uninit.c (find_uninit_use): Declare and pass to
is_use_properly_guarded the variable def_preds. Free its
contents before returning.
(prune_uninit_phi_opnds_in_unrealizable_paths): Same.
(is_use_properly_guarded): Replace local variable def_preds with
a parameter. Adjust accordingly. Only update *def_preds if it's
the empty vector.
From-SVN: r226511
|
|
declaration)
PR c/67088
* c-decl.c (check_bitfield_type_and_width): Add location parameter.
Use it.
(grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
* gcc.dg/pr67088.c: New test.
From-SVN: r226506
|
|
2015-08-03 Richard Biener <rguenther@suse.de>
* genmatch.c (simplify::for_subst_vec): New member.
(binary_ok): New helper for for lowering.
(lower_for): Delay substituting operators into result expressions
if we can merge the results eventually again.
(capture_info::walk_result): Adjust for user_id appearing as
result expression operator.
(expr::gen_transform): Likewise.
(dt_simplify::gen_1): Likewise.
(dt_simplify::gen): Pass not substituted operators to tail
functions or initialize local variable with it.
(decision_tree::gen): Adjust function signature.
* match.pd: Fix tests against global code and add default
cases to switch stmts.
From-SVN: r226505
|
|
2015-08-03 Richard Biener <rguenther@suse.de>
* genmatch.c (simplify::for_subst_vec): New member.
(binary_ok): New helper for for lowering.
(lower_for): Delay substituting operators into result expressions
if we can merge the results eventually again.
(capture_info::walk_result): Adjust for user_id appearing as
result expression operator.
(expr::gen_transform): Likewise.
(dt_simplify::gen_1): Likewise.
(dt_simplify::gen): Pass not substituted operators to tail
functions or initialize local variable with it.
(decision_tree::gen): Adjust function signature.
* match.pd: Fix tests against global code and add default
cases to switch stmts.
From-SVN: r226504
|
|
2015-08-03 Richard Biener <rguenther@suse.de>
* genmatch.c (dt_simplify::gen): Create captures array
with an initializer.
From-SVN: r226503
|
|
gcc/ChangeLog:
* configure.ac: Set aliasing_flags to -fno-strict-aliasing if
the host compiler is affected by placement new aliasing bug.
* configure: Regenerate.
* Makefile.in (ALIASING_FLAGS): New variable.
(ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
From-SVN: r226499
|
|
gcc:
PR target/66731
* config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
(negmulsf3_vfp): Likewise.
(muldf3negdf_vfp): Disable for -frounding-math.
(mulsf3negsf_vfp): Likewise.
* config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
fix MULT cost with -frounding-math.
gcc/testsuite:
PR target/66731
* gcc.target/arm/vnmul-1.c: New.
* gcc.target/arm/vnmul-2.c: New.
* gcc.target/arm/vnmul-3.c: New.
* gcc.target/arm/vnmul-4.c: New.
From-SVN: r226496
|
|
PR fortran/64921
gcc/fortran/
* class.c (generate_finalization_wrapper): Set finalization
procedure symbol's always_explicit attribute.
gcc/testsuite/
* gfortran.dg/class_allocate_20.f90: New.
From-SVN: r226493
|
|
* ifcvt.c (noce_try_store_flag_constants): Make logic of the case
when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
explicit. Prefer to add the flag whenever possible.
(noce_process_if_block): Try noce_try_store_flag_constants before
noce_try_cmove.
* gcc.target/aarch64/csel_bfx_1.c: New test.
* gcc.target/aarch64/csel_imms_inc_1.c: Likewise.
From-SVN: r226491
|
|
2015-08-03 Richard Biener <rguenther@suse.de>
* genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
New hash-map to record equivalent transforms.
(dt_node::analyze): Populate the equivalent transforms hash-map.
(dt_simplify::info): Add reference to hash-map entry.
(dt_simplify::gen): If we have split out a function for the
transform, generate a call to it.
(sinfo_hashmap_traits::hash): New function.
(compare_op): New helper function for ...
(sinfo_hashmap_traits::equal_keys): ... this new function.
(decision_tree::gen): Split out common equivalent transforms
into functions.
From-SVN: r226490
|
|
COND_EXPRs.
2015-08-03 Richard Biener <rguenther@suse.de>
* gimple-fold.c (fold_gimple_assign): Remove folding of
the comparison in COND_EXPRs.
From-SVN: r226489
|
|
assignments first simplify the embedded...
2015-08-03 Richard Biener <rguenther@suse.de>
* gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
on the rhs of assignments first simplify the embedded
GENERIC condition.
From-SVN: r226488
|
|
incorrect alignment)
2015-08-03 Richard Biener <rguenther@suse.de>
PR tree-optimization/66917
* tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
field.
(DR_VECT_AUX): New macro.
(set_dr_misalignment): Adjust.
(dr_misalignment): Likewise.
* tree-vect-data-refs.c (vect_compute_data_ref_alignment):
Compute whether the base is at least element aligned.
* tree-vect-stmts.c (ensure_base_align): Adjust.
(vectorizable_store): If the base is not element aligned
preserve alignment of the original access if misalignment is unknown.
(vectorizable_load): Likewise.
From-SVN: r226487
|
|
From-SVN: r226483
|
|
gcc/ChangeLog
2015-07-28 Martin Sebor <msebor@redhat.com>
* c-family/c.opt (-Wframe-address): New warning option.
* doc/invoke.texi (Wframe-address): Document it.
* doc/extend.texi (__builtin_frame_address, __builtin_return_address):
Clarify possible effects of calling the functions with non-zero
arguments and mention -Wframe-address.
* builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
gcc/testsuite/ChangeLog
2015-07-28 Martin Sebor <msebor@redhat.com>
* g++.dg/Wframe-address-in-Wall.C: New test.
* g++.dg/Wframe-address.C: New test.
* g++.dg/Wno-frame-address.C: New test.
* gcc.dg/Wframe-address-in-Wall.c: New test.
* gcc.dg/Wframe-address.c: New test.
* gcc.dg/Wno-frame-address.c: New test.
From-SVN: r226480
|
|
gcc/c-family/ChangeLog:
* c-indentation.c (should_warn_for_misleading_indentation):
Improve heuristics.
gcc/testsuite/ChangeLog:
* c-c++-common/Wmisleading-indentation.c: Add more tests.
From-SVN: r226479
|
|
gcc/c-family/ChangeLog:
* c-indentation.c (get_visual_column): Add parameter first_nws,
use it. Update comment documenting the function.
(is_first_nonwhitespace_on_line): Remove.
(should_warn_for_misleading_indentation): Replace usage of
of is_first_nonwhitespace_on_line with get_visual_column.
From-SVN: r226478
|
|
gcc/c-family/ChangeLog:
* c-indentation.h (struct token_indent_info): Define.
(get_token_indent_info): Define.
(warn_for_misleading_information): Declare.
* c-common.h (warn_for_misleading_information): Remove.
* c-identation.c (warn_for_misleading_indentation):
Change declaration to take three token_indent_infos. Adjust
accordingly.
* c-identation.c (should_warn_for_misleading_indentation):
Likewise. Bail out early if the body is a compound statement.
(guard_tinfo_to_string): Define.
gcc/c/ChangeLog:
* c-parser.c (c_parser_if_body): Take token_indent_info
argument. Call warn_for_misleading_indentation even when the
body is a semicolon. Extract token_indent_infos corresponding
to the guard, body and next tokens. Adjust call to
warn_for_misleading_indentation accordingly.
(c_parser_else_body): Likewise.
(c_parser_if_statement): Likewise.
(c_parser_while_statement): Likewise.
(c_parser_for_statement): Likewise.
gcc/cp/ChangeLog:
* parser.c (cp_parser_selection_statement): Move handling of
semicolon body to ...
(cp_parser_implicitly_scoped_statement): .. here. Call
warn_for_misleading_indentation even when the body is a
semicolon. Extract token_indent_infos corresponding to the
guard, body and next tokens. Adjust call to
warn_for_misleading_indentation accordingly. Take
token_indent_info argument.
(cp_parser_already_scoped_statement): Likewise.
(cp_parser_selection_statement, cp_parser_iteration_statement):
Extract a token_indent_info corresponding to the guard token.
From-SVN: r226477
|
|
2015-08-01 Michael Collison <michael.collison@linaro.org
Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
* gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
(*arm_umin_cmp): Likewise.
* gcc.target/arm/mincmp.c: New test.
From-SVN: r226476
|
|
libstdc++-v3/src/c++11/ostream-inst.cc)
Fix PR 66521
libvtv/ChangeLog
2015-08-01 Caroline Tice <cmtice@google.com>
PR 66521
* Makefile.am: Update to match latest tree.
* Makefile.in: Regenerate.
* testsuite/lib/libvtv: Brought up to date.
* vtv_malloc.cc (VTV_DEBUG): Update function call to match renamed
function (old bug!).
* vtv_rts.cc (debug_functions, debug_init, debug_verify_vtable): Update
initializations to work correctly with VTV_DEBUG defined.
gcc/ChangeLog:
2015-08-01 Caroline Tice <cmtice@google.com>
PR 66521
* vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
global variables.
(vtbl_find_mangled_name): New function.
(vtbl_register_mangled_name): New function.
(vtbl_map_get_node): If DECL_ASSEMBLER_NAME is "<anon>", look up
mangled name in mangled name vectors.
(find_or_create_vtbl_map_node): Ditto.
(var_is_used_for_virtual_call_p): Add recursion_depth parameter;
update recursion_depth on function entry; pass it to every recursive
call; automatically exit if depth > 25 (give up looking at that point).
(verify_bb_vtables): Initialize recursion_depth and pass it to
var_is_used_for_virtual_call_p.
* vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
global variable decls.
(vtbl_register_mangled_name): New extern function decl.
gcc/cp/ChangeLog:
2015-08-01 Caroline Tice <cmtice@google.com>
PR 66521
* mangle.c : Add vtable-verify.h to include files.
(get_mangled_vtable_map_var_name): If the DECL_ASSEMBLER_NAME
is "<anon>" get the real mangled name for the class instead, and
also store the real mangled name in a vector for use later.
From-SVN: r226471
|
|
From-SVN: r226468
|
|
pointers to the intrinsic function ASSOCIATED)
2015-08-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/67091
* trans-intrinsic.c (gfc_conv_associated): Add the pre and post
blocks for the second argument to se.
2015-08-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/67091
* gfortran.dg/associated_target_6.f03: New test
From-SVN: r226464
|
|
2015-08-01 Tom de Vries <tom@codesourcery.com>
* tree.c (operation_can_overflow, operation_no_trapping_overflow): New
function.
* tree.h (operation_can_overflow, operation_no_trapping_overflow):
Declare.
* tree-vect-loop.c (vect_is_simple_reduction_1): Use
operation_no_trapping_overflow. Allow non-overflow operations.
* graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
operations.
* gcc.dg/autopar/reduc-2char.c (init_arrays): Mark with attribute
optimize ("-ftree-parallelize-loops=0").
Add successful scans for 2 detected reductions. Add xfail scans for 3
detected reductions.
* gcc.dg/autopar/reduc-2short.c: Same.
* gcc.dg/autopar/reduc-8.c (init_arrays): Mark with attribute
optimize ("-ftree-parallelize-loops=0"). Add successful scans for 2
detected reductions.
* gcc.dg/vect/trapv-vect-reduc-4.c: Update scan to match vectorized min
and max reductions.
From-SVN: r226463
|
|
From-SVN: r226462
|
|
Errors reported from malformed builtin calls are handled in a later
pass than the one in which they are detected. If a malformed builtin
call is lowered into an error expression too early, these errors will
never be reported.
Fixes golang/go#11561.
Reviewed-on: https://go-review.googlesource.com/12778
From-SVN: r226459
|
|
df-scan.c:3001)
PR target/67049
* config/sh/sh.md (GOTaddr2picreg): Fix typo added with the last change.
From-SVN: r226457
|
|
Function declarations don't create a block where the variables listed
in the parameter list are declared. Because there are no variables
declared, the types of the parameter variables is unchecked, allowing
for invalid values to be used as the type. This patch adds a special
case to the check_types pass for function declarations.
Fixes golang/go#11567.
Reviewed-on: https://go-review.googlesource.com/12662
From-SVN: r226456
|
|
Fixes golang/go#11569.
Reviewed-on: https://go-review.googlesource.com/12652
From-SVN: r226452
|
|
According to the spec, http://golang.org/ref/spec#Built-in_functions:
"built-in functions do not have standard Go types, so they can only
appear in call expressions; they cannot be used as function values."
Fixes golang/go#11570.
Reviewed-on: https://go-review.googlesource.com/12543
From-SVN: r226448
|
|
* config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
Enable for TARGET_32BIT.
(*if_move_neg): Likewise.
From-SVN: r226447
|
|
* config/m32r/m32r.c (m32r_attribute_identifier): New function.
Returns true for __model__.
(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
From-SVN: r226445
|
|
PR target/66870
* config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
(rs6000_emit_prologue): Set it.
(rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
From-SVN: r226443
|
|
PR sanitizer/66977
* typeck.c (get_member_function_from_ptrfunc): Don't sanitize
RSHIFT_EXPR.
* g++.dg/ubsan/pr66977.C: New test.
From-SVN: r226440
|