lidavidm opened a new issue, #816:
URL: https://github.com/apache/arrow-adbc/issues/816

   <details>
   
   ```
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:233:5:
 warning: Potential memory leak [clang-analyzer-cplusplus.NewDeleteLeaks]
       ASSERT_THAT(ArrowSchemaViewInit(&field_view, schema->children[i], 
&na_error),
       ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:40: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                          ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:224:3:
 note: Control jumps to 'case 0:'  at line 224
     ASSERT_THAT(ArrowSchemaViewInit(&view, schema, &na_error), 
IsOkErrno(&na_error));
     ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:78:3: note: 
expanded from macro 'GTEST_ASSERT_'
     GTEST_AMBIGUOUS_ELSE_BLOCKER_                                 \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/internal/gtest-port.h:665:3: 
note: expanded from macro 'GTEST_AMBIGUOUS_ELSE_BLOCKER_'
     switch (0)                          \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:224:3:
 note: Assuming the condition is true
     ASSERT_THAT(ArrowSchemaViewInit(&view, schema, &na_error), 
IsOkErrno(&na_error));
     ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:40: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                          ^~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:224:3:
 note: Taking true branch
     ASSERT_THAT(ArrowSchemaViewInit(&view, schema, &na_error), 
IsOkErrno(&na_error));
     ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:3: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:225:3:
 note: Control jumps to 'case 0:'  at line 225
     ASSERT_THAT(view.type,
     ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:78:3: note: 
expanded from macro 'GTEST_ASSERT_'
     GTEST_AMBIGUOUS_ELSE_BLOCKER_                                 \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/internal/gtest-port.h:665:3: 
note: expanded from macro 'GTEST_AMBIGUOUS_ELSE_BLOCKER_'
     switch (0)                          \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:225:3:
 note: Assuming the condition is true
     ASSERT_THAT(view.type,
     ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:40: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                          ^~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:225:3:
 note: Taking true branch
     ASSERT_THAT(view.type,
     ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:3: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:228:3:
 note: Control jumps to 'case 0:'  at line 228
     ASSERT_EQ(fields.size(), schema->n_children);
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1893:31: note: 
expanded from macro 'ASSERT_EQ'
   #define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                                 ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1877:3: note: expanded 
from macro 'GTEST_ASSERT_EQ'
     ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:148:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT2'
     GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:134:3: note: 
expanded from macro 'GTEST_PRED_FORMAT2_'
     GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:78:3: note: 
expanded from macro 'GTEST_ASSERT_'
     GTEST_AMBIGUOUS_ELSE_BLOCKER_                                 \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/internal/gtest-port.h:665:3: 
note: expanded from macro 'GTEST_AMBIGUOUS_ELSE_BLOCKER_'
     switch (0)                          \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:228:3:
 note: Assuming the condition is true
     ASSERT_EQ(fields.size(), schema->n_children);
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1893:31: note: 
expanded from macro 'ASSERT_EQ'
   #define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1877:3: note: expanded 
from macro 'GTEST_ASSERT_EQ'
     ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:148:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT2'
     GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:134:3: note: 
expanded from macro 'GTEST_PRED_FORMAT2_'
     GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:40: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                          ^~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:228:3:
 note: Taking true branch
     ASSERT_EQ(fields.size(), schema->n_children);
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1893:31: note: 
expanded from macro 'ASSERT_EQ'
   #define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                                 ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1877:3: note: expanded 
from macro 'GTEST_ASSERT_EQ'
     ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:148:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT2'
     GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:134:3: note: 
expanded from macro 'GTEST_PRED_FORMAT2_'
     GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:3: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:230:23:
 note: Assuming 'i' is < field 'n_children'
     for (int64_t i = 0; i < schema->n_children; i++) {
                         ^~~~~~~~~~~~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:230:3:
 note: Loop condition is true.  Entering loop body
     for (int64_t i = 0; i < schema->n_children; i++) {
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:233:5:
 note: Control jumps to 'case 0:'  at line 233
       ASSERT_THAT(ArrowSchemaViewInit(&field_view, schema->children[i], 
&na_error),
       ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:78:3: note: 
expanded from macro 'GTEST_ASSERT_'
     GTEST_AMBIGUOUS_ELSE_BLOCKER_                                 \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/internal/gtest-port.h:665:3: 
note: expanded from macro 'GTEST_AMBIGUOUS_ELSE_BLOCKER_'
     switch (0)                          \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:233:5:
 note: Assuming the condition is true
       ASSERT_THAT(ArrowSchemaViewInit(&field_view, schema->children[i], 
&na_error),
       ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:40: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                          ^~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:233:5:
 note: Taking true branch
       ASSERT_THAT(ArrowSchemaViewInit(&field_view, schema->children[i], 
&na_error),
       ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:3: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:235:5:
 note: Control jumps to 'case 0:'  at line 235
       ASSERT_EQ(std::get<1>(fields[i]), field_view.type);
       ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1893:31: note: 
expanded from macro 'ASSERT_EQ'
   #define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                                 ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1877:3: note: expanded 
from macro 'GTEST_ASSERT_EQ'
     ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:148:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT2'
     GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:134:3: note: 
expanded from macro 'GTEST_PRED_FORMAT2_'
     GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:78:3: note: 
expanded from macro 'GTEST_ASSERT_'
     GTEST_AMBIGUOUS_ELSE_BLOCKER_                                 \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/internal/gtest-port.h:665:3: 
note: expanded from macro 'GTEST_AMBIGUOUS_ELSE_BLOCKER_'
     switch (0)                          \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:235:5:
 note: Assuming the condition is true
       ASSERT_EQ(std::get<1>(fields[i]), field_view.type);
       ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1893:31: note: 
expanded from macro 'ASSERT_EQ'
   #define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1877:3: note: expanded 
from macro 'GTEST_ASSERT_EQ'
     ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:148:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT2'
     GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:134:3: note: 
expanded from macro 'GTEST_PRED_FORMAT2_'
     GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:40: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                          ^~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:235:5:
 note: Taking true branch
       ASSERT_EQ(std::get<1>(fields[i]), field_view.type);
       ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1893:31: note: 
expanded from macro 'ASSERT_EQ'
   #define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                                 ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1877:3: note: expanded 
from macro 'GTEST_ASSERT_EQ'
     ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:148:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT2'
     GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:134:3: note: 
expanded from macro 'GTEST_PRED_FORMAT2_'
     GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:3: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:236:5:
 note: Control jumps to 'case 0:'  at line 236
       ASSERT_EQ(std::get<2>(fields[i]),
       ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1893:31: note: 
expanded from macro 'ASSERT_EQ'
   #define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                                 ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1877:3: note: expanded 
from macro 'GTEST_ASSERT_EQ'
     ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:148:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT2'
     GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:134:3: note: 
expanded from macro 'GTEST_PRED_FORMAT2_'
     GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:78:3: note: 
expanded from macro 'GTEST_ASSERT_'
     GTEST_AMBIGUOUS_ELSE_BLOCKER_                                 \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/internal/gtest-port.h:665:3: 
note: expanded from macro 'GTEST_AMBIGUOUS_ELSE_BLOCKER_'
     switch (0)                          \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:237:15:
 note: Assuming the condition is false
                 (schema->children[i]->flags & ARROW_FLAG_NULLABLE) != 0)
                 ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1893:53: note: 
expanded from macro 'ASSERT_EQ'
   #define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1877:69: note: 
expanded from macro 'GTEST_ASSERT_EQ'
     ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:148:40: 
note: expanded from macro 'ASSERT_PRED_FORMAT2'
     GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:134:43: 
note: expanded from macro 'GTEST_PRED_FORMAT2_'
     GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:52: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                                      ^~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:236:5:
 note: Assuming the condition is true
       ASSERT_EQ(std::get<2>(fields[i]),
       ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1893:31: note: 
expanded from macro 'ASSERT_EQ'
   #define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1877:3: note: expanded 
from macro 'GTEST_ASSERT_EQ'
     ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:148:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT2'
     GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:134:3: note: 
expanded from macro 'GTEST_PRED_FORMAT2_'
     GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:40: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                          ^~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:236:5:
 note: Taking true branch
       ASSERT_EQ(std::get<2>(fields[i]),
       ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1893:31: note: 
expanded from macro 'ASSERT_EQ'
   #define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
                                 ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest.h:1877:3: note: expanded 
from macro 'GTEST_ASSERT_EQ'
     ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:148:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT2'
     GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:134:3: note: 
expanded from macro 'GTEST_PRED_FORMAT2_'
     GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:3: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:239:9:
 note: Assuming the condition is false
       if (std::get<0>(fields[i]).has_value()) {
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:239:5:
 note: Taking false branch
       if (std::get<0>(fields[i]).has_value()) {
       ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:230:23:
 note: Assuming 'i' is < field 'n_children'
     for (int64_t i = 0; i < schema->n_children; i++) {
                         ^~~~~~~~~~~~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:230:3:
 note: Loop condition is true.  Entering loop body
     for (int64_t i = 0; i < schema->n_children; i++) {
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:233:5:
 note: Control jumps to 'case 0:'  at line 233
       ASSERT_THAT(ArrowSchemaViewInit(&field_view, schema->children[i], 
&na_error),
       ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5437:3: note: 
expanded from macro 'ASSERT_THAT'
     ASSERT_PRED_FORMAT1(              \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:3: note: 
expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:3: note: 
expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ^
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:78:3: note: 
expanded from macro 'GTEST_ASSERT_'
     GTEST_AMBIGUOUS_ELSE_BLOCKER_                                 \
     ^
   /usr/share/miniconda3/envs/test/include/gtest/internal/gtest-port.h:665:3: 
note: expanded from macro 'GTEST_AMBIGUOUS_ELSE_BLOCKER_'
     switch (0)                          \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:234:17:
 note: Calling 'IsOkErrno'
                   IsOkErrno(&na_error));
                   ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5438:62: 
note: expanded from macro 'ASSERT_THAT'
         ::testing::internal::MakePredicateFormatterFromMatcher(matcher), value)
                                                                ^~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:112:23: 
note: expanded from macro 'ASSERT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
                         ^~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:17: 
note: expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
                   ^~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:52: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                                      ^~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/validation/adbc_validation_util.cc:93:10:
 note: Calling constructor for 'Matcher<int>'
     return IsErrno(0, nullptr, error);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:163:42: 
warning: Call to 'malloc' has an allocation size of 0 bytes 
[clang-analyzer-optin.portability.UnixAPI]
   void* ArrowMalloc(int64_t size) { return malloc(size); }
                                            ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:2835:7: 
note: Calling 'AdbcNsArrowArrayViewInitFromSchema'
         ArrowArrayViewInitFromSchema(&array_view, &private_data->schema, 
error));
         ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:797:3: 
note: expanded from macro 'ArrowArrayViewInitFromSchema'
     NANOARROW_SYMBOL(NANOARROW_NAMESPACE, ArrowArrayViewInitFromSchema)
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:723:32: 
note: expanded from macro 'NANOARROW_SYMBOL'
   #define NANOARROW_SYMBOL(A, B) NANOARROW_CAT(A, B)
                                  ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:722:29: 
note: expanded from macro 'NANOARROW_CAT'
   #define NANOARROW_CAT(A, B) A##B
                               ^
   note: expanded from here
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:208:83: 
note: expanded from macro 'NANOARROW_RETURN_NOT_OK'
     _NANOARROW_RETURN_NOT_OK_IMPL(_NANOARROW_MAKE_NAME(errno_status_, 
__COUNTER__), EXPR)
     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:187:23: 
note: expanded from macro '_NANOARROW_RETURN_NOT_OK_IMPL'
       const int NAME = (EXPR);                      \
                         ^~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:2271:7: 
note: 'result' is equal to NANOARROW_OK
     if (result != NANOARROW_OK) {
         ^~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:2271:3: 
note: Taking false branch
     if (result != NANOARROW_OK) {
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:2278:12: 
note: Calling 'AdbcNsArrowArrayViewAllocateChildren'
     result = ArrowArrayViewAllocateChildren(array_view, schema->n_children);
              ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:799:3: 
note: expanded from macro 'ArrowArrayViewAllocateChildren'
     NANOARROW_SYMBOL(NANOARROW_NAMESPACE, ArrowArrayViewAllocateChildren)
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:723:32: 
note: expanded from macro 'NANOARROW_SYMBOL'
   #define NANOARROW_SYMBOL(A, B) NANOARROW_CAT(A, B)
                                  ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:722:29: 
note: expanded from macro 'NANOARROW_CAT'
   #define NANOARROW_CAT(A, B) A##B
                               ^
   note: expanded from here
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:2238:7: 
note: Assuming field 'children' is equal to NULL
     if (array_view->children != NULL) {
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:2238:3: 
note: Taking false branch
     if (array_view->children != NULL) {
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:2243:44: 
note: Passing the value 0 via 1st parameter 'size'
         (struct ArrowArrayView**)ArrowMalloc(n_children * sizeof(struct 
ArrowArrayView*));
                                              
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:2243:32: 
note: Calling 'AdbcNsArrowMalloc'
         (struct ArrowArrayView**)ArrowMalloc(n_children * sizeof(struct 
ArrowArrayView*));
                                  ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:729:21: 
note: expanded from macro 'ArrowMalloc'
   #define ArrowMalloc NANOARROW_SYMBOL(NANOARROW_NAMESPACE, ArrowMalloc)
                       ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:723:32: 
note: expanded from macro 'NANOARROW_SYMBOL'
   #define NANOARROW_SYMBOL(A, B) NANOARROW_CAT(A, B)
                                  ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:722:29: 
note: expanded from macro 'NANOARROW_CAT'
   #define NANOARROW_CAT(A, B) A##B
                               ^
   note: expanded from here
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:163:42: 
note: Call to 'malloc' has an allocation size of 0 bytes
   void* ArrowMalloc(int64_t size) { return malloc(size); }
                                            ^      ~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1908:24: 
warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
     private_data->layout = array_view->layout;
                          ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1926:3: 
note: Assuming 'errno_status_88' is 0
     NANOARROW_RETURN_NOT_OK(ArrowArrayViewInitFromSchema(&array_view, schema, 
error));
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:208:33: 
note: expanded from macro 'NANOARROW_RETURN_NOT_OK'
     _NANOARROW_RETURN_NOT_OK_IMPL(_NANOARROW_MAKE_NAME(errno_status_, 
__COUNTER__), EXPR)
                                   
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:183:36: 
note: expanded from macro '_NANOARROW_MAKE_NAME'
   #define _NANOARROW_MAKE_NAME(x, y) _NANOARROW_CONCAT(x, y)
                                      ^~~~~~~~~~~~~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:182:33: 
note: expanded from macro '_NANOARROW_CONCAT'
   #define _NANOARROW_CONCAT(x, y) x##y
                                   ^~~~
   note: expanded from here
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:188:9: 
note: expanded from macro '_NANOARROW_RETURN_NOT_OK_IMPL'
       if (NAME) return NAME;                        \
           ^~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1926:3: 
note: Taking false branch
     NANOARROW_RETURN_NOT_OK(ArrowArrayViewInitFromSchema(&array_view, schema, 
error));
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:208:3: 
note: expanded from macro 'NANOARROW_RETURN_NOT_OK'
     _NANOARROW_RETURN_NOT_OK_IMPL(_NANOARROW_MAKE_NAME(errno_status_, 
__COUNTER__), EXPR)
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:188:5: 
note: expanded from macro '_NANOARROW_RETURN_NOT_OK_IMPL'
       if (NAME) return NAME;                        \
       ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1926:3: 
note: Loop condition is false.  Exiting loop
     NANOARROW_RETURN_NOT_OK(ArrowArrayViewInitFromSchema(&array_view, schema, 
error));
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:208:3: 
note: expanded from macro 'NANOARROW_RETURN_NOT_OK'
     _NANOARROW_RETURN_NOT_OK_IMPL(_NANOARROW_MAKE_NAME(errno_status_, 
__COUNTER__), EXPR)
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:186:3: 
note: expanded from macro '_NANOARROW_RETURN_NOT_OK_IMPL'
     do {                                            \
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1927:27: 
note: Calling 'ArrowArrayInitFromArrayView'
     NANOARROW_RETURN_NOT_OK(ArrowArrayInitFromArrayView(array, &array_view, 
error));
                             ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:208:83: 
note: expanded from macro 'NANOARROW_RETURN_NOT_OK'
     _NANOARROW_RETURN_NOT_OK_IMPL(_NANOARROW_MAKE_NAME(errno_status_, 
__COUNTER__), EXPR)
                                                                                
     ^~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:187:23: 
note: expanded from macro '_NANOARROW_RETURN_NOT_OK_IMPL'
       const int NAME = (EXPR);                      \
                         ^~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1898:3: 
note: Calling 'AdbcNsArrowArrayInitFromType'
     ArrowArrayInitFromType(array, array_view->storage_type);
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:779:3: 
note: expanded from macro 'ArrowArrayInitFromType'
     NANOARROW_SYMBOL(NANOARROW_NAMESPACE, ArrowArrayInitFromType)
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:723:32: 
note: expanded from macro 'NANOARROW_SYMBOL'
   #define NANOARROW_SYMBOL(A, B) NANOARROW_CAT(A, B)
                                  ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:722:29: 
note: expanded from macro 'NANOARROW_CAT'
   #define NANOARROW_CAT(A, B) A##B
                               ^
   note: expanded from here
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1866:38: 
note: Calling 'AdbcNsArrowMalloc'
         (struct ArrowArrayPrivateData*)ArrowMalloc(sizeof(struct 
ArrowArrayPrivateData));
                                        ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:729:21: 
note: expanded from macro 'ArrowMalloc'
   #define ArrowMalloc NANOARROW_SYMBOL(NANOARROW_NAMESPACE, ArrowMalloc)
                       ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:723:32: 
note: expanded from macro 'NANOARROW_SYMBOL'
   #define NANOARROW_SYMBOL(A, B) NANOARROW_CAT(A, B)
                                  ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:722:29: 
note: expanded from macro 'NANOARROW_CAT'
   #define NANOARROW_CAT(A, B) A##B
                               ^
   note: expanded from here
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:163:42: 
note: Memory is allocated
   void* ArrowMalloc(int64_t size) { return malloc(size); }
                                            ^~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1866:38: 
note: Returned allocated memory
         (struct ArrowArrayPrivateData*)ArrowMalloc(sizeof(struct 
ArrowArrayPrivateData));
                                        ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:729:21: 
note: expanded from macro 'ArrowMalloc'
   #define ArrowMalloc NANOARROW_SYMBOL(NANOARROW_NAMESPACE, ArrowMalloc)
                       ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:723:32: 
note: expanded from macro 'NANOARROW_SYMBOL'
   #define NANOARROW_SYMBOL(A, B) NANOARROW_CAT(A, B)
                                  ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.h:722:29: 
note: expanded from macro 'NANOARROW_CAT'
   #define NANOARROW_CAT(A, B) A##B
                               ^
   note: expanded from here
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1867:7: 
note: Assuming 'private_data' is not equal to NULL
     if (private_data == NULL) {
         ^~~~~~~~~~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1867:3: 
note: Taking false branch
     if (private_data == NULL) {
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1883:7: 
note: 'result' is not equal to NANOARROW_OK
     if (result != NANOARROW_OK) {
         ^~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1883:3: 
note: Taking true branch
     if (result != NANOARROW_OK) {
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1884:5: 
note: Calling 'ArrowArrayRelease'
       array->release(array);
       ^~~~~~~~~~~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1755:7: 
note: 'private_data' is not equal to NULL
     if (private_data != NULL) {
         ^~~~~~~~~~~~
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1755:3: 
note: Taking true branch
     if (private_data != NULL) {
     ^
   
/home/runner/work/arrow-adbc/arrow-adbc/c/vendor/nanoarrow/nanoarrow.c:1759:5: 
note: Calling 'AdbcNsArrowFree'
       ArrowFree(private_data);
       ^
       EXPECT_THAT(AdbcDatabaseSetOption(database, "uri", uri, error), 
IsOkStatus(error));
       ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:5441:7: note: 
expanded from macro 'EXPECT_THAT'
         ::testing::internal::MakePredicateFormatterFromMatcher(matcher), value)
   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:109:23: 
note: expanded from macro 'EXPECT_PRED_FORMAT1'
     GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:100:17: 
note: expanded from macro 'GTEST_PRED_FORMAT1_'
     GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest_pred_impl.h:79:52: note: 
expanded from macro 'GTEST_ASSERT_'
     if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                                      ^~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:1588:39: 
note: Calling 'SafeMatcherCast<const unsigned char &, unsigned char>'
       const Matcher<const T&> matcher = SafeMatcherCast<const T&>(matcher_);
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:551:10: note: 
Calling 'MatcherCast<const unsigned char &, testing::Matcher<unsigned char>>'
     return MatcherCast<T>(matcher);
            ^~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:513:10: note: 
Calling 'MatcherCastImpl::Cast'
     return internal::MatcherCastImpl<T, M>::Cast(matcher);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:405:12: note: 
Calling constructor for 'Matcher<const unsigned char &>'
       return Matcher<T>(new Impl(source_matcher));
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest-matchers.h:508:9: note: 
Calling constructor for 'MatcherBase<const unsigned char &>'
         : internal::MatcherBase<T>(impl) {}
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest-matchers.h:312:5: note: 
Calling 'MatcherBase::Init'
       Init(impl);
       ^~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest-matchers.h:485:5: note: 
Calling 'ValuePolicy::Init'
       Policy::Init(*this, std::forward<M>(m));
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest-matchers.h:474:26: note: 
Memory is allocated
         m.buffer_.shared = new Shared(std::unique_ptr<M>(impl));
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest-matchers.h:485:5: note: 
Returned allocated memory
       Policy::Init(*this, std::forward<M>(m));
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest-matchers.h:312:5: note: 
Returned allocated memory
       Init(impl);
       ^~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gtest/gtest-matchers.h:508:9: note: 
Returning from constructor for 'MatcherBase<const unsigned char &>'
         : internal::MatcherBase<T>(impl) {}
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:405:12: note: 
Returning from constructor for 'Matcher<const unsigned char &>'
       return Matcher<T>(new Impl(source_matcher));
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:513:10: note: 
Returned allocated memory
     return internal::MatcherCastImpl<T, M>::Cast(matcher);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:551:10: note: 
Returned allocated memory
     return MatcherCast<T>(matcher);
            ^~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:1588:39: 
note: Returned allocated memory
       const Matcher<const T&> matcher = SafeMatcherCast<const T&>(matcher_);
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:1592:9: note: 
Assuming the condition is true
       if (matcher.Matches(x)) {
           ^~~~~~~~~~~~~~~~~~
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:1592:5: note: 
Taking true branch
       if (matcher.Matches(x)) {
       ^
   /usr/share/miniconda3/envs/test/include/gmock/gmock-matchers.h:1609:3: note: 
Potential leak of memory pointed to by 'matcher.buffer_.shared'
     }
   ```
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to