writer/msl: Emit const on array and ptr parameters

This fixes issues with passing constant arrays to functions.

Change-Id: I6e2f1c3f64df836c0b6a55ab925cf3c2bc317733
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51861
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
James Price
2021-05-22 12:40:04 +00:00
committed by Tint LUCI CQ
parent ed86bf99b0
commit e5fdd58352
7 changed files with 9 additions and 7 deletions

View File

@@ -1,7 +1,7 @@
#include <metal_stdlib>
using namespace metal;
int func(int value, thread int* pointer) {
int func(int value, thread int* const pointer) {
int const x_9 = *(pointer);
return (value + x_9);
}

View File

@@ -1,7 +1,7 @@
#include <metal_stdlib>
using namespace metal;
int func(int value, thread int* pointer) {
int func(int value, thread int* const pointer) {
return (value + *(pointer));
}

View File

@@ -1,7 +1,7 @@
#include <metal_stdlib>
using namespace metal;
void func(int value, thread int* pointer) {
void func(int value, thread int* const pointer) {
*(pointer) = value;
return;
}

View File

@@ -1,7 +1,7 @@
#include <metal_stdlib>
using namespace metal;
void func(int value, thread int* pointer) {
void func(int value, thread int* const pointer) {
*(pointer) = value;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
struct S {
};
void foo(bool param_bool, int param_i32, uint param_u32, float param_f32, int2 param_v2i32, uint3 param_v3u32, float4 param_v4f32, float2x3 param_m2x3, float param_arr[4], S param_struct, thread float* param_ptr_f32, thread float4* param_ptr_vec, thread float (*param_ptr_arr)[4]) {
void foo(bool param_bool, int param_i32, uint param_u32, float param_f32, int2 param_v2i32, uint3 param_v3u32, float4 param_v4f32, float2x3 param_m2x3, float const param_arr[4], S param_struct, thread float* const param_ptr_f32, thread float4* const param_ptr_vec, thread float (*const param_ptr_arr)[4]) {
}
kernel void tint_symbol() {