Skip to content

Commit

Permalink
Add Test of void function with pointer arg
Browse files Browse the repository at this point in the history
  • Loading branch information
kchristin22 committed Mar 14, 2024
1 parent bafdfb7 commit 02fa7d1
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions test/Gradient/Pointers.C
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,24 @@ double cStyleMemoryAlloc(double x, size_t n) {
// CHECK-NEXT: free(_d_t);
// CHECK-NEXT: }

void pointerArgOut(double* p) {
*p *= *p;
}

// CHECK: void pointerArgOut_grad(double *p, clad::array_ref<double> _d_p) {
// CHECK-NEXT: * _d_p = 1;
// CHECK-NEXT: double _t0;
// CHECK-NEXT: _t0 = *p;
// CHECK-NEXT: *p *= *p;
// CHECK-NEXT: {
// CHECK-NEXT: *p = _t0;
// CHECK-NEXT: double _r_d0 = * _d_p;
// CHECK-NEXT: * _d_p -= _r_d0;
// CHECK-NEXT: * _d_p += _r_d0 * *p;
// CHECK-NEXT: * _d_p += *p * _r_d0;
// CHECK-NEXT: }
// CHECK-NEXT:}

#define NON_MEM_FN_TEST(var)\
res[0]=0;\
var.execute(5,res);\
Expand Down Expand Up @@ -621,4 +639,10 @@ int main() {
d_x = 0;
d_cStyleMemoryAlloc.execute(5, 7, &d_x);
printf("%.2f\n", d_x); // CHECK-EXEC: 4.00

auto d_pointerArgOut = clad::gradient(pointerArgOut);
double *p = new double(5);
double d_p;
d_pointerArgOut.execute(p, &d_p);
printf("%.2f\n", d_p); // CHECK-EXEC: 10.00
}

0 comments on commit 02fa7d1

Please sign in to comment.