summaryrefslogtreecommitdiffhomepage
path: root/CompilerDriver/cc2/regression-tests/pure2-deducing-pointers-error.cpp2
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2023-12-30 23:39:37 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2023-12-30 23:39:37 +0100
commit263915832993dd12beee10e204f9ebcc6c786ed2 (patch)
tree862e51208a99c35746e574a76564a4532b3a4a49 /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.cpp247
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
+}