Martin Liska [Mon, 9 Feb 2015 10:31:14 +0000 (11:31 +0100)]
IPA ICF: Fix late initialization of callgraph hooks.
* g++.dg/ipa/pr64858.C: New test.
* ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
just if not yet registered.
(ipa_icf_generate_summary): Register callgraph hooks.
Jan Hubicka [Sun, 8 Feb 2015 21:04:41 +0000 (22:04 +0100)]
re PR ipa/63566 (i686 bootstrap fails: ICE RTL flag check: INSN_UID used with unexpected rtx code 'set' in INSN_UID, at rtl.h:1326)
PR ipa/63566
* i386.c (ix86_function_regparm): Look through aliases to see if callee
is local and optimized.
(ix86_function_sseregparm): Likewise; also use target's SSE math
settings; error out instead of silently generating wrong code
on mismatches.
(init_cumulative_args): Look through aliases.
Jan Hubicka [Sun, 8 Feb 2015 20:08:21 +0000 (21:08 +0100)]
re PR ipa/63566 (i686 bootstrap fails: ICE RTL flag check: INSN_UID used with unexpected rtx code 'set' in INSN_UID, at rtl.h:1326)
PR ipa/63566
* cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
aliases before trying to expand it.
(cgraph_node::expand_thunk): Fix formating.
Mikael Morin [Sun, 8 Feb 2015 14:18:16 +0000 (14:18 +0000)]
Use the local name instead of the original name in the check for name conflicts...
Use the local name instead of the original name in the check for name conflicts
between a hosting program unit and use-associated symbols
in that program unit.
fortran/
PR fortran/63744
* module.c (check_for_ambiguous): Change argument type
from gfc_symbol to gfc_symtree. Check local (symtree) name
instead of original (symbol) name.
(read_module): Update caller.
Eric Botcazou [Sun, 8 Feb 2015 10:12:38 +0000 (10:12 +0000)]
decl.c (gnat_to_gnu_param): Do not strip the padding if the parameter either is passed by reference or if...
* gcc-interface/decl.c (gnat_to_gnu_param): Do not strip the padding
if the parameter either is passed by reference or if the alignment
would be lowered.
Jerry DeLisle [Sat, 7 Feb 2015 15:13:15 +0000 (15:13 +0000)]
re PR fortran/60956 (error reading (and writing) large text files in gfortran)
2015-02-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/60956
* io/fbuf.c (fbuf_flush_list): New function that only flushes
if current fbuf position exceeds a limit.
* io/fbuf.h: Declare the new function.
* io/io.h (enum unit_mode): Add two new modes.
* io/list_read.c (list_formatted_read_scalar): Call new function.
* io/write.c: Include fbuf.h. (list_formatted_write_scalar):
Call new function.
David Malcolm [Fri, 6 Feb 2015 23:19:32 +0000 (23:19 +0000)]
PR jit/64752 - Rewrite jit testsuite to eliminate use of "file"
gcc/testsuite/ChangeLog:
PR jit/64752
* jit.dg/create-code-for-hello-world-executable.h: New file, taken
from jit.dg/test-compile-to-executable.c's create_code, with a
clarification of the output message.
* jit.dg/harness.h (CHECK_NO_ERRORS): Add test and __func__ to the
pass/fail message.
(test_jit): Use CHECK_NO_ERRORS when calling
gcc_jit_context_compile_to_file.
* jit.dg/jit.exp (jit-dg-test): Update grep for rename of
jit-verify-compile-to-file to jit-verify-output-file-was-created.
(jit-setup-compile-to-file): Likewise. Add a verbose comment
about deletions that are attempted.
(jit-verify-compile-to-file): Rename to...
(jit-verify-output-file-was-created): ...this, and drop the
attempt to run "file" and verify the output.
(jit-verify-assembler): New function.
(jit-verify-object): New function.
(jit-verify-dynamic-library): New function.
* jit.dg/test-compile-to-assembler.c (create_code): Eliminate in
favor of an implementation from new file
create-code-for-hello-world-executable.h, which also adds a
"main".
(dg-final): Replace jit-verify-compile-to-file with
jit-verify-output-file-was-created, and invoke new function
jit-verify-assembler.
* jit.dg/test-compile-to-dynamic-library.c (create_code): Clarify
the output message.
(dg-final): Replace jit-verify-compile-to-file with
jit-verify-output-file-was-created, and invoke new function
jit-verify-dynamic-library.
* jit.dg/test-compile-to-executable.c (create_code): Eliminate in
favor of an implementation from new file
create-code-for-hello-world-executable.h, which also adds a
"main".
(dg-final): Replace jit-verify-compile-to-file with
jit-verify-output-file-was-created. Strengthen the expected stdout
from the built executable.
* jit.dg/test-compile-to-object.c (create_code): Eliminate in
favor of an implementation from new file
create-code-for-hello-world-executable.h, which also adds a
"main".
(dg-final): Replace jit-verify-compile-to-file with
jit-verify-output-file-was-created, and invoke new function
jit-verify-object.
* jit.dg/verify-dynamic-library.c: New source file.
Sebastian Pop [Fri, 6 Feb 2015 21:08:13 +0000 (21:08 +0000)]
PR 64878: do not jump thread across more than one back-edge
2015-02-04 Sebastian Pop <s.pop@samsung.com>
Brian Rzycki <b.rzycki@samsung.com>
PR tree-optimization/64878
* tree-ssa-threadedge.c: Include tree-ssa-loop.h.
(fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
Stop recursion at loop phi nodes after having visited a loop phi node.
Jakub Jelinek [Fri, 6 Feb 2015 20:47:20 +0000 (21:47 +0100)]
re PR ipa/64896 (ICE in get_address_mode, at rtlanal.c:5442)
PR ipa/64896
* cgraphunit.c (cgraph_node::expand_thunk): If
restype is not is_gimple_reg_type nor the thunk_fndecl
returns aggregate_value_p, set restmp to a temporary variable
instead of resdecl.
re PR target/64205 (powerpc64-linux --with-cpu=G5 bootstrap failure)
[gcc]
2015-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/64205
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
add a general secondary reload handler for SDmode, unless we have
both read/write support for SDmode.
[gcc/testsuite]
2015-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/64205
* gcc.target/powerpc/pr64205.c: New file.
Jakub Jelinek [Fri, 6 Feb 2015 18:26:59 +0000 (19:26 +0100)]
re PR middle-end/64937 (compare debug failure with -fsanitize=address)
PR middle-end/64937
* dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
1 before, push it to abstract_vec.
(dwarf2out_abstract_function): Adjust caller. Don't call
set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
DECL_ABSTRACT_P flags for all abstract_vec elts.
Paul Thomas [Fri, 6 Feb 2015 18:15:01 +0000 (18:15 +0000)]
re PR fortran/63205 ([OOP] Wrongly rejects type = class (for identical declared type))
2015-02-06 Paul Thomas <pault@gcc.gnu.org>
PR fortran/63205
* gfortran.h: Add 'must finalize' field to gfc_expr and
prototypes for gfc_is_alloc_class_scalar_function and for
gfc_is_alloc_class_array_function.
* expr.c (gfc_is_alloc_class_scalar_function,
gfc_is_alloc_class_array_function): New functions.
* trans-array.c (gfc_add_loop_ss_code): Do not move the
expression for allocatable class scalar functions outside the
loop.
(conv_array_index_offset): Cope with deltas being NULL_TREE.
(build_class_array_ref): Do not return with allocatable class
array functions. Add code to pick out the returned class array.
Dereference if necessary and return if not a class object.
(gfc_conv_scalarized_array_ref): Cope with offsets being NULL.
(gfc_walk_function_expr): Return an array ss for the result of
an allocatable class array function.
* trans-expr.c (gfc_conv_subref_array_arg): Remove the assert
that the argument should be a variable. If an allocatable class
array function, set the offset to zero and skip the write-out
loop in this case.
(gfc_conv_procedure_call): Add allocatable class array function
to the assert. Call gfc_conv_subref_array_arg for allocatable
class array function arguments with derived type formal arg..
Add the code for handling allocatable class functions, including
finalization calls to prevent memory leaks.
(arrayfunc_assign_needs_temporary): Return if an allocatable
class array function.
(gfc_trans_assignment_1): Set must_finalize to rhs expression
for allocatable class functions. Set scalar_to_array as needed
for scalar class allocatable functions assigned to an array.
Nullify the allocatable components corresponding the the lhs
derived type so that the finalization does not free them.
2015-02-06 Paul Thomas <pault@gcc.gnu.org>
PR fortran/63205
* gfortran.dg/class_to_type_4.f90: New test
Jeff Law [Fri, 6 Feb 2015 14:25:23 +0000 (07:25 -0700)]
re PR target/64889 ([h8300] ICE maybe_record_trace_start, at dwarf2cfi.c:2318)
PR target/64889
* config/h8300/h8300.c (push): New argument "in_prologue".
Pass "in_prologue" along to "F".
(h8300_push_pop): Corresponding changes.
(h8300_expand_prologue): Likewise.
(h8300_swap_into_er6): Likewise. Do not set RTX_FRAME_RELATED_P.
H.J. Lu [Fri, 6 Feb 2015 13:55:42 +0000 (13:55 +0000)]
Revert the PR lto/64837 fix
It breaks gold:
% echo "int main () {}" | gcc -fuse-ld=gold -flto -x c++ -
ld.gold: internal error in remove_writer, at token.h:132
collect2: error: ld returned 1 exit status
re PR fortran/60289 (allocating class(*) pointer as character gives type-spec requires the same character-length parameter)
PR fortran/60289
Initial patch by Janus Weil
* resolve.c (resolve_allocate_expr): Add check for comp. only when
target is not unlimited polymorphic.
* trans-stmt.c (gfc_trans_allocate): Assign correct value to _len
component of unlimited polymorphic entities.
* gfortran.dg/unlimited_polymorphic_22.f90: New test.
Eric Botcazou [Fri, 6 Feb 2015 11:17:46 +0000 (11:17 +0000)]
re PR target/62631 (gcc.dg/tree-ssa/ivopts-lt-2.c FAILs)
PR target/62631
* tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
of shift-add and (add + shift) operations. Rename local variable.
Add memprofilerate as a value recognized
in the GODEBUG env var. The value provided
is used as the new setting for
runtime.MemProfileRate, allowing the user
to adjust memory profiling.
Mantas Mikaitis [Thu, 5 Feb 2015 16:58:58 +0000 (16:58 +0000)]
[ARM] __ARM_FP & __ARM_NEON_FP defined when -march=armv7-m
gcc/:
* config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
define to zero if !TARGET_NEON.
(TARGET_CPU_CPP_BUILTINS): Added second condition before defining
__ARM_FP macro.
gcc/testsuite/:
* gcc.target/arm/macro_defs0.c: New test.
* gcc.target/arm/macro_defs1.c: New test.
* gcc.target/arm/macro_defs2.c: New test.
Arnaud Charlet [Thu, 5 Feb 2015 14:35:53 +0000 (15:35 +0100)]
[multiple changes]
2015-02-05 Robert Dewar <dewar@adacore.com>
* prj-proc.adb, sem_aux.adb, exp_ch9.adb, errout.adb, prj-dect.adb,
prj-nmsc.adb: Minor reformatting.
2015-02-05 Ed Schonberg <schonberg@adacore.com>
* sem_type.adb (Covers): In ASIS_Mode the Corresponding_Record
of a protected type may not be available, so to check conformance
with an interface type, examine the interface list in the type
declaration directly.
(Write_Overloads): Improve information for indirect calls,
for debugger use.
2015-02-05 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Make_Tag_Assignment): Do not perform this
expansion activity in ASIS mode.
Arnaud Charlet [Thu, 5 Feb 2015 14:32:46 +0000 (15:32 +0100)]
[multiple changes]
2015-02-05 Javier Miranda <miranda@adacore.com>
* errout.adb (Error_Msg_PT): Add missing error.
* sem_ch6.adb (Check_Synchronized_Overriding): Check the missing
RM rule. Code cleanup.
* exp_ch9.adb (Build_Wrapper_Spec): Propagate "constant" in
anonymous access types. Found working on the tests. Code cleanup.
2015-02-05 Vincent Celier <celier@adacore.com>
* prj-dect.adb (Parse_Attribute_Declaration): Continue scanning
when there are incomplete withs.
* prj-nmsc.adb (Process_Naming): Do not try to get the value
of an element when it is nil.
(Check_Naming): Do not check a nil suffix for illegality
* prj-proc.adb (Expression): Do not process an empty term.
* prj-strt.adb (Attribute_Reference): If attribute cannot be
found, parse a possible index to avoid cascading errors.
2015-02-05 Ed Schonberg <schonberg@adacore.com>
* sem_aux.adb (Is_Derived_Type): A subprogram_type generated
for an access_to_subprogram declaration is not a derived type.
Robert Dewar [Thu, 5 Feb 2015 14:31:10 +0000 (14:31 +0000)]
errout.adb (Error_Msg_Internal): For non-serious error set Fatal_Error to Ignored.
2015-02-05 Robert Dewar <dewar@adacore.com>
* errout.adb (Error_Msg_Internal): For non-serious error set
Fatal_Error to Ignored.
* lib-load.adb (Load_Unit): Minor comment updates.
* sem_ch10.adb (Analyze_With_Clause): Propagate Fatal_Error
setting from with'ed unit to with'ing unit.
* sem_prag.adb (Analyze_Pragma, case Warnings): Document handling
of ambiguity.
Yannick Moy [Thu, 5 Feb 2015 13:51:44 +0000 (13:51 +0000)]
par-prag.adb (Pragma_Warnings): Update for extended form of pragma Warnings.
2015-02-05 Yannick Moy <moy@adacore.com>
* par-prag.adb (Pragma_Warnings): Update for extended form
of pragma Warnings. The "one" argument case may now have 2 or
3 arguments.
* sem_prag.adb (Analyze_Pragma/Pragma_Warnings): Update for
extended form of pragma Warnings. Pragma with tool name is either
rewritten as null or as an equivalent form without tool name,
before reanalysis.
* snames.ads-tmpl (Name_Gnatprove): New name.
Arnaud Charlet [Thu, 5 Feb 2015 11:22:39 +0000 (12:22 +0100)]
015-02-05 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Add_Invariants): Don't assume invariant is
standard Boolean.
* sem_prag.adb (Analyze_Pragma, case Check): Don't assume
condition is standard Boolean, it can be non-standard derived
Boolean.
2015-02-05 Robert Dewar <dewar@adacore.com>
* checks.adb (Enable_Range_Check): Disconnect attempted
optimization for the case of range check for subscript of
unconstrained array.
2015-02-05 Robert Dewar <dewar@adacore.com>
* par-ch13.adb (With_Present): New function
(Aspect_Specifications_Present): Handle WHEN in place of WITH
(Get_Aspect_Specifications): Comment update.
* par.adb: Comment updates.
2015-02-05 Robert Dewar <dewar@adacore.com>
* errout.adb (Handle_Serious_Error): New setting of Fatal_Error.
* frontend.adb (Frontend): New setting of Fatal_Error.
* lib-load.adb (Create_Dummy_Package_Unit): New setting of
Fatal_Error.
(Load_Main_Source): New setting of Fatal_Error
(Load_Unit): New setting of Fatal_Error.
* lib-writ.adb (Add_Preprocessing_Dependency): New setting of
Fatal_Error.
(Ensure_System_Dependency): New setting of Fatal_Error.
* lib.adb (Fatal_Error): New setting of Fatal_Error
(Set_Fatal_Error): New setting of Fatal_Error.
* lib.ads: New definition of Fatal_Error and associated routines.
* par-ch10.adb (P_Compilation_Unit): New setting of Fatal_Error.
* par-load.adb (Load): New setting of Fatal_Error.
* rtsfind.adb (Load_RTU): New setting of Fatal_Error.
* sem_ch10.adb (Analyze_Compilation_Unit): New setting of
Fatal_Error.
(Optional_Subunit): New setting of Fatal_Error.
(Analyze_Proper_Body): New setting of Fatal_Error.
(Load_Needed_Body): New setting of Fatal_Error.
2015-02-05 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Call): If the function being called has
out parameters do not check for language version if the function
comes from a predefined unit, as those are always compiled in
Ada 2012 mode.
2015-02-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Process_Full_View): Verify that the full view
of a type extension must carry an explicit limited keyword if
the partial view does (RM 7.3 (10.1)).
Robert Dewar [Thu, 5 Feb 2015 11:17:25 +0000 (11:17 +0000)]
g-rannum.adb, [...]: Minor reformatting.
2015-02-05 Robert Dewar <dewar@adacore.com>
* g-rannum.adb, g-rannum.ads, s-rannum.adb, s-rannum.ads,
sem_warn.ads: Minor reformatting.
* exp_ch13.adb (Expand_N_Freeze_Entity): Add guard for aspect
deleted by -gnatI.
* sem_prag.adb (Analyze_Pragma, case Type_Invariant): Give
error for abstract type.
* opt.ads (Warn_On_Suspicious_Contract): Update comment
describing use.
* sem_attr.adb (Analyze_Attribute/Attribute_Update): Warn on
suspicious uses of 'Update.
* sem_warn.adb, sem_warn.ads (Warn_On_Suspicious_Update): New
function issues warning on suspicious uses of 'Update.
* g-rannum.adb, g-rannum.ads, s-rannum.adb, s-rannum.ads: Mark
package spec and body as SPARK_Mode Off.
Robert Dewar [Thu, 5 Feb 2015 11:11:49 +0000 (11:11 +0000)]
sem_prag.adb (Set_Elab_Unit_Name): New name for Set_Unit_Name
2015-02-05 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Set_Elab_Unit_Name): New name for Set_Unit_Name
(Analyze_Pragma): Change Set_Unit_Name to Set_Elab_Unit_Name
(Set_Elab_Unit_Name): Generate reference for Elaborate[_All]
* sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning
for exported entity.
* sem_prag.adb (Check_Pragma_Conformance): Add
local variable Arg. Ensure that all errors are associated with
the pragma if it appears without an argument. Add comments on
various cases.
Paul Thomas [Thu, 5 Feb 2015 08:06:04 +0000 (08:06 +0000)]
re PR fortran/64757 (ICE in fold_convert_loc, at fold-const.c:2353)
2015-02-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/64757
* resolve.c (resolve_structure_cons): Obtain the rank of class
components.
* trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
assignment to allocatable class array components.
(alloc_scalar_allocatable_for_subcomponent_assignment): If comp
is a class component, allocate to the _data field.
(gfc_trans_subcomponent_assign): If a class component with a
derived type expression set the _vptr field and for array
components, call gfc_trans_alloc_subarray_assign. For scalars,
the assignment is performed here.
2015-02-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/64757
* gfortran.dg/type_to_class_2.f90: New test
* gfortran.dg/type_to_class_3.f90: New test
Paul Thomas [Thu, 5 Feb 2015 08:02:58 +0000 (08:02 +0000)]
2015-02-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/640757
* resolve.c (resolve_structure_cons): Obtain the rank of class
components.
* trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
assignment to allocatable class array components.
(alloc_scalar_allocatable_for_subcomponent_assignment): If comp
is a class component, allocate to the _data field.
(gfc_trans_subcomponent_assign): If a class component with a
derived type expression set the _vptr field and for array
components, call gfc_trans_alloc_subarray_assign. For scalars,
the assignment is performed here.
2015-02-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/640757
* gfortran.dg/type_to_class_2.f90: New test
* gfortran.dg/type_to_class_3.f90: New test
Jakub Jelinek [Wed, 4 Feb 2015 22:38:48 +0000 (23:38 +0100)]
dwarf2.h (enum dwarf_source_language): Add DW_LANG_Fortran03 and DW_LANG_Fortran08.
include/
* dwarf2.h (enum dwarf_source_language): Add DW_LANG_Fortran03
and DW_LANG_Fortran08.
gcc/
* dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
or DW_LANG_Fortran08.
(lower_bound_default): Return 1 for DW_LANG_Fortran03 or
DW_LANG_Fortran08.
(gen_compile_unit_die): Handle "GNU Fortran2003" and
"GNU Fortran2008" language strings.
* dbxout.c (get_lang_number): Use lang_GNU_Fortran.
* langhooks.h (lang_GNU_Fortran): New prototype.
* langhooks.c (lang_GNU_Fortran): New function.
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
lang_GNU_Fortran.
gcc/fortran/
* options.c: Include langhooks.h.
(gfc_post_options): Change lang_hooks.name based on
selected -std= mode.
H.J. Lu [Wed, 4 Feb 2015 19:35:17 +0000 (11:35 -0800)]
Clear hard frame pointer alignment if not needed
When hard frame pointer isn't needed, the register for hard frame pointer
may be reused. This patch clears alignment on hard frame pointer if hard
frame pointer isn't needed.
gcc/
PR rtl-optimization/64905
* lra-eliminations.c (setup_can_eliminate): Clear hard frame
pointer alignment if it isn't needed.
gcc/testsuite/
PR rtl-optimization/64905
* gcc.target/i386/pr64905.c: New file.
David Malcolm [Wed, 4 Feb 2015 19:11:48 +0000 (19:11 +0000)]
More fixes for update_web_docs_svn for jit docs (PR jit/64257)
gcc/jit/ChangeLog:
PR jit/64257
* docs/conf.py (html_theme): Change from 'pyramid'
to 'sphinxdoc'.
maintainer-scripts/ChangeLog:
PR jit/64257
* update_web_docs_svn: Update build of jit docs to use EPEL6
variant install of sphinx 1.0.8, rather than 0.6.6.
Jakub Jelinek [Wed, 4 Feb 2015 14:26:16 +0000 (15:26 +0100)]
builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
* builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
(DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
(DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
of DEF_BUILTIN.
(BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
(BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
* tree-core.h (enum built_in_function): In between
BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
for builtins that use DEF_BUILTIN_CHKP macro.
Alexandre Oliva [Wed, 4 Feb 2015 14:23:33 +0000 (14:23 +0000)]
Avoid allocating memory when trying but failing to simplify XOR of AND.
for gcc/ChangeLog
PR debug/64817
* simplify-rtx.c (simplify_binary_operation_1): Rewrite
simplification of XOR of AND to not allocate new rtx before
committing to a simplification.