- 03 Aug, 2014 3 commits
-
-
* ipa-devirt.c (odr_type_warn_count): Add type. (possible_polymorphic_call_targets): Set it. (ipa_devirt): Use it. From-SVN: r213526
Jan Hubicka committed -
* c-common.c (check_case_value): Add location_t parameter. Use it. (c_add_case_label): Pass loc to check_case_value. * gcc.dg/case-bogus-1.c: New test. From-SVN: r213525
Marek Polacek committed -
From-SVN: r213523
GCC Administrator committed
-
- 02 Aug, 2014 9 commits
-
-
re PR c++/15339 ([DR217] Adding default arguments to function templates in redeclarations should be forbidden) 2014-08-02 Paolo Carlini <paolo.carlini@oracle.com> PR c++/15339 * testsuite/26_numerics/headers/complex/synopsis.cc: Fix. From-SVN: r213520
Paolo Carlini committed -
re PR c++/15339 ([DR217] Adding default arguments to function templates in redeclarations should be forbidden) /cp 2014-08-02 Paolo Carlini <paolo.carlini@oracle.com> PR c++/15339 * decl.c (check_redeclaration_no_default_args): New. (duplicate_decls): Use it, handle default arguments in redeclarations of function templates. /testsuite 2014-08-02 Paolo Carlini <paolo.carlini@oracle.com> PR c++/15339 * g++.dg/other/default9.C: New. * g++.dg/other/default10.C: Likewise. * g++.dg/other/default3.C: Remove xfail. From-SVN: r213519
Paolo Carlini committed -
* doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods): Document. * ipa-devirt.c: Include hash-map.h (struct polymorphic_call_target_d): Add type_warning and decl_warning. (clear_speculation): Break out of ... (get_class_context): ... here; speed up handling obviously useless speculations. (odr_type_warn_count, decl_warn_count): New structures. (final_warning_record): New structure. (final_warning_records): New static variable. (possible_polymorphic_call_targets): Cleanup handling of speculative info; do not build speculation when user do not care; record info about warnings when asked for. (add_decl_warning): New function. (type_warning_cmp): New function. (decl_warning_cmp): New function. (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types. (gate): Enable pass when warnings are requested. * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New options. * g++.dg/warn/Wsuggest-final.C: New testcase. * g++.dg/ipa/devirt-34.C: Fix. From-SVN: r213518
Jan Hubicka committed -
gcc/c-family/ * cilk.c: Use hash_map instead of pointer_map. gcc/c/ * c-typeck.c: Use hash_map instead of pointer_map. gcc/cp/ * optimize.c, semantics.c: Use hash_map instead of pointer_map. gcc/ * hash-map.h (default_hashmap_traits::mark_key_deleted): Fix cast. (hash_map::remove): New method. (hash_map::traverse): New method. * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c, ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c, tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c, tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c, tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of pointer_map. From-SVN: r213517
Trevor Saunders committed -
This allows us to replace the usage of pointer_set outside of pointer_map with a nicer interface. gcc/ada/ * gcc-interface/trans.c: Use hash_set instead of pointer_set. gcc/c-family/ * c-gimplify.c: Use hash_set instead of pointer_set. gcc/c/ * c-decl.c: Use hash_set instead of pointer_set. gcc/cp/ * class.c, cp-gimplify.c, cp-tree.h, decl.c, decl2.c, error.c, method.c, name-lookup.c, pt.c, semantics.c, tree.c: Use hash_set instead of pointer_set. gcc/fortran/ * openmp.c, trans-decl.c: Use hash_set instead of pointer_set. gcc/ * hash-set.h: new File. * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c, cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c, ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c, lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c, tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c, tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c, tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c, varpool.c: Use hash_set instead of pointer_set. gcc/lto/ * lto-partition.c, lto-partition.h: Use hash_set instead of pointer_set. From-SVN: r213516
Trevor Saunders committed -
re PR c/59855 (Support sparse-style __attribute__((designated_init)) on structures, requiring designated initializers) PR c/59855 * gcc.dg/Wdesignated-init-2.c: New test. From-SVN: r213515
Marek Polacek committed -
PR other/61895 runtime: Ignore small argv[0] file for backtrace. Reportedly in some cases Docker starts processes with argv[0] pointing to an empty file. That would cause libgo to pass that empty file to libbacktrace, which would then fail to do any backtraces. Everything should work fine if libbacktrace falls back to /proc/self/exe. This patch to libgo works around the problem by ignoring argv[0] if it is a small file, or if stat fails. This is not a perfect fix but it's an unusual problem. From-SVN: r213513
Ian Lance Taylor committed -
PR c++/60417 * init.c (build_vec_init): Set CONSTRUCTOR_IS_DIRECT_INIT on init-list for trailing elements. * typeck2.c (process_init_constructor_array): Likewise. From-SVN: r213511
Jason Merrill committed -
From-SVN: r213510
GCC Administrator committed
-
- 01 Aug, 2014 28 commits
-
-
/cp 2014-08-01 Paolo Carlini <paolo.carlini@oracle.com> DR 217 again * decl.c (duplicate_decls): Handle static member functions too. /testsuite 2014-08-01 Paolo Carlini <paolo.carlini@oracle.com> DR 217 again * g++.dg/tc1/dr217-2.C: New. From-SVN: r213505
Paolo Carlini committed -
2014-08-01 Zifei Tong <zifeitong@gmail.com> * libsupc++/atexit_thread.cc (HAVE___CXA_THREAD_ATEXIT_IMPL): Add _GLIBCXX_ prefix to macro. From-SVN: r213504
Zifei Tong committed -
From-SVN: r213503
Arnaud Charlet committed -
gcc/cp/ * cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint in error output. From-SVN: r213495
Igor Zamyatin committed -
re PR other/61963 (CilkPlus Array Notation ICE in build_array_notation_ref on malformed function arguments.) PR other/61963 gcc/cp/ * parser.c (cp_parser_array_notation): Added check for array_type. gcc/testsuite/ * c-c++-common/cilk-plus/AN/pr61963.c: New test. From-SVN: r213494
Igor Zamyatin committed -
PR middle-end/61455 gcc/c-family/ * array-notation-common.c (extract_array_notation_exprs): Handling of DECL_EXPR added. gcc/c/ * c-array-notation.c (expand_array_notations): Handling of DECL_EXPR added. gcc/cp/ * cp-array-notation.c (expand_array_notation_exprs): Handling of DECL_EXPR improved. Changed handling for INIT_EXPR. gcc/testsuite/ * c-c++-common/cilk-plus/AN/pr61455.c: New test. * c-c++-common/cilk-plus/AN/pr61455-2.c: Likewise. From-SVN: r213491
Igor Zamyatin committed -
* config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete. From-SVN: r213490
Alan Lawrence committed -
(should svn add first...) From-SVN: r213489
Jiong Wang committed -
currently, aarch64 LEGITIMIZE_ADDRESS_P hook will reject all "reg + offset" address given "offset" is beyond supported range. while this may be too strict. we should honor the "strict_p" parameter in the hook. before reload, we accept all offset if it's a frame access, because the offset may change during later register elimination. the early reject of "reg + offset" may cause extra registers created, and if that register live range is across function invoking then callee saved reg needed, thus introduce extra reg save/restore also. give a simple example as: int test15 (void) { unsigned char a[480]; initialize_array (a, 480); if (a[0] == 0x10) return 1; return 0; } .S before the patch (-O2 -fPIC) === test15: sub sp, sp, #480 mov w1, 480 stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] add x19, x29, 32 mov x0, x19 bl initialize_array ldrb w0, [x19] ldr x19, [sp, 16] ldp x29, x30, [sp], 32 cmp w0, 16 cset w0, eq add sp, sp, 480 ret .S after the patch === test15: stp x29, x30, [sp, -496]! mov w1, 480 add x29, sp, 0 add x0, x29, 16 bl initialize_array ldrb w0, [x29, 16] ldp x29, x30, [sp], 496 cmp w0, 16 cset w0, eq ret gcc/ * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset for frame access when strict_p is false. gcc/testsuite * gcc.target/aarch64/legitimize_stack_var_before_reload_1.c: New testcase. From-SVN: r213488
Jiong Wang committed -
Add a pridicate to check whether the const offset is valid. For 32-bit variant: -256 <= offset <= 252 For 64-bit variant: -512 <= offset <= 504 2014-07-29 Renlin Li <renlin.li@arm.com> 2014-07-29 Jiong Wang <jiong.wang@arm.com> gcc/ * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to aarch64_offset_7bit_signed_scaled_p, remove static and use it. * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p): Declaration. * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new predicate. * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use aarch64_mem_pair_offset. From-SVN: r213487
Jiong Wang committed -
From-SVN: r213486
Jiong Wang committed -
on aarch64, we are using load register pair post-writeback instruction in epilogue. for example, for the following instruction: ldp, x0, x1, [sp], #16 what it's doing is: x0 <- MEM(sp + 0) x1 <- MEM(sp + 8) sp < sp + 16 while there is a glitch in our loadwb_pair* pattern, the restore of the first reg should always be with offset zero. (set (match_operand:GPI 2 "register_operand" "=r") - (mem:GPI (plus:P (match_dup 1) - (match_dup 4)))) + (mem:GPI (match_dup 1))) gcc/ * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix offset. (loadwb_pair<GPI:mode>_<P:mode>): Likewise. * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise. From-SVN: r213485
Jiong Wang committed -
gcc/ * config/mips/mips.h (REGISTER_PREFIX): Define macro. From-SVN: r213484
Matthew Fortune committed -
2014-08-01 Ed Schonberg <schonberg@adacore.com> * restrict.adb (Update_Restrictions): For restrictions with a maximum parameter (e.g. number of protected entries in Ravenscar) do not compute the maximum of the violation over several objects, because the restriction is per-object. (Check_Restriction): After possible message, reset the value of of a checked max_parameter restriction to zero, to prevent cascaded errors. * sem_ch3.adb (Build_Derived_Private_Type): Use base of parent (sub)type to determine whether derived type should be on the list of private dependents of a type whose full view may become visible subsequently. From-SVN: r213483
Ed Schonberg committed -
2014-08-01 Olivier Hainque <hainque@adacore.com> * gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS, native): use $(CXX) instead of ../../xg++ to feed CXX. (CXX_LFLAGS): Remove. Now unused as the proper flags are expected to be included in the CXX variable. 2014-08-01 Pierre-Marie Derodat <derodat@adacore.com> * gcc-interface/decl.c (elaborate_expression_1): Return the new variable when debug info is needed and the expression is not constant. Tag as external only new variables that are global. (gnat_to_gnu_entity): Call it after the GNU declaration is saved. * gcc-interface/trans.c (Attribute_to_gnu): Do not cache attributes for IN array parameters when their actual subtype needs debug info. (Compilation_Unit_to_gnu): Call it to process all remaining nodes. * gcc-interface/gigi.h (process_deferred_decl_context): New. * gcc-interface/utils.c (gnat_write_global_declarations): Do not emit debug info for ignored global declarations. (struct deferred_decl_context_node, add_deferred_decl_context, add_deferred_type_context, compute_deferred_decl_context, defer_or_set_type_context, deferred_decl_context_queue, get_debug_scope, get_global_context, process_deferred_decl_context): New. (gnat_pushdecl): Re-implement the DECL_CONTEXT and TYPE_CONTEXT computation machinery to rely on the GNAT Scope attribute. 2014-08-01 Eric Botcazou <ebotcazou@adacore.com> * gcc-interface/utils2.c (build_simple_component_ref): Add guard. From-SVN: r213482
Arnaud Charlet committed -
* MAINTAINERS (Write After Approval): Add myself. From-SVN: r213481
Jiong Wang committed -
2014-08-01 Robert Dewar <dewar@adacore.com> * sem_ch8.adb, opt.ads Minor comment updates. 2014-08-01 Hristian Kirtchev <kirtchev@adacore.com> * exp_intr.adb (Expand_Unc_Deallocation): Request a renaming from the side effects removal machinery. * exp_util.adb (Duplicate_Subexpr): Add formal parameter Renaming_Req. Update the nested call to Remove_Side_Effects. (Duplicate_Subexpr_No_Checks): Add formal parameter Renaming_Req. Update the nested call to Remove_Side_Effects. (Duplicate_Subexpr_Move_Checks): Add formal parameter Renaming_Req. Update the nested call to Remove_Side_Effects. (Remove_Side_Effects): Add formal parameter Renaming_Req. Generate an object renaming declaration when the caller requests it. * exp_util.ads (Duplicate_Subexpr): Add formal parameter Renaming_Req. Update comment on usage. (Duplicate_Subexpr_No_Checks): Add formal parameter Renaming_Req. (Duplicate_Subexpr_Move_Checks): Add formal parameter Renaming_Req. From-SVN: r213480
Arnaud Charlet committed -
2014-08-01 Bob Duff <duff@adacore.com> * gnat_ugn.texi: Minor updates. 2014-08-01 Robert Dewar <dewar@adacore.com> * atree.adb: Minor reformatting. 2014-08-01 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Init_Hidden_Discriminants): If some ancestor is a private extension, get stored constraint, if any, from full view. From-SVN: r213479
Arnaud Charlet committed -
2014-08-01 Robert Dewar <dewar@adacore.com> * opt.ads (No_Elab_Code_All_Pragma): New global variable. * sem_ch10.adb (Check_No_Elab_Code_All): New procedure (Analyze_Compilation_Unit): Call Check_No_Elab_Code_All (Analyze_Subunit_Context): Call Check_No_Elab_Code_All. * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): Remove code for checking with's, now in sem_ch10.adb, set Opt.No_Elab_Code_All_Pragma. 2014-08-01 Eric Botcazou <ebotcazou@adacore.com> * sem_ch3.adb (Copy_And_Build): Copy the declaration for access types as well and adjust the subtype mark if there are no constraints. 2014-08-01 Robert Dewar <dewar@adacore.com> * sem_eval.adb (Test_In_Range): Return Unknown if error posted. From-SVN: r213478
Arnaud Charlet committed -
2014-08-01 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, einfo.ads, exp_ch4.adb: Code clean ups. From-SVN: r213477
Robert Dewar committed -
2014-08-01 Eric Botcazou <ebotcazou@adacore.com> * einfo.ads (Has_Private_Ancestor): Remove obsolete usage. * exp_ch4.adb (Expand_Composite_Equality): Add conversion of the actuals in the case of untagged record types too. * sem_ch3.adb (Build_Full_Derivation): New procedure to create the full derivation of a derived private type, extracted from... (Copy_And_Build): In the case of record types and most enumeration types, copy the original declaration. Build the full derivation according to the approach extracted from... (Build_Derived_Private_Type): ...here. Call Build_Full_Derivation to create the full derivation in all existing cases and also create it in the no-discriminants/discriminants case instead of deriving directly from the full view. (Is_Visible_Component): Remove obsolete code. * sem_aggr.adb (Resolve_Record_Aggregate): Likewise. From-SVN: r213476
Eric Botcazou committed -
From-SVN: r213474
Arnaud Charlet committed -
* fe.h (GNAT_Mode): New. * gcc-interface/decl.c (gnat_to_gnu_entity): Do not error out on reverse SSO in GNAT mode. From-SVN: r213473
Arnaud Charlet committed -
2014-08-01 Thomas Quinot <quinot@adacore.com> * freeze.adb: Minor reformatting. 2014-08-01 Thomas Quinot <quinot@adacore.com> * exp_ch3.adb (Default_Initialize_Object): Do not generate default initialization for an imported object. 2014-08-01 Olivier Hainque <hainque@adacore.com> * seh_init.c (__gnat_map_SEH): Cast argument of IsBadCodePtr to the expected FARPROC type instead of void *. * adaint.c (f2t): Expect __time64_t * as second argument, in line with other datastructures. (__gnat_file_time_name_attr): Adjust accordingly. (__gnat_check_OWNER_ACL): Declare pSD as PSECURITY_DESCRIPTOR, in line with uses. (__gnat_check_OWNER_ACL): Declare AccessMode parameter as ACCESS_MODE instead of DWORD, in line with callers and uses. (__gnat_set_executable): Add ATTRIBUTE_UNUSED on mode, unused on win32. Correct cast of "args" on call to spawnvp. (add_handle): Cast realloc calls into their destination types. (win32_wait): Remove declaration and initialization of unused variable. (__gnat_locate_exec_on_path): Cast alloca calls into their destination types. * initialize.c (append_arg, __gnat_initialize): Cast xmalloc calls into their destination types. 2014-08-01 Gary Dismukes <dismukes@adacore.com> * exp_ch4.adb (Expand_N_Type_Conversion): Expand range checks for conversions between floating-point subtypes when the target and source types are the same. 2014-08-01 Robert Dewar <dewar@adacore.com> * exp_aggr.adb: Minor reformatting. 2014-08-01 Eric Botcazou <ebotcazou@adacore.com> * sem_ch13.adb (Check_Indexing_Functions): Initialize Indexing_Found. 2014-08-01 Arnaud Charlet <charlet@adacore.com> * gnat1drv.adb (Gnat1drv): In gnatprove mode, we now write the ALI file before we call the backend (so that gnat2why can append to it). 2014-08-01 Thomas Quinot <quinot@adacore.com> * exp_pakd.adb (Expand_Bit_Packed_Element_Set, Expand_Packed_Element_Reference): Pass additional Rev_SSO parameter indicating whether the packed array type has reverse scalar storage order to the s-pack* Set/Get routines. * s-pack*.ad* (Get, Set, GetU, SetU): New formal Rev_SSO indicating reverse scalar storage order. 2014-08-01 Robert Dewar <dewar@adacore.com> * sem_ch3.adb (Check_Initialization): Set Do_Range_Check for initial component value in -gnatc or GNATprove mode. (Process_Discriminants): Same fix for default discriminant values. * sem_eval.adb (Test_In_Range): Improve accuracy of results by checking subtypes. 2014-08-01 Robert Dewar <dewar@adacore.com> * sinfo.ads: Minor comment clarification. From-SVN: r213471
Arnaud Charlet committed -
2014-08-01 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): Code reformatting. Store the generated pragma Import in the related subprogram as routine Wrap_Imported_Subprogram will need it later. * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): An item of a private type with discriminants is considered to fall in the category of unconstrained or tagged items. 2014-08-01 Arnaud charlet <charlet@adacore.com> * s-os_lib.adb (Open_Append): New functions to open a file for appending. This binds to the already existing (but not used) __gnat_open_append. * osint.ads, osint.adb (Open_File_To_Append_And_Check): New procedure to open a file for appending. * osint-c.ads, osint-c.adb (Open_Output_Library_Info): New procedure to open the ALI file for appending. From-SVN: r213470
Arnaud Charlet committed -
2014-08-01 Robert Dewar <dewar@adacore.com> * sem_ch8.adb: Minor reformatting. 2014-08-01 Yannick Moy <moy@adacore.com> * sem_ch13.adb (Insert_Pragma): Add special case for precondition pragmas from aspects, which need to be inserted in proper order. 2014-08-01 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Expand_Record_Aggregate, Init_Hidden_Discriminants): Handle properly a type extension that constrains a discriminated derived type that renames other discriminants of an ancestor. 2014-08-01 Thomas Quinot <quinot@adacore.com> * s-pack06.adb, s-pack10.adb, s-pack03.ads, s-pack12.adb, s-pack14.ads, s-pack25.adb: Fix minor inconsistencies and typos. From-SVN: r213469
Arnaud Charlet committed -
sem_ch8.adb (Analyze_Subprogram_Renaming): Alphabetize globals and move certain variables to the "local variable" section. 2014-08-01 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch8.adb (Analyze_Subprogram_Renaming): Alphabetize globals and move certain variables to the "local variable" section. Call Build_Class_Wide_Wrapper when renaming a default actual subprogram with a class-wide actual. (Build_Class_Wide_Wrapper): New routine. (Check_Class_Wide_Actual): Removed. (Find_Renamed_Entity): Code reformatting. (Has_Class_Wide_Actual): Alphabetize. Change the logic of the predicate as the renamed name may not necessarely denote the correct subprogram. From-SVN: r213467
Hristian Kirtchev committed -
2014-08-01 Eric Botcazou <ebotcazou@adacore.com> * sem_ch7.adb: Fix minor oversight in condition. 2014-08-01 Bob Duff <duff@adacore.com> * projects.texi: Minor documentation improvements. 2014-08-01 Robert Dewar <dewar@adacore.com> * aspects.ads, aspects.adb: Add aspect No_Elaboration_Code_All. * gnat_rm.texi: Document No_Elaboration_Code_All pragma and aspect. * lib-load.adb: Initialize No_Elab_Code_All field. * lib-writ.adb: Initialize No_Elab_Code_All. * lib.ads, lib.adb: New field No_Elab_Code_All. * par-prag.adb: Add dummy entry for pragma No_Elaboration_Code_All. * restrict.ads, restrict.adb: Restriction No_Elaboration_Code_All no longer exists. * sem_ch10.adb (Analyze_Context): Processing for No_Elaboration_Code_All removed. (Generate_Parent_References): Moved to Sem_Util. * sem_prag.adb: Add processing for pragma No_Elaboration_Code_All. * sem_util.ads, sem_util.adb (Get_Parent_Entity): Moved here from Sem_Ch10. * snames.ads-tmpl: Add entry for pragma No_Elaboration_Code_All. * targparm.adb: Minor comment updates Add comments on ignoring pragma No_Elaboration_Code_All. 2014-08-01 Nicolas Roche <roche@adacore.com> * adaint.c (__gnat_set_close_on_exec): Ensure that we can unset "close_on_exec" flag. 2014-08-01 Ed Schonberg <schonberg@adacore.com> * exp_ch9.adb (Build_Wrapper_Spec, Replicate_Formals): When building the parameter specs of the wrapper program for a primitive operation of a synchronized type that implements an interface, copy the null_exclusion indicator as well. 2014-08-01 Robert Dewar <dewar@adacore.com> * sem_eval.ads: Minor reformatting. From-SVN: r213466
Arnaud Charlet committed
-