diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2023-12-30 23:39:37 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2023-12-30 23:39:37 +0100 |
| commit | 263915832993dd12beee10e204f9ebcc6c786ed2 (patch) | |
| tree | 862e51208a99c35746e574a76564a4532b3a4a49 /CompilerDriver/cc2/regression-tests/pure2-deducing-pointers-error.cpp2 | |
Meta: initial commit of WestCo optimized toolchain.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'CompilerDriver/cc2/regression-tests/pure2-deducing-pointers-error.cpp2')
| -rw-r--r-- | CompilerDriver/cc2/regression-tests/pure2-deducing-pointers-error.cpp2 | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/CompilerDriver/cc2/regression-tests/pure2-deducing-pointers-error.cpp2 b/CompilerDriver/cc2/regression-tests/pure2-deducing-pointers-error.cpp2 new file mode 100644 index 0000000..ee6e5ff --- /dev/null +++ b/CompilerDriver/cc2/regression-tests/pure2-deducing-pointers-error.cpp2 @@ -0,0 +1,47 @@ +fun: (inout i:int) -> *int = { + return i&; +} + +fun2: (inout i:int) -> (result : *int) = { + result = i&; +} + +main: () -> int = { + a: int = 2; + pa: *int = a&; + ppa: **int = pa&; + + pa = 0; // caught + + pa2:= ppa*; + pa2 = 0; // caught + + pa3 := a&; + pa3 = 0; // caught + pa3 += 2; // caught + + ppa2 := pa2&; + pa4 := ppa2*; + pa4 = 0; // caught + + pppa := ppa&; + pa5 := pppa**; + pa5 = 0; // caught + + // TODO: @filipsajdak please take a look + // The bugfix in get_declaration_of(t) to add `&& ri->position() <= t.position()` + // to the condition is correct; it fixes issue #669 by not looking past the first + // declaration of the name in t. However, that change made the following two + // "caught" cases no longer be caught. + fun(a)++; // caught + fp := fun(a); + fp = 0; // caught + + f := fun(a)*; + _ = f; + + fp2 := fun2(a).result; + fp2--; // not caught :( + + return a * pa* * ppa**; // 8 +} |
