jakub [Tue, 23 Jun 2009 14:32:59 +0000 (14:32 +0000)]
* var-tracking.c (unshare_variable): Force initialized to
be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
(set_variable_part): Likewise.
(struct variable_union_info): Remove pos_src field.
(vui_vec, vui_allocated): New variables.
(variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
== 1 use a simpler sorting algorithm. Compute pos field right
away, don't fill in pos_src. For dst_l == 2 avoid qsort.
Avoid quadratic comparison if !flag_var_tracking_uninit.
(variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
unshare_variable unconditionally.
(dataflow_set_different_2): Removed.
(dataflow_set_different): Don't traverse second hash table.
(compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
unconditionally to var_reg_set or var_mem_set.
(emit_notes_in_bb): Likewise.
(delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
unshare_variable.
(emit_note_insn_var_location): Don't set initialized to
VAR_INIT_STATUS_INITIALIZED early.
(vt_finalize): Free vui_vec if needed, clear vui_vec and
vui_allocated.
* rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
jakub [Tue, 23 Jun 2009 14:27:04 +0000 (14:27 +0000)]
* tree-object-size.c (addr_object_size): Instead of checking
for non-NULL TREE_CHAIN of the FIELD_DECL check that there
are no FIELD_DECLs following it.
* g++.dg/ext/builtin-object-size1.C: New test.
* g++.dg/ext/builtin-object-size2.C: New test.
paolo [Tue, 23 Jun 2009 12:36:43 +0000 (12:36 +0000)]
2009-06-23 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/40518
* include/bits/basic_string.h (basic_string<>::_Rep::
_M_set_length_and_sharable): Do not write the empty rep.
(basic_string<>::erase(iterator, iterator)): Likewise,
move out of line...
* include/bits/basic_string.tcc: ... here.
* sem_attr.adb: Add with and use clauses for Sem_Ch10.
(Check_Not_Incomplete_Type): Minor reformatting. Retrieve the root type
when dealing with class-wide types. Detect a legal shadow entity and
retrieve its non-limited view.
* sem_ch10.adb (Has_With_Clause): Move the spec and body of the
subprogram to top package level from Intall_Limited_Withed_Unit.
(Install_Limited_Withed_Unit): Remove spec and body of Has_With_Clause.
Add check which prevents the installation of a limited view if the
non-limited view is already visible through a with clause.
(Is_Legal_Shadow_Entity_In_Body): New routine. Detect a residual, but
legal shadow entity which may occur in subprogram formals of anonymous
access type.
* sem_ch10.ads (Is_Legal_Shadow_Entity_In_Body): New routine.
* sem_ch3.adb (Access_Definition): Remove the propagation of flag
From_With_Type from the designated type to the generated anonymous
access type. Remove associated comment.
* sem_res.adb Add with and use clauses for Sem_Ch10.
(Full_Designated_Type): Detect a legal shadow entity and retrieve its
non-limited view. Since the shadow entity may replace a regular
incomplete type, return the available full view.
charlet [Tue, 23 Jun 2009 10:09:38 +0000 (10:09 +0000)]
2009-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.adb (Remove_Limited_With_Clause): Clean up code that handles
incomplete type declarations. Previous code was potentially quadratic
in the number of visible declarations in any package appearing in a
limited_with_clause.
2009-06-23 Robert Dewar <dewar@adacore.com>
* prj-conf.ads, prj-part.adb, prj-proc.adb, prj-proc.ads, sem_ch8.adb,
xref_lib.adb: Minor reformatting
rguenth [Tue, 23 Jun 2009 10:03:41 +0000 (10:03 +0000)]
2009-06-23 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (struct variable_info): Add is_global_var
member.
(var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
var_callused, callused_tree, var_storedanything, storedanything_tree,
var_integer, integer_tree): Remove global variables.
(new_var_info): Do not pass new id, append the new var to the
global variable vector.
(do_ds_constraint): Use is_global_var member of the variable-info.
(new_scalar_tmp_constraint_exp): Adjust.
(create_function_info_for): Likewise.
(create_variable_info_for): Likewise.
(find_what_var_points_to): Remove dead code.
(init_base_vars): Simplify.
(compute_points_to_sets): Adjust.
charlet [Tue, 23 Jun 2009 10:01:39 +0000 (10:01 +0000)]
2009-06-23 Vincent Celier <celier@adacore.com>
* prj-attr.adb: Attribute names Initial_Required_Switches and
Final_Required_Switches changed to Leading_Required_Switches and
Trailing_Required_Switches.
* prj-nmsc.adb (Process_Compiler): Attribute names
Initial_Required_Switches and Final_Required_Switches changed to
Leading_Required_Switches and Trailing_Required_Switches.
* prj.ads (Language_Config): Component Initial_Required_Switches and
Final_Required_Switches changed to Leading_Required_Switches and
Trailing_Required_Switches.
* snames.ads-tmpl: Remove standard names Initial_Required_Switches and
Final_Required_Switches; add standard names Leading_Required_Switches
and Trailing_Required_Switches.
* sem_ch10.adb (Analyze_With_Clause): If a subprogram instance in the
context of the current unit has an inline pragma, the instance is not
rewritten as the declaration of the package wrapper. Handle both
possibilities when retrieving the visible subprogram that renames the
instantiation itself.
charlet [Tue, 23 Jun 2009 09:49:38 +0000 (09:49 +0000)]
2009-06-23 Javier Miranda <miranda@adacore.com>
* exp_ch4.adb (Displace_Allocator_Pointer, Expand_N_Allocator): Handle
designated types referencing entities from the limited view.
2009-06-23 Matthew Gingell <gingell@adacore.com>
* a-stzhas.ads, a-szfzha.ads: Fix typo.
* Makefile.rtl: Ada.Strings.Wide_Wide_Fixed.Wide_Wide_Hash depends on
Ada.Strings.Wide_Wide_Hash. So we need to include a-stzhas in
the list of RTS files.
2009-06-23 Thomas Quinot <quinot@adacore.com>
* ali.adb: Minor reformatting
2009-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb: Improve error message.
2009-06-23 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb: Minor reformating
* prj-conf.adb, prj-conf.ads: Remove use of Osint.Fail everywhere
(Do_Autoconf): accepts an empty Normalized_Hostname
(Process_Project_And_Apply_Config): New subprogram
(Parse_Project_And_Apply_Config): On_Load_Config now applies to the
project tree rather than the project view.
* prj-part.adb, prj.ads (Project_Qualifier): New possible value
Configuration.
charlet [Tue, 23 Jun 2009 09:25:20 +0000 (09:25 +0000)]
2009-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Derive_Subprogram): If the inherited subprogram is a
primitive equality include it with its source name even if the
operation is currently invisible, to make sure that the corresponding
slot in the dispatch table is reserved for the internal equality
subsequently generated during expansion.
paolo [Mon, 22 Jun 2009 16:49:57 +0000 (16:49 +0000)]
2009-06-22 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/util/testsuite_common_types.h (bitwise_operators,
bitwise_assignment_operators): Initialize a and b.
(struct has_bitwise_operators): Do not call the latter.
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Adjust
dg-error line numbers.
* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Likewise.
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
ktietz [Mon, 22 Jun 2009 14:04:19 +0000 (14:04 +0000)]
ChangeLog for gcc
2009-06-22 Kai Tietz <kai.tietz@onevision.com>
* config.gcc: Add for x86 and x64 mingw targets t-fprules-soft
and t-softfp support.
* config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Enable TFmode.
(LIBGCC2_TF_CEXT): Define.
(TF_SIZE): Define.
ChangeLog for libgcc
2009-06-22 Kai Tietz <kai.tietz@onevision.com>
* config.host: Add soft emulation for x86 and x64 mingw targets.
* config/i386/64/_divtc3.c: Disable for mingw targets usage of
.symver assembly symbol.
* config/i386/64/_multc3.c: Likewise.
* config/i386/64/_powitf2.c: Likewise.
* config/i386/64/eqtf2.c: Likewise.
* config/i386/64/getf2.c: Likewise.
* config/i386/64/letf2.c: Likewise.
* config/i386/64/letf2.c: Likewise.
* config/i386/64/sfp-machine.h (_FP_W_TYPE): Define it
for x64 mingw target as unsigned long long.
(_FP_WS_TYPE): Define it for x64 mingw target as signed long
long.
(_FP_I_TYPE): Define it for x64 mingw target as long long.
charlet [Mon, 22 Jun 2009 13:15:08 +0000 (13:15 +0000)]
2009-06-22 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Analyze_Object_Declaration, Freeze_Entity): Move to the
freezing point the check on the use of abstract types in object
declarations. Done to allow the declaration of C++ imported variables
or constants whose type corresponds with an imported C++ classes for
which the constructor is not imported.
2009-06-22 Thomas Quinot <quinot@adacore.com>
* sem_ch6.adb: Minor reformatting
2009-06-22 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Build_Initialization_Call): If a discriminated record
component is constrained with an expression rather than with a
discriminant of the enclosing type, use that expression when building
the call to default-initialize the component, when the call is part of
an aggregate with box initialization.
charlet [Mon, 22 Jun 2009 13:09:00 +0000 (13:09 +0000)]
2009-06-22 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Check_Overriding_Indicator): Clean up code, make warning
unconditional rather than a style check, because a formal name out of
order is suspicious.
2009-06-22 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Locate_Directory): Indicate the project name when
creating a directory automatically.
2009-06-22 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch3.adb (Create_Constrained_Components): For a subtype of an
untagged derived type, add a hidden component for every constrained
discriminant of the parent type to keep record layout consistent.
charlet [Mon, 22 Jun 2009 12:24:57 +0000 (12:24 +0000)]
2009-06-22 Thomas Quinot <quinot@adacore.com>
* exp_ch3.adb: Minor code reorganization (avoid an unnecessary tree
copy).
2009-06-22 Ed Falis <falis@adacore.com>
* sysdep.c: remove include for nfsLib.h and an NFS specific error
message for VxWorks 653 vThreads: not supported by the OS.
* gsocket.h: disable sockets for VxWorks 653 vThreads.
2009-06-22 Robert Dewar <dewar@adacore.com>
* sem_ch6.adb: Add ??? comment for bad use of Style_Check
2009-06-22 Matthew Gingell <gingell@adacore.com>
Arnaud Charlet <charlet@adacore.com>
* a-stzhas.adb, a-stwiha.adb, impunit.adb, a-swbwha.adb, a-shcain.adb,
s-htable.adb, a-szuzha.adb, a-stunha.adb, a-stboha.adb, a-strhas.adb,
g-spitbo.adb, s-strhas.adb, a-szbzha.adb, s-strhas.ads, Makefile.rtl,
a-swuwha.adb: New unit System.String_Hash.
Refactor redundant cut and pasted hash functions with instances of a
new generic hash function.
Implement a new string hashing algorithm which appears in testing to
be move effective than to previous approach.
* gcc-interface/Makefile.in: Reindent correctly vms targets.
Fix setting of TOOLS_TARGET_PAIRS for bare board platforms.
Disable socket support for Vxworks 653 vThreads.
Improve handling of signals on darwin.
(GNATMAKE_OBJS): Update dependencies.
charlet [Mon, 22 Jun 2009 09:21:53 +0000 (09:21 +0000)]
2009-06-22 Robert Dewar <dewar@adacore.com>
* sinput.adb, sinput.ads (Expr_First_Char, Expr_Last_Char): Replaced
by Sloc_Range.
* freeze.adb: Minor comment updates
* s-valrea.adb (Bad_Based_Value): New procedure
(Scan_Real): Raise exceptions with messages
2009-06-22 Matthew Gingell <gingell@adacore.com>
* adaint.h: Complete previous change.
2009-06-22 Thomas Quinot <quinot@adacore.com>
* exp_ch7.ads, exp_ch3.adb: Minor reformatting
2009-06-22 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Check_Overriding_Indicator): When style checks are
enabled, emit warning when a non-controlling argument of the overriding
operation appears out of place vis-a-vis of the formal of the
overridden operation.
rearnsha [Sun, 21 Jun 2009 20:48:15 +0000 (20:48 +0000)]
* arm.c (thumb1_output_casesi): New function.
* arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
optimizing for size or PIC.
(CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
* arm.md (UNSPEC_THUMB1_CASESI): New constant.
(casesi): Handle Thumb-1 when optimizing for size or PIC.
(thumb1_casesi_internal_pic): New expand rule.
(thumb1_casesi_dispatch): New pattern.
* aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
thumb-1 mode.
* coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
in the text seciton when PIC or optimizing for size.
* elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
* lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
preservation properties of code.
(__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
(__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
(__gnu_thumb1_case_si): New function.
* t-arm (LIB1ASMSRC): Define here.
(LIB1ASMFUNCS): Add some common functions.
* t-arm-elf (LIB1ASMSRC): Delete.
(LIB1ASMFUNCS): Append to existing set.
* t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
* t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
* t-symbian (LIB1ASMFUNCS): Likewise.
* t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
* t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
uros [Sun, 21 Jun 2009 19:10:30 +0000 (19:10 +0000)]
* gcc.c-torture/unsorted/dump-noaddr.x (dump_compare): Use --dumpbase
to put dump files in a subdirectory.
* gcc/testsuite/lib/gcc-dg.exp (cleanup-saved-temps): Also remove
".o" temporary files.
janus [Sun, 21 Jun 2009 19:05:35 +0000 (19:05 +0000)]
2009-06-21 Janus Weil <janus@gcc.gnu.org>
PR fortran/39850
* interface.c (gfc_compare_interfaces): Take care of implicit typing
when checking the function attribute. Plus another bugfix.
(compare_parameter): Set attr.function and attr.subroutine according
to the usage of a procedure as actual argument.
uros [Sun, 21 Jun 2009 17:38:47 +0000 (17:38 +0000)]
* gcc.dg/tree-ssa/fre-vce-1.c: Cleanup "fre" tree dump.
* gcc.dg/vect/vect-shift-2.c: Cleanup "vect" tree dump.
* gcc.dg/vect/vect.exp (VECT_SLP_CFLAGS): Initialize with original
DEFAULT_VECTFLAGS.
charlet [Sun, 21 Jun 2009 13:19:57 +0000 (13:19 +0000)]
2009-06-21 Thomas Quinot <quinot@adacore.com>
* exp_ch3.adb, exp_prag.adb, exp_util.adb, exp_util.ads, freeze.adb,
sem_ch13.adb, sem_elab.adb (Exp_Prag.Expand_Pragma_Import_Or_Interface):
Factor out code to new subprogram...
(Exp_Util.Find_Init_Call): New shared routine to find the init proc call
for a default initialized variable.
(Freeze.Check_Address_Clause): Do not reset Has_Delayed_Freeze on an
entity that has an associated freeze node.
(Sem_Ch13.Analyze_Attribute_Definition_Clause, case Address):
If there is an init call for the object, defer it to the object freeze
point.
(Check_Elab_Call.Find_Init_Call): Rename to Check_Init_Call, to avoid
name clash with new subprogram introduced in Exp_Util.
* sem_disp.adb (Check_Direct_Call): New routine. Dispatching calls
where the controlling formal is of private class-wide type whose
completion is a synchronized type can be converted into direct calls.
2009-06-21 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (Check_Files): When all sources of the project are to be
indicated to gnatcheck, gnatpp or gnatmetric, always specify the list
of sources using -files=, so that the distinction can be made by the
tool of a call with no source (to display the usage) from a call with
a project file that contains no source.
2009-06-21 Jerome Lambourg <lambourg@adacore.com>
* exp_ch3.adb (Build_Array_Init_Proc): Do not build the init proc in
case of VM convention arrays.
jakub [Sun, 21 Jun 2009 09:38:34 +0000 (09:38 +0000)]
* var-tracking.c (struct shared_hash_def, shared_hash): New types.
(dataflow_set): Change vars type from htab_t to shared_hash.
(shared_hash_pool, empty_shared_hash): New variables.
(vars_clear): Removed.
(shared_hash_shared, shared_hash_htab, shared_hash_copy,
shared_hash_find_slot_unshare, shared_hash_find_slot,
shared_hash_find_slot_noinsert, shared_hash_find): New
static inlines.
(shared_hash_unshare, shared_hash_destroy): New functions.
(unshare_variable): Unshare set->vars if shared, use
shared_hash_htab.
(vars_copy): Use htab_traverse_noresize instead of htab_traverse.
(get_init_value, find_src_set_src, dump_dataflow_set,
clobber_variable_part, emit_notes_for_differences): Use
shared_hash_htab.
(dataflow_set_init): Remove second argument, set vars to
empty_shared_hash instead of creating a new htab.
(dataflow_set_clear): Call shared_hash_destroy and set vars
to empty_shared_hash instead of calling vars_clear.
(dataflow_set_copy): Don't call vars_copy, instead just share
the src htab with dst.
(variable_union): Use shared_hash_*, use initially NO_INSERT
lookup if set->vars is shared. Don't keep slot cleared before
calling unshare_variable. Unshare set->vars if needed.
Even ->refcount == 1 vars must be unshared if set->vars is shared
and var needs to be modified.
(variable_canonicalize): New function.
(dataflow_set_union): If dst->vars is empty, just share src->vars
with dst->vars and traverse with variable_canonicalize to canonicalize
and unshare what is needed.
(dataflow_set_different): If old_set and new_set use the same shared
htab, they aren't different. If number of htab elements is different,
htabs are different. Use shared_hash_*.
(dataflow_set_destroy): Call shared_hash_destroy instead of
htab_delete.
(compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
second argument to dataflow_set_init.
(vt_initialize): Likewise. Initialize shared_hash_pool and
empty_shared_hash, move bb in/out initialization afterwards.
Use variable_htab_free instead of NULL as changed_variables del hook.
(variable_was_changed): Change type of second argument to pointer to
dataflow_set. When inserting var into changed_variables, bump
refcount. Unshare set->vars if set is shared htab and slot needs to
be cleared.
(set_variable_part): Use shared_hash_*, use initially NO_INSERT
lookup if set->vars is shared. Unshare set->vars if needed.
Even ->refcount == 1 vars must be unshared if set->vars is shared
and var needs to be modified. Adjust variable_was_changed caller.
(delete_variable_part): Use shared_hash_*. Even ->refcount == 1
vars must be unshared if set->vars is shared and var needs to be
modified. Adjust variable_was_changed caller.
(emit_note_insn_var_location): Don't pool_free var.
(emit_notes_for_differences_1): Initialize empty_var->refcount to 0
instead of 1.
(vt_finalize): Call htab_delete on empty_shared_hash->htab and
free_alloc_pool on shared_hash_pool.
irar [Sun, 21 Jun 2009 07:25:21 +0000 (07:25 +0000)]
PR testsuite/40475
* gcc.dg/vect/vect-nest-cycle-1.c: Fail to vectorize on targets
without misalignment support.
* gcc.dg/vect/vect-nest-cycle-2.c: Likewise.
paolo [Sat, 20 Jun 2009 22:27:04 +0000 (22:27 +0000)]
2009-06-20 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/40497
* include/bits/stl_iterator_base_funcs.h (next, prev): Fix the
signature per the current C++1x draft (N2857).
* testsuite/24_iterators/operations/40497.cc: Add.
rguenth [Sat, 20 Jun 2009 12:03:16 +0000 (12:03 +0000)]
2009-06-20 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (find_func_aliases): For memset use
a constraint from NULL if we memset to zero.
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
we explicitly handle that do not read from memory.
(call_may_clobber_ref_p_1): Properly handle builtins that may
set errno.
charlet [Sat, 20 Jun 2009 10:32:58 +0000 (10:32 +0000)]
2009-06-20 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Build_Record_Init_Proc): When copying initial
expressions (possibly from a parent type) indicate that the scope of
the new itypes is the initialization procedure being built.
2009-06-20 Robert Dewar <dewar@adacore.com>
* a-nudira.adb (Fits_In_32_Bits): New name (inverted sense) for
Needs_64, and now computed without anomolies for some dynamic types.
* sem_ch6.adb (Analyze_Subprogram_Declaration): Mark a subprogram as a
private primitive if it is a function with a controlling result that is
a type extension with progenitors.
* exp_ch9.adb (Build_Wrapper_Spec, Build_Wrapper_Body): Handle properly
a primitive operation of a synchronized tagged type that has a
controlling result.
rguenth [Sat, 20 Jun 2009 09:31:23 +0000 (09:31 +0000)]
2009-06-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/40495
* tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
(new_scalar_tmp_constraint_exp): New function.
(process_constraint): Do not create temporary decls.
(process_all_all_constraints): Likewise.
(handle_const_call): Likewise.
(create_function_info_for): Do not set decl.
ebotcazou [Fri, 19 Jun 2009 21:33:21 +0000 (21:33 +0000)]
* tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
<tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
Propagate the TREE_READONLY flag without overwriting it.
(substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
Propagate the TREE_READONLY flag onto the result.
(process_call_operands): Move around. Use correct constant value.
ian [Fri, 19 Jun 2009 20:55:27 +0000 (20:55 +0000)]
./:
* tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
to GIMPLE_ERROR_MARK.
* c-typeck.c (build_conditional_expr): Add op1_original_type and
op2_original_type parameters. Warn about using different enum
types.
* c-parser.c (c_parser_conditional_expression): Pass original
types to build_conditional_expr.
* c-tree.h (build_conditional_expr): Update declaration.
testsuite/:
* gcc.dg/Wcxx-compat-18.c: New testcase.
rguenth [Fri, 19 Jun 2009 16:47:35 +0000 (16:47 +0000)]
2009-06-19 Richard Guenther <rguenther@suse.de>
* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
ADDR_EXPR pointers.
(ptr_derefs_may_alias_p): Likewise.
(ptr_deref_may_alias_ref_p_1): New function.
(ptr_deref_may_alias_ref_p): Likewise.
(ref_maybe_used_by_call_p_1): Handle builtins that are not
covered by looking at the ESCAPED solution.
(call_may_clobber_ref_p_1): Likewise.
* tree-ssa-structalias.c (get_constraint_for_ptr_offset):
Handle NULL_TREE offset. Do not produce redundant constraints.
(process_all_all_constraints): New helper function.
(do_structure_copy): Use it.
(handle_lhs_call): Likewise.
(find_func_aliases): Handle some builtins with pointer arguments
and/or return values explicitly.
* gcc.c-torture/execute/20090618-1.c: New testcase.