]> gcc.gnu.org Git - gcc.git/commit
[modula2] Implement limited VAR parameter static analysis
authorGaius Mulley <gaiusmod2@gmail.com>
Thu, 20 Jul 2023 21:32:22 +0000 (22:32 +0100)
committerGaius Mulley <gaiusmod2@gmail.com>
Thu, 20 Jul 2023 21:32:22 +0000 (22:32 +0100)
commit083e7857a9ebf187b9116c74f6acf161f593bad9
tree6bd6d183416ced1dbe6302829286bfa26dfbd1d3
parent4e9ed68ee7ef2c80dcfd038c54e937646cc0ece2
[modula2] Implement limited VAR parameter static analysis

This patch implements limited VAR parameter static analysis for pointer
parameters.

gcc/m2/ChangeLog:

* gm2-compiler/M2SymInit.mod (IsExempt): Remove parameter exemption.
(CheckIndrX): Call SetupLAlias between lhs and content.
(trashParam): Re-write.
(SetVarLRInitialized): Indicate shadow and heap are initialized.
Call SetupIndr between shadow and heap.
* gm2-compiler/P2SymBuild.mod: Import
PutProcedureParameterHeapVars.
(EndBuildProcedure): Call PutProcedureParameterHeapVars.
* gm2-compiler/SymbolTable.def (GetParameterHeapVar): New
procedure function.
(PutProcedureParameterHeapVars): New procedure function.
* gm2-compiler/SymbolTable.mod (MakeParameterHeapVar): New
procedure function.
(GetParameterHeapVar): New procedure function.
(PuttParameterHeapVar): New procedure function.
(PutProcedureParameterHeapVars): New procedure.
(VarParam): HeapVar new record field.
(PutVarParam): HeapVar assigned to NulSym.

gcc/testsuite/ChangeLog:

* gm2/switches/uninit-variable-checking/procedures/fail/testdispose3.mod: New test.
* gm2/switches/uninit-variable-checking/procedures/fail/testdispose4.mod: New test.
* gm2/switches/uninit-variable-checking/procedures/pass/testdispose3.mod: New test.
* gm2/switches/uninit-variable-checking/procedures/pass/testdispose4.mod: New test.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
gcc/m2/gm2-compiler/M2SymInit.mod
gcc/m2/gm2-compiler/P2SymBuild.mod
gcc/m2/gm2-compiler/SymbolTable.def
gcc/m2/gm2-compiler/SymbolTable.mod
gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose3.mod [new file with mode: 0644]
gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/fail/testdispose4.mod [new file with mode: 0644]
gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testdispose3.mod [new file with mode: 0644]
gcc/testsuite/gm2/switches/uninit-variable-checking/procedures/pass/testdispose4.mod [new file with mode: 0644]
This page took 0.062296 seconds and 5 git commands to generate.