mirror of git://gcc.gnu.org/git/gcc.git
[Ada] Spurious error -- "allocation from empty storage pool"
This patch fixes a bug in which if "pragma Default_Storage_Pool (null);" is given, then a build-in-place function will get an incorrect error message "allocation from empty storage pool" even though there is no such allocation in the source program. 2018-07-31 Bob Duff <duff@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Allocator): Do not complain about the implicit allocator that occurs in the expansion of a return statement for a build-in-place function. From-SVN: r263088
This commit is contained in:
parent
1102fd64db
commit
e78c79ff53
|
|
@ -1,3 +1,9 @@
|
|||
2018-07-31 Bob Duff <duff@adacore.com>
|
||||
|
||||
* sem_res.adb (Resolve_Allocator): Do not complain about the
|
||||
implicit allocator that occurs in the expansion of a return
|
||||
statement for a build-in-place function.
|
||||
|
||||
2018-07-20 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
PR middle-end/82063
|
||||
|
|
|
|||
|
|
@ -5035,9 +5035,14 @@ package body Sem_Res is
|
|||
end;
|
||||
end if;
|
||||
|
||||
-- Check for allocation from an empty storage pool
|
||||
-- Check for allocation from an empty storage pool. But do not complain
|
||||
-- if it's a return statement for a build-in-place function, because the
|
||||
-- allocator is there just in case the caller uses an allocator. If the
|
||||
-- caller does use an allocator, it will be caught at the call site.
|
||||
|
||||
if No_Pool_Assigned (Typ) then
|
||||
if No_Pool_Assigned (Typ)
|
||||
and then not Alloc_For_BIP_Return (N)
|
||||
then
|
||||
Error_Msg_N ("allocation from empty storage pool!", N);
|
||||
|
||||
-- If the context is an unchecked conversion, as may happen within an
|
||||
|
|
|
|||
Loading…
Reference in New Issue