gcc.git
7 years agore PR bootstrap/79069 (Bootstrap failure on s390x-linux while building libgo)
Jakub Jelinek [Thu, 12 Jan 2017 21:29:43 +0000 (22:29 +0100)]
re PR bootstrap/79069 (Bootstrap failure on s390x-linux while building libgo)

PR bootstrap/79069
* cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
be removed due to side-effects, don't remove following barrier nor
turn the successor edge into fallthru edge.

From-SVN: r244383

7 years agore PR testsuite/79051 (FAIL: gcc.dg/attr-alloc_size-4.c (test for warnings, line...
Martin Sebor [Thu, 12 Jan 2017 18:50:26 +0000 (18:50 +0000)]
re PR testsuite/79051 (FAIL: gcc.dg/attr-alloc_size-4.c  (test for warnings, line 140))

PR testsuite/79051

gcc/testsuite/ChangeLog:
* gcc.dg/attr-alloc_size-4.c: Work harder to avoid false negatives
due to bug 79054.

From-SVN: r244382

7 years agoReference PR testsuite/79051, not 791051.
Martin Sebor [Thu, 12 Jan 2017 18:41:33 +0000 (11:41 -0700)]
Reference PR testsuite/79051, not 791051.

From-SVN: r244381

7 years agoPR testsuite/791051 - FAIL: gcc.dg/attr-alloc_size-4.c (test for warnings, line 140)
Martin Sebor [Thu, 12 Jan 2017 18:35:19 +0000 (18:35 +0000)]
PR testsuite/791051 - FAIL: gcc.dg/attr-alloc_size-4.c (test for warnings, line 140)

gcc/testsuite/ChangeLog:
* gcc.dg/attr-alloc_size-4.c: Avoid false negatives due to bug 79054.

From-SVN: r244380

7 years ago* gcc.dg/pr78768.c: Require LTO.
David Edelsohn [Thu, 12 Jan 2017 18:27:04 +0000 (18:27 +0000)]
* gcc.dg/pr78768.c: Require LTO.

From-SVN: r244379

7 years agoPR c/79074 - -Waddress difference between C and C++ with (T*)0
Martin Sebor [Thu, 12 Jan 2017 18:07:51 +0000 (18:07 +0000)]
PR c/79074 - -Waddress difference between C and C++ with (T*)0

gcc/testsuite/ChangeLog:
* c-c++-common/Waddress-2.c: Remove a test to avoid a C failure
due to the referenced bug.

From-SVN: r244378

7 years agoPR testsuite/79073 - FAIL: gcc.dg/pr78973.c (test for warnings, line 12) in ILP32
Martin Sebor [Thu, 12 Jan 2017 17:43:16 +0000 (17:43 +0000)]
PR testsuite/79073 - FAIL: gcc.dg/pr78973.c (test for warnings, line 12) in ILP32

gcc/testsuite/ChangeLog:
* gcc.dg/pr78973.c: Xfail on ILP32 targets.

From-SVN: r244377

7 years agobuiltin_target.c (check_features): Check all supported __builtin_cpu_supports options.
Uros Bizjak [Thu, 12 Jan 2017 17:30:03 +0000 (18:30 +0100)]
builtin_target.c (check_features): Check all supported __builtin_cpu_supports options.

* gcc.target/i386/builtin_target.c (check_features): Check all
supported __builtin_cpu_supports options.

From-SVN: r244375

7 years agoPR77528 partially revert r244278 and define default constructors
Jonathan Wakely [Thu, 12 Jan 2017 17:28:36 +0000 (17:28 +0000)]
PR77528 partially revert r244278 and define default constructors

PR libstdc++/77528
* include/bits/stl_queue.h (queue, priority_queue): Remove default
member-initializers and define default constructors as templates with
constraints.
* include/bits/stl_stack.h (stack): Likewise.
* testsuite/23_containers/priority_queue/requirements/constructible.cc:
New.
* testsuite/23_containers/priority_queue/requirements/
explicit_instantiation/1.cc: Test more instantiations.
* testsuite/23_containers/priority_queue/requirements/
explicit_instantiation/1_c++98.cc: Likewise.
* testsuite/23_containers/queue/requirements/constructible.cc: New.
* testsuite/23_containers/stack/requirements/constructible.cc: New.

From-SVN: r244374

7 years agoAdd Cortex-A15 tuning to gcc.dg/uninit-pred-8_a.c
Kyrylo Tkachov [Thu, 12 Jan 2017 17:02:38 +0000 (17:02 +0000)]
Add Cortex-A15 tuning to gcc.dg/uninit-pred-8_a.c

PR tree-optimization/78319
* gcc.dg/uninit-pred-8_a.c: Add -mtune=cortex-a15 for arm.
Remove xfail.

From-SVN: r244372

7 years ago* config/i386/i386.c: Fix whitespace.
Uros Bizjak [Thu, 12 Jan 2017 16:12:22 +0000 (17:12 +0100)]
* config/i386/i386.c: Fix whitespace.

From-SVN: r244371

7 years ago* config/i386/i386.c (PTA_SGX): Define to 1 << 63.
Uros Bizjak [Thu, 12 Jan 2017 16:10:14 +0000 (17:10 +0100)]
* config/i386/i386.c (PTA_SGX): Define to 1 << 63.

From-SVN: r244370

7 years ago[multiple changes]
Arnaud Charlet [Thu, 12 Jan 2017 16:01:16 +0000 (17:01 +0100)]
[multiple changes]

2017-01-12  Tristan Gingold  <gingold@adacore.com>

* s-mmap.ads, s-mmap.adb, s-mmosin-unix.ads, s-mmosin-unix.adb,
s-mmauni-long.ads, s-mmosin-mingw.ads, s-mmosin-mingw.adb: New files.

2017-01-12  Yannick Moy  <moy@adacore.com>

* errout.adb, errout.ads (Initialize): Factor common treatment
in Reset_Warnings.
(Reset_Warnings): New procedure to reset counts related to warnings.
(Record_Compilation_Errors): New variable to store the presence of an
error, used in gnat2why to allow changing the Warning_Mode.
(Compilation_Errors): Use new variable Record_Compilation_Errors to
store the presence of an error.

2017-01-12  Javier Miranda  <miranda@adacore.com>

* sem_ch13.adb (Analyze_Aspect_Specifications):
For Interrupt_Handler and Attach_ Handler aspects, decorate the
internally built reference to the protected procedure as coming
from sources and force its analysis.

2017-01-12  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Build_Derived_Type): For a scalar derived type,
inherit predicates if any from the first_subtype of the parent,
not from the anonymous parent type.
* sem_eval.adb (Is_Static_Subtype): A type that inherits a dynamic
predicate is not a static subtype.

2017-01-12  Gary Dismukes  <dismukes@adacore.com>

* freeze.adb (Check_Suspicious_Convention): New procedure
performing a warning check on discriminated record types with
convention C or C++. Factored out of procedure Freeze_Record_Type,
and changed to only apply to base types (to avoid spurious
warnings on subtypes). Minor improvement of warning messages
to refer to discriminated rather than variant record types.
(Freeze_Record_Type): Remove code for performing a suspicious
convention check.
(Freeze_Entity): Only call Freeze_Record_Type
on types that aren't declared within any enclosing generic units
(rather than just excluding the type when the innermost scope
is generic). Call Check_Suspicious_Convention whether or not
the type is declared within a generic unit.
* sem_ch8.adb (In_Generic_Scope): Move this function to Sem_Util.
* sem_util.ads, sem_util.adb (In_Generic_Scope): New function (moved
from Sem_Ch8).

2017-01-12  Tristan Gingold  <gingold@adacore.com>

* sysdep.c, adaint.c, rtinit.c, ming32.h:
(__gnat_current_codepage): Renamed from CurrentCodePage
(__gnat_current_ccs_encoding): Renamed from CurrentCCSEncoding

2017-01-12  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Fully_Conformant_Expressions): Handle properly
quantified expressions, following AI12-050: the loop parameters
of two quantified expressions are conformant if they have the
same identifier.

From-SVN: r244369

7 years agore PR target/79044 (ICE in insn_is_swappable_p, at config/rs6000/rs6000.c:41191)
Bill Schmidt [Thu, 12 Jan 2017 16:01:13 +0000 (16:01 +0000)]
re PR target/79044 (ICE in insn_is_swappable_p, at config/rs6000/rs6000.c:41191)

[gcc]

2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/79044
* config/rs6000/rs6000.c (insn_is_swappable_p): Mark
element-reversing loads and stores as not swappable.

[gcc/testsuite]

2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/79044
* gcc.target/powerpc/swaps-p8-26.c: New.

From-SVN: r244368

7 years ago* gcc-interface/Makefile.in: Clean up VxWorks targets.
Arnaud Charlet [Thu, 12 Jan 2017 15:57:45 +0000 (15:57 +0000)]
* gcc-interface/Makefile.in: Clean up VxWorks targets.

From-SVN: r244367

7 years ago[multiple changes]
Arnaud Charlet [Thu, 12 Jan 2017 14:42:42 +0000 (15:42 +0100)]
[multiple changes]

2017-01-12  Ed Schonberg  <schonberg@adacore.com>

* sem_attr.adb (Analyze_Attribute_Reference, case Loop_Entry):
Hnadle properly the attribute reference when it appears as part
of an expression in another loop aspect.

2017-01-12  Ed Schonberg  <schonberg@adacore.com>

* exp_ch3.adb (Check_Predicated_Discriminant): New procedure,
subsidiary of Build_Initialization_Call, to complete generation
of predicate checks on discriminants whose (sub)types have
predicates, and to add checks on variants that do not have an
others clause.
* sem_util.adb (Gather_Components): A missing Others alternative is
not an error when the type of the discriminant is a static predicate
(and coverage has been checked when analyzing the case statement). A
runtime check is generated to verify that a given discriminant
satisfies the predicate (RM 3.8.1. (21.1/2)).

2017-01-12  Yannick Moy  <moy@adacore.com>

* gnat1drv.adb (Adjust_Global_Switches): Only
perform checking of exception mechanism when generating code.

2017-01-12  Justin Squirek  <squirek@adacore.com>

* exp_ch7.adb (Add_Type_Invariants, Process_Array_Component):
Remove handling of access component with invariant.
(Build_Invariant_Procedure_Declaration): Remove return on class
wide type.
* freeze.adb (Freeze_Array_Type, Freeze_Record_Type): Remove
conditional exception for component or array so Has_Own_Invariants
flag is not falsly set.
* sem_ch3.adb (Make_Class_Wide_Type): Initialize copy of class
wide type to have no invariant flags.

From-SVN: r244366

7 years ago[multiple changes]
Arnaud Charlet [Thu, 12 Jan 2017 14:40:14 +0000 (15:40 +0100)]
[multiple changes]

2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch9.adb, sem_prag.adb, s-tassta.adb, sem_util.adb, s-tarest.adb,
sem_ch13.adb: Minor reformatting.

2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_aggr.adb (Build_Record_Aggr_Code): Guard against a missing
adjustment primitive when the ancestor type was not properly frozen.
(Gen_Assign): Guard against a missing initialization
primitive when the component type was not properly frozen.
(Initialize_Array_Component): Guard against a missing adjustment
primitive when the component type was not properly frozen.
(Initialize_Record_Component): Guard against a missing adjustment
primitive when the component type was not properly frozen.
(Process_Transient_Component_Completion): The transient object may
not be finalized when its associated type was not properly frozen.
* exp_ch3.adb (Build_Assignment): Guard against a missing
adjustment primitive when the component type was not properly frozen.
(Build_Initialization_Call): Guard against a missing
initialization primitive when the associated type was not properly
frozen.
(Expand_N_Object_Declaration): Guard against a missing
adjustment primitive when the base type was not properly frozen.
(Predefined_Primitive_Bodies): Create an empty Deep_Adjust
body when there is no adjustment primitive available. Create an
empty Deep_Finalize body when there is no finalization primitive
available.
* exp_ch4.adb (Apply_Accessibility_Check): Guard against a
missing finalization primitive when the designated type was
not properly frozen.
(Expand_N_Allocator): Guard against a missing initialization primitive
when the designated type was not properly frozen.
* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add the adjustment call
only when the corresponding adjustment primitive is available.
* exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Generate the
adjustment/finalization statements only when there is an available
primitive to carry out the action.
(Build_Initialize_Statements): Generate the initialization/finalization
statements only when there is an available primitive to carry out the
action.
(Make_Adjust_Call): Do not generate a call when the underlying
type is not present due to a possible missing full view.
(Make_Final_Call): Do not generate a call when the underlying
type is not present due to a possible missing full view.
(Make_Finalize_Address_Stmts): Generate an empty body when the
designated type lacks a finalization primitive.
(Make_Init_Call): Do not generate a call when the underlying type is
not present due to a possible missing full view.
(Process_Component_For_Adjust): Add the adjustment call only when the
corresponding adjustment primitive is available.
(Process_Component_For_Finalize): Add the finalization call only when
the corresponding finalization primitive is available.
(Process_Object_Declaration): Use a null statement to emulate a
missing call to the finalization primitive of the object type.
* exp_ch7.ads (Make_Adjust_Call): Update the comment on usage.
(Make_Final_Call): Update the comment on usage.
(Make_Init_Call): Update the comment on usage.
* exp_util.adb (Build_Transient_Object_Statements): Code reformatting.

2017-01-12  Arnaud Charlet  <charlet@adacore.com>

* einfo.ads: Update documentation of Address_Taken.
* sem_attr.adb (Analyze_Access_Attribute, Resolve_Attribute
[Access_Attribute]): Only consider 'Access/'Unchecked_Access
for subprograms when setting Address_Taken flag.

2017-01-12  Patrick Bernardi  <bernardi@adacore.com>

* sem_ch10.adb (Analyze_With_Clause): Removed code that turned
Configurable_Run_Time_Mode off when analysing with'ed predefined
libraries.

From-SVN: r244365

7 years agoPR66284 remove std::function special case for reference_wrapper
Jonathan Wakely [Thu, 12 Jan 2017 14:28:38 +0000 (14:28 +0000)]
PR66284 remove std::function special case for reference_wrapper

PR libstdc++/66284
* doc/xml/manual/intro.xml: Document LWG 2781 change.
* doc/html/*: Regenerate.
* include/std/functional (_Function_base::_Ref_manager): Remove.
(_Function_handler): Remove partial specializations for
reference_wrapper.
(function::target): Remove special case for const qualification.
* testsuite/20_util/function/6.cc: Adjust tests for target type.
* testsuite/20_util/function/7.cc: Likewise.
* testsuite/20_util/function/8.cc: Likewise.

From-SVN: r244364

7 years agosem_prag.adb: Minor reformatting.
Gary Dismukes [Thu, 12 Jan 2017 13:59:45 +0000 (13:59 +0000)]
sem_prag.adb: Minor reformatting.

2017-01-12  Gary Dismukes  <dismukes@adacore.com>

* sem_prag.adb: Minor reformatting.
* sem_util.adb (Unique_Entity): fix result for
bodies of entry families.

From-SVN: r244363

7 years agosem_prag.adb (Analyze_Pragma): Add appropriate calls to Resolve_Suppressible in the...
Justin Squirek [Thu, 12 Jan 2017 13:55:59 +0000 (13:55 +0000)]
sem_prag.adb (Analyze_Pragma): Add appropriate calls to Resolve_Suppressible in the pragma Assertion_Policy case.

2017-01-12  Justin Squirek  <squirek@adacore.com>

* sem_prag.adb (Analyze_Pragma): Add appropriate calls to
Resolve_Suppressible in the pragma Assertion_Policy case.
(Resolve_Suppressible): Created this function to factor out
common code used to resolve Suppress to either Ignore or Check
* snames.ads-tmpl: Add name for Suppressible.

From-SVN: r244362

7 years agocombine.c (try_combine): Don't ignore result of overlap checking loop.
Nathan Sidwell [Thu, 12 Jan 2017 13:54:43 +0000 (13:54 +0000)]
combine.c (try_combine): Don't ignore result of overlap checking loop.

* combine.c (try_combine): Don't ignore result of overlap checking
loop.  Combine overlap & asm check into single loop.

Co-Authored-By: Nicolai Stange <nicstange@gmail.com>
From-SVN: r244361

7 years agoexp_ch9.adb, [...]: Minor reformatting.
Gary Dismukes [Thu, 12 Jan 2017 13:54:16 +0000 (13:54 +0000)]
exp_ch9.adb, [...]: Minor reformatting.

2017-01-12  Gary Dismukes  <dismukes@adacore.com>

* exp_ch9.adb, s-secsta.adb, snames.ads-tmpl, exp_ch3.adb: Minor
reformatting.
* debug.adb: Minor comment fixes.

From-SVN: r244360

7 years agoChange percentage to 25
Arnaud Charlet [Thu, 12 Jan 2017 13:50:33 +0000 (14:50 +0100)]
Change percentage to 25

From-SVN: r244359

7 years ago[multiple changes]
Arnaud Charlet [Thu, 12 Jan 2017 13:49:46 +0000 (14:49 +0100)]
[multiple changes]

2017-01-12  Arnaud Charlet  <charlet@adacore.com>

* sem_util.adb (Unique_Entity): For concurrent
bodies that are defined with stubs and complete a declaration
of a single concurrent object return the entity of an implicit
concurrent type, not the entity of the anonymous concurrent
object.
* debug.adb: -gnatd.J is no longer used.
* make.adb (Globalize): Removed, no longer used.
* sem_ch9.adb: minor typo in comment for entry index

2017-01-12  Patrick Bernardi  <bernardi@adacore.com>

* aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
* exp_ch3.adb (Build_Init_Statements): As part of initialising
the value record of a task, set its _Secondary_Stack_Size field
if present.
* exp_ch9.adb (Expand_N_Task_Type_Declaration): Create
a _Secondary_Stack_Size field in the value record of
the task if a Secondary_Stack_Size rep item is present.
(Make_Task_Create_Call): Include secondary stack size
parameter. If No_Secondary_Stack restriction is in place, passes
stack size of 0.
* par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma
Secondary_Stack_Size.
* s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New
function to define the overhead of the secondary stack.
* s-tarest.adb (Create_Restricted_Task,
Create_Restricted_Task_Sequential): Functions now include
Secondary_Stack_Size parameter to pass to Initialize_ATCB.
* s-tarest.adb (Create_Restricted_Task,
Create_Restricted_Task_Sequential): Calls to Initialize_ATCB now
include Secondary_Stack_Size parameter.
(Task_Wrapper): Secondary stack now allocated to the size specified by
the Secondary_Stack_Size parameter in the task's ATCB.
* s-taskin.adb, s-taskin.adb (Common_ATCB, Initialize_ATCB): New
Secondary_Stack_Size component.
* s-tassta.adb, s-tassta.ads (Create_Restricted_Task,
Create_Restricted_Task_Sequential): Function now include
Secondary_Stack_Size parameter.
(Task_Wrapper): Secondary stack now allocated to the size
specified by the Secondary_Stack_Size parameter in the task's
ATCB.
* s-tproft.adb (Register_Foreign_Thread): Amended Initialize_ATCB call
to include Secondary_Stack_Size parameter.
* sem_ch13.adb (Analyze_Aspect_Specification): Add support for
Secondary_Stack_Size aspect, turning the aspect into its corresponding
internal attribute.
(Analyze_Attribute_Definition): Process Secondary_Stack_Size attribute.
* snames.adb-tmpl, snames.ads-tmpl: Added names
Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size,
Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size.

From-SVN: r244358

7 years agoMinor reformatting.
Arnaud Charlet [Thu, 12 Jan 2017 13:30:56 +0000 (14:30 +0100)]
Minor reformatting.

From-SVN: r244357

7 years ago[multiple changes]
Arnaud Charlet [Thu, 12 Jan 2017 13:30:20 +0000 (14:30 +0100)]
[multiple changes]

2017-01-12  Yannick Moy  <moy@adacore.com>

* exp_spark.adb (Expand_SPARK_Potential_Renaming): Fix sloc of copied
subtree.

2017-01-12  Justin Squirek  <squirek@adacore.com>

* exp_attr.adb (Expand_N_Attribute_Reference):
Fix Finalization_Size case by properly resolving the type after
rewritting the node.

2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_util.adb (Build_DIC_Procedure_Body): Semi-insert the body into
the tree.
(Build_DIC_Procedure_Declaration): Semi-insert the body into the tree.
* binde.adb, exp_ch5.adb, sem_type.adb, sem.ads, sem_res.adb,
exp_sel.ads: Minor reformatting.

2017-01-12  Justin Squirek  <squirek@adacore.com>

* exp_ch6.adb (Expand_Call): Add guard to prevent
invariant checks from being created for internally generated
subprograms.

2017-01-12  Bob Duff  <duff@adacore.com>

* lib-writ.ads: Remove incorrect comment.

2017-01-12  Javier Miranda  <miranda@adacore.com>

* debug.adb (-gnatd.K): Enable generation of contract-only
procedures in CodePeer mode.
* contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
New subprogram.
(Analyze_Contracts): Generate contract-only procedures if -gnatdK is
set.
* scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): New
subprogram.
(Get_Contract_Only_Missing_Body_Name): New subprogram.
(Get_Contract_Only_Body): New subprogram.
(Set_Contract_Only_Body): New subprogram.
(Is_Contract_Only_Body): New subprogram.
(Set_Is_Contract_Only_Body): New subprogram.
(SCIL_Nodes): Replace table by hash-table.

From-SVN: r244356

7 years ago[multiple changes]
Arnaud Charlet [Thu, 12 Jan 2017 13:26:34 +0000 (14:26 +0100)]
[multiple changes]

2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb: Minor reformatting.
* spark_xrefs.ads: minor cleanup of comments for SPARK xrefs

2017-01-12  Bob Duff  <duff@adacore.com>

* binde.adb (Forced): New reason for a dependence.
(Force_Elab_Order): Implementation of the new switch.
* binde.ads: Minor comment fixes.
* bindusg.adb: Add -f switch. Apparently, there was an -f switch
long ago that is no longer supported; removed comment about that.
* opt.ads (Force_Elab_Order_File): Name of file specified for
-f switch.
* switch-b.adb: Parse -f switch.

From-SVN: r244355

7 years agoexp_ch6.adb (Check_View_Conversion): Created this function to properly chain calls...
Justin Squirek [Thu, 12 Jan 2017 13:24:16 +0000 (13:24 +0000)]
exp_ch6.adb (Check_View_Conversion): Created this function to properly chain calls to check type invariants that may...

2017-01-12  Justin Squirek  <squirek@adacore.com>

* exp_ch6.adb (Check_View_Conversion): Created this function
to properly chain calls to check type invariants that may be
present in a subprogram call after the subprogram.
(Expand_Call): Add a conditional to identify when a view conversion
needs to be checked.
* nlists.adb, nlists.ads (Prepend_New): New routine.
(Prepend_New_To): New routine.

From-SVN: r244354

7 years ago[multiple changes]
Arnaud Charlet [Thu, 12 Jan 2017 13:21:21 +0000 (14:21 +0100)]
[multiple changes]

2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

* sinfo.ads: Minor reformatting.

2017-01-12  Gary Dismukes  <dismukes@adacore.com>

* exp_util.adb, exp_util.ads, einfo.ads: Minor typo fixes and
reformatting.

2017-01-12  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb (Make_Build_In_Place_Call_In_Anonymous_Context): Add new
variable Definite. Create a local object and pass its 'Access to the
BIP function when the result type is either definite or it does not
require any finalization or secondary stack management.

From-SVN: r244353

7 years agocontracts.adb, [...] (Pragma_Name): Change name to Pragma_Name_Unmapped.
Bob Duff [Thu, 12 Jan 2017 13:18:47 +0000 (13:18 +0000)]
contracts.adb, [...] (Pragma_Name): Change name to Pragma_Name_Unmapped.

2017-01-12  Bob Duff  <duff@adacore.com>

* contracts.adb, einfo.adb, errout.adb, exp_attr.adb,
exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_prag.adb, freeze.adb,
frontend.adb, ghost.adb, inline.adb, lib-writ.adb, lib-xref.adb,
par.adb, par-ch10.adb, par-ch2.adb, par-prag.adb, par_sco.adb,
sem_attr.adb, sem_aux.adb, sem_ch10.adb, sem_ch12.adb,
sem_ch13.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb,
sem_prag.adb, sem_res.adb, sem_util.adb, sem_util.ads,
sem_warn.adb, sinfo.adb, sinfo.ads, sprint.adb (Pragma_Name):
Change name to Pragma_Name_Unmapped.
(Pragma_Name_Mapped): Change name to Pragma_Name.
This is because the "mapped" version should be the usual case.

From-SVN: r244352

7 years agotree-pretty-print.c (dump_generic_node): Provide -gimple variant for MEM_REF.
Richard Biener [Thu, 12 Jan 2017 08:33:09 +0000 (08:33 +0000)]
tree-pretty-print.c (dump_generic_node): Provide -gimple variant for MEM_REF.

2017-01-12  Richard Biener  <rguenther@suse.de>

* tree-pretty-print.c (dump_generic_node): Provide -gimple
variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.

c/
* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
__MEM.

* gcc.dg/gimplefe-21.c: New testcase.

From-SVN: r244350

7 years agotree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION and TS_TARGET_OPTION...
Richard Biener [Thu, 12 Jan 2017 08:13:43 +0000 (08:13 +0000)]
tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION and TS_TARGET_OPTION directly derive from TS_BASE.

2017-01-12  Richard Biener  <rguenther@suse.de>

* tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
and TS_TARGET_OPTION directly derive from TS_BASE.
* tree-core.h (tree_optimization_option): Derive from tree_base.
(tree_target_option): Likewise.

From-SVN: r244349

7 years agozero_bits_compound-2.c: Fix test for aarch64.
Michael Collison [Thu, 12 Jan 2017 08:12:02 +0000 (08:12 +0000)]
zero_bits_compound-2.c: Fix test for aarch64.

2016-11-30  Michael Collison  <michael.collison@arm.com>

* gcc.dg/zero_bits_compound-2.c: Fix test for aarch64.

From-SVN: r244348

7 years agoDaily bump.
GCC Administrator [Thu, 12 Jan 2017 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244346

7 years agoi386.c (memory_address_length): Increase len only when rip_relative_addr_p returns...
Uros Bizjak [Wed, 11 Jan 2017 21:53:45 +0000 (22:53 +0100)]
i386.c (memory_address_length): Increase len only when rip_relative_addr_p returns false.

* config/i386/i386.c (memory_address_length): Increase len
only when rip_relative_addr_p returns false.

From-SVN: r244341

7 years agoPR c++/78337 - ICE on invalid with generic lambda
Jason Merrill [Wed, 11 Jan 2017 21:43:42 +0000 (16:43 -0500)]
PR c++/78337 - ICE on invalid with generic lambda

* semantics.c (process_outer_var_ref): Check if containing_function
is null.  Move inform call under complain test.

From-SVN: r244340

7 years agoi386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
Julia Koval [Wed, 11 Jan 2017 21:41:13 +0000 (22:41 +0100)]
i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.

* common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
(OPTION_MASK_ISA_SGX_SET): New.
(ix86_handle_option): Handle OPT_msgx.
* config.gcc: Added sgxintrin.h.
* config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
* config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
* config/i386/i386.c (ix86_target_string): Add -msgx.
(PTA_SGX): New.
(ix86_option_override_internal): Handle new options.
(ix86_valid_target_attribute_inner_p): Add sgx.
* config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
* config/i386/i386.opt: Add msgx.
* config/i386/sgxintrin.h: New file.
* config/i386/x86intrin.h: Add sgxintrin.h.

testsuite/ChangeLog:

* gcc.target/i386/sgx.c New test.
* gcc.target/i386/sse-12.c: Add -msgx.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* g++.dg/other/i386-2.C: Ditto.
* g++.dg/other/i386-3.C: Ditto.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r244339

7 years agoFix up a typo.
Jakub Jelinek [Wed, 11 Jan 2017 21:39:25 +0000 (22:39 +0100)]
Fix up a typo.

From-SVN: r244338

7 years agoPR c++/24511 - [DR 470] explicit instantiation/extern template unsats
Martin Sebor [Wed, 11 Jan 2017 21:02:46 +0000 (21:02 +0000)]
PR c++/24511 - [DR 470] explicit instantiation/extern template unsats

PR c++/24511 - [DR 470] explicit instantiation/extern template unsats
// on symbols defined later

gcc/testsuite/ChangeLog:
* g++.dg/template/explicit9.C: New test.

From-SVN: r244337

7 years agore PR c++/77812 (incorrectly rejects valid C++ code that uses enum in template instan...
Nathan Sidwell [Wed, 11 Jan 2017 20:37:16 +0000 (20:37 +0000)]
re PR c++/77812 (incorrectly rejects valid C++ code that uses enum in template instantiation)

cp/
PR c++/77812
* name-lookup.c (set_namespace_binding_1): An overload of 1 decl
is a new overload.

testsuite/
PR c++/77812
* g++.dg/pr77812.C: New.

From-SVN: r244335

7 years ago* name-lookup.c (push_overloaded_decl_1): Refactor OVERLOAD creation.
Nathan Sidwell [Wed, 11 Jan 2017 20:11:56 +0000 (20:11 +0000)]
* name-lookup.c (push_overloaded_decl_1): Refactor OVERLOAD creation.

From-SVN: r244334

7 years agore PR c++/71537 (GCC rejects consetxpr boolean conversions and comparisons on the...
Jakub Jelinek [Wed, 11 Jan 2017 20:10:36 +0000 (21:10 +0100)]
re PR c++/71537 (GCC rejects consetxpr boolean conversions and comparisons on the result of pointer arithmetic.)

PR c++/71537
* fold-const.c (maybe_nonzero_address): Return 1 for function
local objects.
(tree_single_nonzero_warnv_p): Don't handle function local objects
here.

* g++.dg/cpp1y/constexpr-71537.C: New test.

From-SVN: r244333

7 years agoflatten-3.c: Add quotation marks around dg-options argument.
Jakub Jelinek [Wed, 11 Jan 2017 19:48:56 +0000 (20:48 +0100)]
flatten-3.c: Add quotation marks around dg-options argument.

* gcc.dg/tree-ssa/flatten-3.c: Add quotation marks around dg-options
argument.

From-SVN: r244332

7 years agoPR c/47931 - missing -Waddress warning for comparison with NULL
Martin Sebor [Wed, 11 Jan 2017 18:33:13 +0000 (18:33 +0000)]
PR c/47931 - missing -Waddress warning for comparison with NULL

gcc/testsuite/ChangeLog:
* c-c++-common/Waddress-2.c: New test.

From-SVN: r244331

7 years agocompiler: add containing Bfunction to conditional_expression
Than McIntosh [Wed, 11 Jan 2017 18:15:16 +0000 (18:15 +0000)]
compiler: add containing Bfunction to conditional_expression

    Add containing Bfunction to Backend::conditional_expression
    method signature, since the back end might need to create a
    temporary when generating IR for this construct.

    Reviewed-on: https://go-review.googlesource.com/35056

From-SVN: r244330

7 years agore PR c++/78341 (ICE on invalid C++ code on x86_64-linux-gnu (internal compiler...
Jakub Jelinek [Wed, 11 Jan 2017 18:09:58 +0000 (19:09 +0100)]
re PR c++/78341 (ICE on invalid C++ code on x86_64-linux-gnu  (internal compiler error: in cp_parser_std_attribute_spec, at cp/parser.c:24597))

PR c++/78341
* parser.c (cp_parser_std_attribute_spec): Remove over-eager
assertion.  Formatting fix.

* g++.dg/cpp0x/pr78341.C: New test.

From-SVN: r244329

7 years agore PR c++/72813 (atomic header cannot be compiled into translation unit with -fkeep...
Jakub Jelinek [Wed, 11 Jan 2017 18:08:57 +0000 (19:08 +0100)]
re PR c++/72813 (atomic header cannot be compiled into translation unit with -fkeep-inline-functions)

PR c++/72813
* gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
of c-header.

* c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing
PCH file.

* decl2.c (c_parse_final_cleanups): Set flag_syntax_only to 1 after
writing PCH file.

From-SVN: r244328

7 years agocompiler: mark generated struct/array types as incomparable
Ian Lance Taylor [Wed, 11 Jan 2017 17:41:49 +0000 (17:41 +0000)]
compiler: mark generated struct/array types as incomparable

    The recent change to generate type functions for more types with
    identity comparisons caused us to generate some unnecessary functions,
    and even caused a compiler crash on Solaris due to phase ordering.
    Avoid this by marking all generated and uncompared struct and array
    types as incomparable, so that we don't try to generate type functions
    for them.

    Reviewed-on: https://go-review.googlesource.com/35110

From-SVN: r244327

7 years agoPR c/78768 - -Walloca-larger-than and -Wformat-length warnings disabled by -flto
Martin Sebor [Wed, 11 Jan 2017 17:28:52 +0000 (17:28 +0000)]
PR c/78768 - -Walloca-larger-than and -Wformat-length warnings disabled by -flto

gcc/ChangeLog:
* c.opt (-Walloca-larger-than, -Wformat-length, -Wformat-truncation):
Also enable for LTO.

gcc/testsuite/ChangeLog:
PR c/78768
* gcc.dg/pr78768.c: New test.

From-SVN: r244326

7 years agoOffer suggestions for unrecognized sanitizer options (PR driver/78877)
David Malcolm [Wed, 11 Jan 2017 17:25:40 +0000 (17:25 +0000)]
Offer suggestions for unrecognized sanitizer options (PR driver/78877)

gcc/ChangeLog:
PR driver/78877
* opts.c: Include "spellcheck.h"
(struct string_fragment): New struct.
(struct edit_distance_traits<const string_fragment &>): New
struct.
(get_closest_sanitizer_option): New function.
(parse_sanitizer_options): Offer suggestions for unrecognized arguments.

gcc/testsuite/ChangeLog:
PR driver/78877
* gcc.dg/spellcheck-options-14.c: New test case.
* gcc.dg/spellcheck-options-15.c: New test case.
* gcc.dg/spellcheck-options-16.c: New test case.
* gcc.dg/spellcheck-options-17.c: New test case.

From-SVN: r244325

7 years agodwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease by 12.
Jakub Jelinek [Wed, 11 Jan 2017 16:46:15 +0000 (17:46 +0100)]
dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease by 12.

* dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
by 12.
(DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
(DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
(calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
for initial die_offset if dwarf_split_debug_info.
(output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
fields.
(output_skeleton_debug_sections): Formatting fix.  Use
DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.

From-SVN: r244323

7 years agoMy previous change to the Cortex-A53 scheduler resulted in a 13% regression on a...
Wilco Dijkstra [Wed, 11 Jan 2017 16:38:42 +0000 (16:38 +0000)]
My previous change to the Cortex-A53 scheduler resulted in a 13% regression on a proprietary benchmark.

My previous change to the Cortex-A53 scheduler resulted in a 13% regression on a
proprietary benchmark.  This turned out to be due to non-optimal scheduling of int
to float conversions.  This patch separates int to FP transfers from int to float
conversions based on experiments to determine the best schedule.  As a result of
these tweaks the performance of the benchmark improves by 20%.

    gcc/
* config/arm/cortex-a53.md: Add bypasses for
cortex_a53_r2f_cvt.
(cortex_a53_r2f): Only use for transfers.
(cortex_a53_f2r): Likewise.
(cortex_a53_r2f_cvt): Add reservation for conversions.
(cortex_a53_f2r_cvt): Likewise.

From-SVN: r244322

7 years agoarm_neon.h: Add __artificial__ and gnu_inline to all inlined functions, change static...
Tamar Christina [Wed, 11 Jan 2017 16:30:28 +0000 (16:30 +0000)]
arm_neon.h: Add __artificial__ and gnu_inline to all inlined functions, change static to extern.

2017-01-09  Tamar Christina  <tamar.christina@arm.com>

* config/arm/arm_neon.h: Add __artificial__ and gnu_inline
          to all inlined functions, change static to extern.

From-SVN: r244321

7 years ago[ARM] PR target/78253 Call weak function instead of strong when called through pointer.
Christophe Lyon [Wed, 11 Jan 2017 16:13:14 +0000 (16:13 +0000)]
[ARM] PR target/78253 Call weak function instead of strong when called through pointer.

2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>

PR target/78253
* config/arm/arm.c (legitimize_pic_address): Handle reference to
weak symbol.
(arm_assemble_integer): Likewise.

From-SVN: r244320

7 years agoPR78134 fix return types of heterogeneous lookup functions
Jonathan Wakely [Wed, 11 Jan 2017 14:44:15 +0000 (14:44 +0000)]
PR78134 fix return types of heterogeneous lookup functions

PR libstdc++/78134
* include/bits/stl_map.h (map::lower_bound, map::upper_bound)
(map::equal_range): Fix return type of heterogeneous overloads.
* include/bits/stl_multimap.h (multimap::lower_bound)
(multimap::upper_bound, multimap::equal_range): Likewise.
* include/bits/stl_multiset.h (multiset::lower_bound)
(multiset::upper_bound, multiset::equal_range): Likewise.
* include/bits/stl_set.h (set::lower_bound, set::upper_bound)
(set::equal_range): Likewise.
* testsuite/23_containers/map/operations/2.cc
* testsuite/23_containers/multimap/operations/2.cc
* testsuite/23_containers/multiset/operations/2.cc
* testsuite/23_containers/set/operations/2.cc

From-SVN: r244318

7 years agoPR78273 fix count to work with partitioning function
Jonathan Wakely [Wed, 11 Jan 2017 14:44:04 +0000 (14:44 +0000)]
PR78273 fix count to work with partitioning function

PR libstdc++/78273
* include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
the heterogeneous comparison can only find one match.
* include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
* testsuite/23_containers/map/operations/2.cc: Test count works with
comparison function that just partitions rather than sorting.
* testsuite/23_containers/set/operations/2.cc: Likewise.

From-SVN: r244317

7 years ago[arm] Replace command-line option .def files with single definition file
Richard Earnshaw [Wed, 11 Jan 2017 14:39:00 +0000 (14:39 +0000)]
[arm] Replace command-line option .def files with single definition file

The files arm-cores.def, arm-fpus.def and arm-arches.def are parsed and
used in several places and the format is slightly awkward to maintain
as they must be parsable in C and by certain scripts.  Furthermore,
changes to the content that affects every entry is particularly awkward for
dealing with merges.

This patch replaces all three files with a single file that specifies all
the command-line related definitions in a new format that allows for better
checking for consistency as well as (hopefully) easier to merge changes.

The awk script used to parse it is relatively complicated, but should be
pretty portable.  It works by parsing in all the data and then operating
one of a number of possible sub-commands to generate the desired output.

The new method picked up one error.  The CPU descriptions referred to an
architecture ARMv5tej which was not supported by -march.  This has been
fixed by adding the relevant entry to the architecture list.

gcc:
* config.gcc: Use new awk script to check CPU, FPU and architecture
parameters for --with-... options.
* config/arm/parsecpu.awk: New file
* config/arm/arm-cpus.in: New file.
* config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
files.
* config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
files.
* config/arm/t-arm: Update dependency rules.
* common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
of processing .def files.
* config/arm/genopt.sh: Deleted.
* config/arm/gentune.sh: Deleted.
* config/arm/arm-cores.def: Deleted.
* config/arm/arm-arches.def: Deleted.
* config/arm/arm-fpus.def: Deleted.
* config/arm/arm-tune.md: Regenerated.
* config/arm/arm-tables.opt: Regenerated.
* config/arm/arm-cpu.h: New generated file.
* config/arm/arm-cpu-data.h: New generated file.
* config/arm/arm-cpu-cdata.h: New generated file.

Contrib:
* gcc_update: Adjust touch list.

From-SVN: r244316

7 years agore PR lto/79042 (LTO doesn't propagate node->dynamically_initialized bit for varpool...
Maxim Ostapenko [Wed, 11 Jan 2017 12:57:42 +0000 (12:57 +0000)]
re PR lto/79042 (LTO doesn't propagate node->dynamically_initialized bit for varpool nodes.)

PR lto/79042
* lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
bit.
(input_varpool_node): Unpack dynamically_initialized bit.

From-SVN: r244314

7 years agoFix flatten-3.c test-case.
Martin Liska [Wed, 11 Jan 2017 12:17:27 +0000 (13:17 +0100)]
Fix flatten-3.c test-case.

2017-01-11  Martin Liska  <mliska@suse.cz>

* gcc.dg/tree-ssa/flatten-3.c: Add -fno-ipa-icf to dg-options.

From-SVN: r244313

7 years agodecomp4.C (test): Use 2 identifier decomposition instead of just 1 for the decomposit...
Jakub Jelinek [Wed, 11 Jan 2017 11:47:30 +0000 (12:47 +0100)]
decomp4.C (test): Use 2 identifier decomposition instead of just 1 for the decomposition from...

* g++.dg/cpp1z/decomp4.C (test): Use 2 identifier decomposition
instead of just 1 for the decomposition from struct C.

From-SVN: r244312

7 years agore PR rtl-optimization/79032 (unaligned memory access generated with LRA and optimiza...
Eric Botcazou [Wed, 11 Jan 2017 11:27:43 +0000 (11:27 +0000)]
re PR rtl-optimization/79032 (unaligned memory access generated with LRA and optimization)

PR rtl-optimization/79032
* lra-constraints.c (simplify_operand_subreg): In the MEM case, test
the alignment of the adjusted memory reference against that of MODE,
instead of the alignment of the original memory reference.

From-SVN: r244311

7 years agore PR bootstrap/79052 (bootstrap-ubsan failures due to warnings)
Richard Biener [Wed, 11 Jan 2017 11:26:59 +0000 (11:26 +0000)]
re PR bootstrap/79052 (bootstrap-ubsan failures due to warnings)

2017-01-11  Richard Biener  <rguenther@suse.de>

PR bootstrap/79052
* gimple-parser.c (c_parser_gimple_switch_stmt): Add missing
returns on parse errors.

From-SVN: r244310

7 years agoReduce the size of variant, it doesn't need an index of type size_t internally.
Ville Voutilainen [Wed, 11 Jan 2017 11:23:43 +0000 (13:23 +0200)]
Reduce the size of variant, it doesn't need an index of type size_t internally.

Reduce the size of variant, it doesn't need an index of
type size_t internally.
* include/std/variant (parse_numbers.h): New include.
(__select_index): New.
(_Variant_storage<false, _Types...>::_M_reset_impl): Use
_index_type for comparison with variant_npos.
(_Variant_storage<false, _Types...>::__index_type): New.
(_Variant_storage<false, _Types...>::_M_index): Change the
type from size_t to __index_type.
(_Variant_storage<true, _Types...>::__index_type): New.
(_Variant_storage<true, _Types...>::_M_index): Change the
type from size_t to __index_type.
(_Variant_base::_M_valid): Use _Storage::__index_type
for comparison with variant_npos.
(variant::index): Use _Base::_Storage::__index_type
for comparison with variant_npos.
* testsuite/20_util/variant/index_type.cc: New.

From-SVN: r244309

7 years ago[hsa] Fix hsa function cloning test
Martin Jambor [Wed, 11 Jan 2017 10:35:31 +0000 (11:35 +0100)]
[hsa] Fix hsa function cloning test

2017-01-11  Martin Jambor  <mjambor@suse.cz>

* hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
test.
* ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
decorated functions.

From-SVN: r244308

7 years agotree-vrp.c (evrp_dom_walker::before_dom_children): Also set range/nonnull info for...
Richard Biener [Wed, 11 Jan 2017 09:06:29 +0000 (09:06 +0000)]
tree-vrp.c (evrp_dom_walker::before_dom_children): Also set range/nonnull info for PHI results.

2017-01-11  Richard Biener  <rguenther@suse.de>

* tree-vrp.c (evrp_dom_walker::before_dom_children): Also
set range/nonnull info for PHI results.  Do not set it on
stmts marked for removal.

* gcc.dg/tree-ssa/pr61743-1.c: Adjust.

From-SVN: r244305

7 years agore PR middle-end/50199 (wrong code with -flto -fno-merge-constants)
Jakub Jelinek [Wed, 11 Jan 2017 08:40:59 +0000 (09:40 +0100)]
re PR middle-end/50199 (wrong code with -flto -fno-merge-constants)

PR middle-end/50199
* lto-lang.c (lto_post_options): Force flag_merge_constants = 1
if it was 0.

* gcc.dg/lto/pr50199_0.c: New test.

From-SVN: r244304

7 years agoDaily bump.
GCC Administrator [Wed, 11 Jan 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244302

7 years agoexpr.c (store_field): In the bitfield case...
Eric Botcazou [Tue, 10 Jan 2017 23:05:13 +0000 (23:05 +0000)]
expr.c (store_field): In the bitfield case...

* expr.c (store_field): In the bitfield case, fetch the return value
from the registers before applying a single big-endian adjustment.
Always do a final load for a BLKmode value not larger than a word.

From-SVN: r244299

7 years agoPR testsuite/78960 - FAIL: gcc.dg/tree-ssa/builtin-sprintf.c execution test
Martin Sebor [Tue, 10 Jan 2017 22:45:52 +0000 (22:45 +0000)]
PR testsuite/78960 - FAIL: gcc.dg/tree-ssa/builtin-sprintf.c execution test

PR testsuite/78960 - FAIL: gcc.dg/tree-ssa/builtin-sprintf.c execution test
PR testsuite/78959 - FAIL: gcc.c-torture/execute/pr78622.c
PR testsuite/78133 - Commit r241489 adds printf specifiers not supported by newlib

gcc/testsuite/ChangeLog:
PR testsuite/78960
PR testsuite/78959
PR testsuite/78133
* gcc.dg/tree-ssa/builtin-sprintf.c: Require C99 runtime.
* gcc.dg/tree-ssa/pr78622.c: Ditto.

From-SVN: r244298

7 years agoPR middle-end/78138 - missing warnings on buffer overflow with non-constant source...
Martin Sebor [Tue, 10 Jan 2017 22:35:22 +0000 (22:35 +0000)]
PR middle-end/78138 - missing warnings on buffer overflow with non-constant source length

gcc/testsuite/ChangeLog:

PR middle-end/78138
* gcc.dg/pr78138.c: New test.

From-SVN: r244297

7 years agore PR c++/77598 (constexpr compilation failure on reference type casting)
Jason Merrill [Tue, 10 Jan 2017 22:33:09 +0000 (17:33 -0500)]
re PR c++/77598 (constexpr compilation failure on reference type casting)

PR c++/77598

* g++.dg/cpp0x/constexpr-ref11.C: New.

From-SVN: r244296

7 years agoPR middle-end/78245 - missing -Wformat-length on an overflow of a dynamically allocat...
Martin Sebor [Tue, 10 Jan 2017 21:56:44 +0000 (14:56 -0700)]
PR middle-end/78245 - missing -Wformat-length on an overflow of a dynamically allocated buffer

gcc/testsuite/ChangeLog:

PR middle-end/78245
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Add tests.

gcc/ChangeLog:

PR middle-end/78245
* gimple-ssa-sprintf.c (get_destination_size): Call
{init,fini}object_sizes.
* tree-object-size.c (addr_object_size): Adjust.
(pass_through_call): Adjust.
(pass_object_sizes::execute): Adjust.
* tree-object-size.h (fini_object_sizes): Declare.

From-SVN: r244294

7 years agoPR middle-end/78245 - missing -Wformat-length on an overflow of a dynamically allocat...
Martin Sebor [Tue, 10 Jan 2017 21:54:15 +0000 (14:54 -0700)]
PR middle-end/78245 - missing -Wformat-length on an overflow of a dynamically allocated buffer

gcc/testsuite/ChangeLog:

PR middle-end/78245
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Add tests.

gcc/ChangeLog:

PR middle-end/78245
* gimple-ssa-sprintf.c (get_destination_size): Call
{init,fini}object_sizes.
* tree-object-size.c (addr_object_size): Adjust.
(pass_through_call): Adjust.
(pass_object_sizes::execute): Adjust.
* tree-object-size.h (fini_object_sizes): Declare.

From-SVN: r244293

7 years agoFix issues with unrepresentable column numbers (PR c++/77949)
David Malcolm [Tue, 10 Jan 2017 21:54:09 +0000 (21:54 +0000)]
Fix issues with unrepresentable column numbers (PR c++/77949)

PR c++/77949 identifies an ICE when the C++ frontend attempts to emit a
fix-it hint inserting a missing semicolon at column 4097 of a source file.

This column value exceeds LINE_MAP_MAX_COLUMN_NUMBER and hence isn't
representable using a location_t.

Attempting to do so leads to these problems, which this patch fixes:

(a) when encountering a column number > LINE_MAP_MAX_COLUMN_NUMBER we
create a new linemap with m_column_and_range_bits == 0, but
linemap_position_for_column doesn't check for this, and hence can emit
a bogus location_t value that's calculated relative to the previous
linemap start, but which will be decoded relative to the new linemap,
leading to very large incorrect line values.

(b) when encountering a column number that can't be represented, and
for which the linemap was pre-existing, the code would hit this assertion:
  if (linemap_assert_fails (column < (1u << map->m_column_and_range_bits)))
around a bail-out condition.  The patch replaces this assertion with a
simple conditional, to stop the ICE when this occurs, and fixes the
bit count (effective column bits, vs column+range bits)

(c) the C++ frontend wasn't checking for failure of
linemap_position_for_loc_and_offset when considering emitting the fix-it
hint.  The patch adds a conditional, so that no fix-it hint is emitted
if the location is bogus.

gcc/cp/ChangeLog:
PR c++/77949
* parser.c (cp_parser_class_specifier_1): Only suggest inserting
a missing semicolon if we have a valid insertion location for
the fix-it hint.

gcc/ChangeLog:
PR c++/77949
* input.c (selftest::test_accessing_ordinary_linemaps): Verify
that we correctly handle column numbers greater than
LINE_MAP_MAX_COLUMN_NUMBER.

gcc/testsuite/ChangeLog:
PR c++/77949
* g++.dg/diagnostic/pr77949.C: New test case.

libcpp/ChangeLog:
PR c++/77949
* line-map.c (linemap_position_for_column): When calling
linemap_start_line, detect if a new linemap was created with
0 column bits, and bail out early if this is the case.
(linemap_position_for_loc_and_offset): Replace overzealous
linemap_assert_fails with a simple conditional; use correct
bit count.

From-SVN: r244292

7 years agoruntime: copy more scheduler code from Go 1.7 runtime
Ian Lance Taylor [Tue, 10 Jan 2017 21:09:00 +0000 (21:09 +0000)]
runtime: copy more scheduler code from Go 1.7 runtime

    I looked at a diff of proc.go between Go 1.7 and gccgo, and copied
    over all the easy stuff.

    Reviewed-on: https://go-review.googlesource.com/35090

From-SVN: r244291

7 years agoPR tree-optimization/78775 - [7 Regression] ICE in maybe_warn_alloc_args_overflow
Martin Sebor [Tue, 10 Jan 2017 21:02:07 +0000 (21:02 +0000)]
PR tree-optimization/78775 - [7 Regression] ICE in maybe_warn_alloc_args_overflow

gcc/ChangeLog:

PR tree-optimization/78775
* builtins.c (get_size_range): Move...
* calls.c: ...to here.
(alloc_max_size): Accept zero argument.
(operand_signed_p): Remove.
(maybe_warn_alloc_args_overflow): Call get_size_range.
* calls.h (get_size_range): Declare.

gcc/testsuite/ChangeLog:

PR tree-optimization/78775
* gcc.dg/attr-alloc_size-4.c: Add test cases.
* gcc.dg/attr-alloc_size-10.c: New test.
* gcc.dg/attr-alloc_size-11.c: New test.
* gcc.dg/builtin-stringop-chk-7.c: New test.
* gcc.dg/pr78775.c: New test.
* gcc.dg/pr78973-2.c: New test.
* gcc.dg/pr78973.c: New test.

From-SVN: r244290

7 years agodriver-msp430.c (msp430_mcu_data): Sync with data from TI's devices.csv file as of...
Joe Seymour [Tue, 10 Jan 2017 20:59:20 +0000 (20:59 +0000)]
driver-msp430.c (msp430_mcu_data): Sync with data from TI's devices.csv file as of September 2016.

2017-01-10  Joe Seymour  <joe.s@somniumtech.com>

* config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
from TI's devices.csv file as of September 2016.
* config/msp430/msp430.c (msp430_mcu_data): Likewise.

From-SVN: r244289

7 years ago* da.po: Update.
Joseph Myers [Tue, 10 Jan 2017 20:59:06 +0000 (20:59 +0000)]
* da.po: Update.

From-SVN: r244288

7 years agore PR middle-end/77766 (wrong code at -O2 and -O3 in 64-bit mode on x86_64-linux...
Jeff Law [Tue, 10 Jan 2017 20:55:59 +0000 (13:55 -0700)]
re PR middle-end/77766 (wrong code at -O2 and -O3 in 64-bit mode on x86_64-linux-gnu (executable hangs))

PR tree-optimization/77766
PR tree-optimization/78856
* gcc.c-torture/execute/pr77766.c: New test.

From-SVN: r244287

7 years agoextend.texi: Tweak formatting to fix overfull hbox warnings.
Sandra Loosemore [Tue, 10 Jan 2017 20:37:00 +0000 (15:37 -0500)]
extend.texi: Tweak formatting to fix overfull hbox warnings.

2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
* doc/invoke.texi: Likewise.
* doc/md.texi: Likewise.
* doc/objc.texi: Likewise.

From-SVN: r244286

7 years ago* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using.
Jason Merrill [Tue, 10 Jan 2017 19:04:28 +0000 (14:04 -0500)]
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using.

From-SVN: r244283

7 years agoFI 20, decomposition declaration with parenthesized initializer.
Jason Merrill [Tue, 10 Jan 2017 19:04:22 +0000 (14:04 -0500)]
FI 20, decomposition declaration with parenthesized initializer.

* parser.c (cp_parser_decomposition_declaration): Use
cp_parser_initializer.

From-SVN: r244282

7 years agofuchsia-elf.h: New file.
Joshua Conner [Tue, 10 Jan 2017 18:00:43 +0000 (18:00 +0000)]
fuchsia-elf.h: New file.

2017-01-10  Joshua Conner  <joshconner@google.com>

        * config/arm/fuchsia-elf.h: New file.
        * config/fuchsia.h: New file.
        * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
        (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
        targets.
        * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.

From-SVN: r244281

7 years agoAdjust effective target selector to fix C++17 FAIL
Jonathan Wakely [Tue, 10 Jan 2017 17:44:42 +0000 (17:44 +0000)]
Adjust effective target selector to fix C++17 FAIL

* testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
effective target selector to prevent running in C++17 mode.

From-SVN: r244280

7 years agoPR77528 add default constructors for container adaptors
Jonathan Wakely [Tue, 10 Jan 2017 17:30:20 +0000 (17:30 +0000)]
PR77528 add default constructors for container adaptors

PR libstdc++/77528
* include/bits/stl_queue.h (queue::c): Add default member initializer.
(queue::queue()): Add constructor and define as defaulted.
(queue::queue(_Sequence&&)): Remove default argument.
(priority_queue::c, priority_queue::comp): Add default member
initializers.
(priority_queue::priority_queue()): Add constructor and define as
defaulted.
(priority_queue::priority_queue(const _Compare&, _Sequence&&)):
Remove default argument for first parameter.
* include/bits/stl_stack.h (stack::c): Add default member initializer.
(stack::stack()): Add constructor and define as defaulted.
(stack::stack(const _Sequence&)): Remove default argument.
* testsuite/23_containers/priority_queue/requirements/
explicit_instantiation/1.cc: Test explicit instantiation with
non-DefaultConstructible sequence.
* testsuite/23_containers/priority_queue/77528.cc: New test.
* testsuite/23_containers/priority_queue/requirements/
explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
* testsuite/23_containers/queue/77528.cc: New test.
* testsuite/23_containers/queue/requirements/explicit_instantiation/
1.cc: Test explicit instantiation with non-DefaultConstructible
sequence.
* testsuite/23_containers/queue/requirements/explicit_instantiation/
1_c++0x.cc: Replace with 1_c++98.cc.
* testsuite/23_containers/stack/77528.cc: New test.
* testsuite/23_containers/stack/requirements/explicit_instantiation/
1.cc: Test explicit instantiation with non-DefaultConstructible
sequence.
* testsuite/23_containers/stack/requirements/explicit_instantiation/
1_c++0x.cc: Replace with 1_c++98.cc.

From-SVN: r244278

7 years ago* ChangeLog: Fix whitespace.
Uros Bizjak [Tue, 10 Jan 2017 16:23:52 +0000 (17:23 +0100)]
* ChangeLog: Fix whitespace.

From-SVN: r244276

7 years agore PR sanitizer/78992 (Incorrect sigaction definition on 32-bit sparc)
James Clarke [Tue, 10 Jan 2017 15:22:56 +0000 (15:22 +0000)]
re PR sanitizer/78992 (Incorrect sigaction definition on 32-bit sparc)

PR sanitizer/78992
* sanitizer_common/sanitizer_platform_limits_posix.h
(struct __sanitizer_sigaction): Cherry-pick upstream r291561.

From-SVN: r244275

7 years agore PR tree-optimization/79034 (error: missing PHI def in verify_gimple_in_cfg)
Richard Biener [Tue, 10 Jan 2017 14:50:32 +0000 (14:50 +0000)]
re PR tree-optimization/79034 (error: missing PHI def in verify_gimple_in_cfg)

2016-01-10  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79034
* tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
Propagate out degenerate PHIs in the joiner.

* g++.dg/torture/pr79034.C: New testcase.

From-SVN: r244274

7 years agoIPA ICF: make algorithm stable to survive -fcompare-debug
Martin Liska [Tue, 10 Jan 2017 14:39:33 +0000 (15:39 +0100)]
IPA ICF: make algorithm stable to survive -fcompare-debug

2017-01-10  Martin Liska  <mliska@suse.cz>

* gcc.dg/ipa/ipa-icf-1.c: Change scanned pattern.
* gcc.dg/ipa/ipa-icf-10.c: Likewise.
* gcc.dg/ipa/ipa-icf-11.c: Likewise.
* gcc.dg/ipa/ipa-icf-12.c: Likewise.
* gcc.dg/ipa/ipa-icf-13.c: Likewise.
* gcc.dg/ipa/ipa-icf-16.c: Likewise.
* gcc.dg/ipa/ipa-icf-18.c: Likewise.
* gcc.dg/ipa/ipa-icf-2.c: Likewise.
* gcc.dg/ipa/ipa-icf-20.c: Likewise.
* gcc.dg/ipa/ipa-icf-21.c: Likewise.
* gcc.dg/ipa/ipa-icf-23.c: Likewise.
* gcc.dg/ipa/ipa-icf-25.c: Likewise.
* gcc.dg/ipa/ipa-icf-26.c: Likewise.
* gcc.dg/ipa/ipa-icf-27.c: Likewise.
* gcc.dg/ipa/ipa-icf-3.c: Likewise.
* gcc.dg/ipa/ipa-icf-35.c: Likewise.
* gcc.dg/ipa/ipa-icf-36.c: Likewise.
* gcc.dg/ipa/ipa-icf-37.c: Likewise.
* gcc.dg/ipa/ipa-icf-5.c: Likewise.
* gcc.dg/ipa/ipa-icf-7.c: Likewise.
* gcc.dg/ipa/ipa-icf-8.c: Likewise.
* gcc.dg/ipa/pr64307.c: Likewise.
* gcc.dg/ipa/pr77653.c: Likewise.
2017-01-10  Martin Liska  <mliska@suse.cz>

* ipa-icf.c (sort_sem_items_by_decl_uid): New function.
(sort_congruence_classes_by_decl_uid): Likewise.
(sort_congruence_class_groups_by_decl_uid): Likewise.
(sem_item_optimizer::merge_classes): Sort class, groups in these
classes and members in the groups by DECL_UID of declarations.
This would make merge operations stable.

From-SVN: r244273

7 years agoRevert m_classes_vec introduction.
Martin Liska [Tue, 10 Jan 2017 14:37:55 +0000 (15:37 +0100)]
Revert m_classes_vec introduction.

2017-01-10  Martin Liska  <mliska@suse.cz>

* ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
usage of m_classes_vec.
(sem_item_optimizer::~sem_item_optimizer):  Likewise.
(sem_item_optimizer::get_group_by_hash): Likewise.
(sem_item_optimizer::subdivide_classes_by_equality): Likewise.
(sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
(sem_item_optimizer::verify_classes): Likewise.
(sem_item_optimizer::process_cong_reduction): Likewise.
(sem_item_optimizer::dump_cong_classes): Likewise.
(sem_item_optimizer::merge_classes): Likewise.
* ipa-icf.h (congruence_class_hash): Rename from
congruence_class_group_hash.  Remove declaration of
m_classes_vec.

From-SVN: r244272

7 years agoUse temporary int objects to access struct tm members
Felipe Magno de Almeida [Tue, 10 Jan 2017 14:15:59 +0000 (14:15 +0000)]
Use temporary int objects to access struct tm members

Call _M_extract_* functions family through temporary int objects, so
it doesn't convert from lvalue to rvalue through a temporary in AVR
because of the incompatible types used in AVR-Libc.

This fixes compilation errors with AVR-Libc while compiling libstdc++
for AVR target.

2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>

* include/bits/locale_facets_nonio.tcc
(time_get::_M_extract_via_format): Avoid compilation errors with
non-standard struct tm.

From-SVN: r244271

7 years agoEnable AVX-512 VPOPCNTD/VPOPCNTQ instructions.
Andrew Senkevich [Tue, 10 Jan 2017 12:55:41 +0000 (12:55 +0000)]
Enable AVX-512 VPOPCNTD/VPOPCNTQ instructions.

gcc/
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
* config.gcc: Add avx512vpopcntdqintrin.h.
* config/i386/avx512vpopcntdqintrin.h: New.
* config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
* config/i386/i386-builtin-types.def: Add new types.
* config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
__builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
__builtin_ia32_vpopcountq_v8di_mask): New.
* config/i386/i386-c.c (ix86_target_macros_internal): Define
__AVX512VPOPCNTDQ__.
* config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
(PTA_AVX512VPOPCNTDQ): Define.
* config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
TARGET_AVX512VPOPCNTDQ_P): Define.
* config/i386/i386.opt: Add mavx512vpopcntdq.
* config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
* config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.

libgcc/
* config/i386/cpuinfo.h (processor_features): Add
FEATURE_AVX512VPOPCNTDQ.
* config/i386/cpuinfo.c (get_available_features): Habdle new
feature.

gcc/testsuite/
* g++.dg/other/i386-2.C: Add -mavx512vpopcntdq.
* g++.dg/other/i386-3.C: Ditto.
* gcc.target/i386/sse-12.c: Ditto.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* gcc.target/i386/builtin_target.c: Handle new option.
* gcc.target/i386/funcspec-56.inc: Test new attributes.
* gcc.target/i386/avx512vpopcntdq-vpopcntd.c: New test.
* gcc.target/i386/avx512vpopcntdq-vpopcntq.c: Ditto.

From-SVN: r244263

7 years agoMake Python printers and xmethods work with versioned namespace
François Dumont [Tue, 10 Jan 2017 12:38:42 +0000 (12:38 +0000)]
Make Python printers and xmethods work with versioned namespace

2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
    Jonathan Wakely  <jwakely@redhat.com>

* python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
(is_specialization, strip_versioned_namespace): New helpers functions
to work with symbols in the versioned namespace.
(Printer.add_version): Add second name using versioned namespace.
(add_one_template_type_printer, add_one_type_printer): Add second
type printers using versioned namespace.
(register_type_printers): Add template type printer for basic_string.
(build_libstdcxx_dictionary): Remove dead code.
* python/libstdcxx/v6/xmethods.py: Make all matchers look for
versioned namespace.
* testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
results.
* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r244262

7 years agore PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000...
Jan Hubicka [Tue, 10 Jan 2017 09:14:54 +0000 (10:14 +0100)]
re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP)

PR middle-end/77484
* predict.def (PRED_CALL): Set to 67.

From-SVN: r244260

7 years agocompiler, runtime: drop size arguments to hash/equal functions
Ian Lance Taylor [Tue, 10 Jan 2017 03:59:20 +0000 (03:59 +0000)]
compiler, runtime: drop size arguments to hash/equal functions

    Drop the size arguments for the hash/equal functions stored in type
    descriptors.  Types know what size they are.  To make this work,
    generate hash/equal functions for types that can use an identity
    comparison but are not a standard size and alignment.

    Drop the multiplications by 33 in the generated hash code and the
    reflect package hash code.  They are not necessary since we started
    passing a seed value around, as the seed includes the hash of the
    earlier values.

    Copy the algorithms for standard types from the Go 1.7 runtime,
    replacing the C functions.

    Reviewed-on: https://go-review.googlesource.com/34983

From-SVN: r244256

7 years agoDaily bump.
GCC Administrator [Tue, 10 Jan 2017 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244255

7 years agoPR testsuite/79036 - gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244037
Martin Sebor [Mon, 9 Jan 2017 23:31:38 +0000 (23:31 +0000)]
PR testsuite/79036 - gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244037

PR testsuite/79036 - gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244037
gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/builtin-sprintf.c: Handle extended formats
with different precisions.

From-SVN: r244250

7 years agoexpr.c (store_field): In the bitfield case...
Eric Botcazou [Mon, 9 Jan 2017 22:17:17 +0000 (22:17 +0000)]
expr.c (store_field): In the bitfield case...

* expr.c (store_field): In the bitfield case, if the value comes from
a function call and is of an aggregate type returned in registers, do
not modify the field mode; extract the value in all cases if the mode
is BLKmode and the size is not larger than a word.

From-SVN: r244249

7 years agore PR target/71017 (libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift...
Dominique d'Humieres [Mon, 9 Jan 2017 22:00:32 +0000 (23:00 +0100)]
re PR target/71017 (libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift of 1 by 31 places cannot be represented in type 'int')

PR target/71017
* config/i386/cpuid.h: Fix undefined behavior.

From-SVN: r244248

7 years agore PR tree-optimization/79007 (gcc.dg/tree-ssa/dse-points-to.c fails starting with...
Jeff Law [Mon, 9 Jan 2017 21:53:02 +0000 (14:53 -0700)]
re PR tree-optimization/79007 (gcc.dg/tree-ssa/dse-points-to.c fails starting with r244067)

PR tree-optimization/79007
PR tree-optimization/67955
* tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
conservative for pt.null when flag_non_call_exceptions is on.

From-SVN: r244247