Hi Julian!
On 2024-01-07T16:04:37+0100, Tobias Burnus wrote:
> Am 05.01.24 um 13:23 schrieb Julian Brown:
>> Here's a rebased/retested version [...]
> LGTM - [...]
Got pushed as commit r14-7033-g1413af02d62182bc1e19698aaa4dae406f8f13bf
"OpenMP: lvalue parsing for map/to/from clauses (C++)".
Some (hopefully minor) tuning in the test cases is necessary; for
example, for x86_64-pc-linux-gnu '-m32' testing, I see a few FAILs:
+PASS: g++.dg/gomp/array-section-1.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[1\\] [len: x != 0 ? [0-9]+ : [0-9]+\\]\\)
map\\(firstprivate:arr1 \\[pointer assign, bias: [0-9]+\\]\\)"
+PASS: g++.dg/gomp/array-section-1.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[1\\] \\[len: x != 0 \\? [0-9]+ : [0-9]+\\]\\)
map\\(firstprivate:arr1 \\[pointer assign, bias: [0-9]+\\]\\)"
+FAIL: g++.dg/gomp/array-section-1.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[SAVE_EXPR \\] \\[len: [0-9]+\\]\\)
map\\(firstprivate:arr1 \\[pointer assign, bias: \\(long int\\)
&arr1\\[SAVE_EXPR \\] - \\(long int\\) &arr1\\]\\)"
+FAIL: g++.dg/gomp/array-section-1.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[SAVE_EXPR \\] \\[len: [0-9]+\\]\\)
map\\(firstprivate:arr1 \\[pointer assign, bias: \\(long int\\)
&arr1\\[SAVE_EXPR \\] - \\(long int\\) &arr1\\]\\)"
+FAIL: g++.dg/gomp/array-section-1.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[SAVE_EXPR \\] \\[len: [0-9]+\\]\\)
map\\(firstprivate:arr1 \\[pointer assign, bias: \\(long int\\)
&arr1\\[SAVE_EXPR \\] - \\(long int\\) &arr1\\]\\)"
+FAIL: g++.dg/gomp/array-section-1.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[SAVE_EXPR \\] \\[len: [0-9]+\\]\\)
map\\(firstprivate:arr1 \\[pointer assign, bias: \\(long int\\)
&arr1\\[SAVE_EXPR \\] - \\(long int\\) &arr1\\]\\)"
+PASS: g++.dg/gomp/array-section-1.C -std=c++98 (test for excess errors)
Etc.
+PASS: g++.dg/gomp/array-section-2.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[0\\] \\[len: \\(sizetype\\) y \\* [0-9]+\\]\\)
map\\(firstprivate:arr1 \\[pointer assign, bias: 0\\]\\)"
+PASS: g++.dg/gomp/array-section-2.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[0\\] \\[len: \\(sizetype\\) y \\* [0-9]+\\]\\)
map\\(firstprivate:arr1 \\[pointer assign, bias: 0\\]\\)"
+FAIL: g++.dg/gomp/array-section-2.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[SAVE_EXPR \\] \\[len: \\(40 - \\(sizetype\\) SAVE_EXPR
\\) \\* [0-9]+\\]\\) map\\(firstprivate:arr1 \\[pointer assign, bias:
\\(long int\\) &arr1\\[SAVE_EXPR \\] - \\(long int\\) &arr1\\]\\)"
+FAIL: g++.dg/gomp/array-section-2.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[SAVE_EXPR \\] \\[len: \\(40 - \\(sizetype\\) SAVE_EXPR
\\) \\* [0-9]+\\]\\) map\\(firstprivate:arr1 \\[pointer assign, bias:
\\(long int\\) &arr1\\[SAVE_EXPR \\] - \\(long int\\) &arr1\\]\\)"
+FAIL: g++.dg/gomp/array-section-2.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[SAVE_EXPR \\] \\[len: \\(sizetype\\) y \\* [0-9]+\\]\\)
map\\(firstprivate:arr1 \\[pointer assign, bias: \\(long int\\)
&arr1\\[SAVE_EXPR \\] - \\(long int\\) &arr1\\]\\)"
+FAIL: g++.dg/gomp/array-section-2.C -std=c++98 scan-tree-dump original
"map\\(tofrom:arr1\\[SAVE_EXPR \\] \\[len: \\(sizetype\\) y \\* [0-9]+\\]\\)
map\\(firstprivate:arr1 \\[pointer assign, bias: \\(long int\\)
&arr1\\[SAVE_EXPR \\] - \\(long int\\) &arr1\\]\\)"
+PASS: g++.dg/gomp/array-section-2.C -std=c++98 (test for excess errors)
Etc.
+PASS: g++.dg/gomp/bad-array-section-4.C -std=c++98 at line 15 (test for
errors, line 14)
+PASS: g++.dg/gomp/bad-array-section-4.C -std=c++98 at line 16 (test for
errors, line 14)
+PASS: g++.dg/gomp/bad-array-section-4.C -std=c++98 at line 17 (test for
errors, line 14)
+PASS: g++.dg/gomp/bad-array-section-4.C -std=c++98 at line 22 (test for
warnings, line 21)
+PASS: g++.dg/gomp/bad-array-section-4.C -std=c++98 at line 36 (test for
errors, line 35)
+FAIL: g++.dg/gomp/bad-array-section-4.C -std=c++98 at line 37 (test for
warnings, line 35)
+PASS: g++.dg/gomp/bad-array-section-4.C -std=c++98 at line 38 (test for
errors, line 35)
+PASS: g++.dg/gomp/bad-array-section-4.C -std=c++98 at line 39 (test for
errors, line 35)
+PASS: g++.dg/gomp/bad-array-section-4.C -std=c++98 at line 44 (test for
warnings, line 43)
+PASS: g++.dg/gomp/bad-array-section-4.C -std=c++98 (test for excess
errors)
Etc.
Grüße
Thomas
-
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht
München, HRB 106955