* using log directory ‘/data/gannet/ripley/R/packages/tests-clang-ASAN/terra.Rcheck’ * using R Under development (unstable) (2026-03-08 r89578) * using platform: x86_64-pc-linux-gnu * R was compiled by clang version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) flang version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532) * running under: Fedora Linux 42 (Workstation Edition) * using session charset: UTF-8 * current time: 2026-03-09 03:06:23 UTC * using option ‘--no-stop-on-test-error’ * checking for file ‘terra/DESCRIPTION’ ... OK * checking extension type ... Package * this is package ‘terra’ version ‘1.9-1’ * package encoding: UTF-8 * checking package dependencies ... OK * checking if this is a source package ... OK * checking if there is a namespace ... OK * checking for hidden files and directories ... OK * checking for portable file names ... OK * checking whether package ‘terra’ can be installed ... [982s/310s] OK * used C compiler: ‘clang version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532)’ * used C++ compiler: ‘clang version 22.1.0 (https://github.com/llvm/llvm-project 4434dabb69916856b824f68a64b029c67175e532)’ * checking C++ specification ... INFO specified C++17 * checking package directory ... OK * checking whether the package can be loaded ... [21s/21s] OK * checking whether the package can be loaded with stated dependencies ... [21s/22s] OK * checking whether the package can be unloaded cleanly ... [20s/21s] OK * checking whether the namespace can be loaded with stated dependencies ... [21s/22s] OK * checking whether the namespace can be unloaded cleanly ... [21s/22s] OK * checking loading without being on the library search path ... [21s/21s] OK * checking compiled code ... OK * checking examples ... [137s/141s] ERROR Running examples in ‘terra-Ex.R’ failed The error most likely occurred in: > ### Name: subst > ### Title: replace cell values > ### Aliases: subst subst,SpatRaster-method > ### Keywords: spatial > > ### ** Examples > > r <- rast(ncols=5, nrows=5, xmin=0, xmax=1, ymin=0, ymax=1, crs="") > r <- init(r, 1:6) > x <- subst(r, 3, 7) > x <- subst(r, 2:3, NA) ================================================================= ==90442==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x7b67aa18f458 at pc 0x7b479b30d34e bp 0x7ffd123903f0 sp 0x7ffd123903e8 READ of size 8 at 0x7b67aa18f458 thread T0 #0 0x7b479b30d34d in SpatRaster::lookup_apply(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&) /data/gannet/ripley/R/packages/tests-clang-ASAN/terra/src/raster_methods.cpp:79:15 #1 0x7b479b30dad7 in SpatRaster::lookup_subst(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&) /data/gannet/ripley/R/packages/tests-clang-ASAN/terra/src/raster_methods.cpp:146:9 #2 0x7b479b0749e1 in Rcpp::CppMethodImplN>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**)::'lambda'(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&)::operator()(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&) const /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/Module.h:385:24 #3 0x7b479b0745a2 in SEXPREC* Rcpp::internal::call_impl>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**)::'lambda'(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&), SpatRaster, std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&, 0, 1, 2, 3, 4, (void*)0>(Rcpp::CppMethodImplN>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**)::'lambda'(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&) const&, SEXPREC**, Rcpp::internal::type_pack>, std::__1::vector>, bool, double, SpatOptions&>, Rcpp::traits::index_sequence<0, 1, 2, 3, 4>) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/internal/call.h:23:23 #4 0x7b479b07425b in SEXPREC* Rcpp::call>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**)::'lambda'(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&), SpatRaster, std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&>(Rcpp::CppMethodImplN>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**)::'lambda'(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&) const&, SEXPREC**) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/internal/call.h:47:12 #5 0x7b479b07425b in Rcpp::CppMethodImplN>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/Module.h:387:20 #6 0x7b479afe7bd9 in Rcpp::class_::invoke_notvoid(SEXPREC*, SEXPREC*, SEXPREC**, int) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/module/class.h:241:23 #7 0x7b479c1c87b8 in CppMethod__invoke_notvoid(SEXPREC*) (/data/gannet/ripley/R/test-clang/Rcpp/libs/Rcpp.so+0x477b8) #8 0x55c5fe63cddc in do_External /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:576:11 #9 0x55c5fe6edd77 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1260:9 #10 0x55c5fe744149 in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2992:10 #11 0x55c5fe6ed9b0 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232:12 #12 0x55c5fe73593c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2389:39 #13 0x55c5fe734b01 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2302:16 #14 0x55c5fe70f847 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2324:16 #15 0x55c5fe70f847 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8103:16 #16 0x55c5fe6eef34 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7515:16 #17 0x55c5fe6ed471 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #18 0x55c5fe73593c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2389:39 #19 0x55c5fe73f4ea in R_execMethod /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2558:11 #20 0x7f47acc67f40 in R_dispatchGeneric /data/gannet/ripley/R/svn/R-devel/src/library/methods/src/methods_list_dispatch.c:1154:19 #21 0x55c5fe803663 in do_standardGeneric /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:1348:13 #22 0x55c5fe70a3bf in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8067:12 #23 0x55c5fe6eef34 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7515:16 #24 0x55c5fe6ed471 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #25 0x55c5fe73593c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2389:39 #26 0x55c5fe734b01 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2302:16 #27 0x55c5fe6ede96 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2324:16 #28 0x55c5fe6ede96 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280:12 #29 0x55c5fe746fa5 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3581:8 #30 0x55c5fe6ed9b0 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232:12 #31 0x55c5fe7bd9f1 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:264:23 #32 0x55c5fe7c0220 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317:11 #33 0x55c5fe7c0220 in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1235:5 #34 0x55c5fe7c02b2 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1242:5 #35 0x55c5fe4c8d3c in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29:5 #36 0x7f47ace12574 in __libc_start_call_main (/lib64/libc.so.6+0x3574) (BuildId: 92b5376d35bb29c098175948cf3e7cbcae3aeae1) #37 0x7f47ace12627 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3627) (BuildId: 92b5376d35bb29c098175948cf3e7cbcae3aeae1) #38 0x55c5fe3e07d4 in _start (/data/gannet/ripley/R/clang-ASAN/bin/exec/R+0x17d4) 0x7b67aa18f458 is located 0 bytes after 8-byte region [0x7b67aa18f450,0x7b67aa18f458) allocated by thread T0 here: #0 0x55c5fe485bb4 in malloc /home/runner/work/llvm-project/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3 #1 0x7f47aaa1f3fb in operator new(unsigned long) (/lib64/libstdc++.so.6+0x1f3fb) (BuildId: 51787ae23973475ac7373bc252b400c7229de8e7) #2 0x7b479b30daaf in std::__1::vector>::vector[abi:nqe220100](std::__1::vector> const&) /data/gannet2/ripley/Sources/LLVM/LLVM-22.1.0-Linux-X64/bin/../include/c++/v1/__vector/vector.h:264:5 #3 0x7b479b30daaf in SpatRaster::lookup_subst(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&) /data/gannet/ripley/R/packages/tests-clang-ASAN/terra/src/raster_methods.cpp:146:33 #4 0x7b479b0749e1 in Rcpp::CppMethodImplN>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**)::'lambda'(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&)::operator()(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&) const /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/Module.h:385:24 #5 0x7b479b0745a2 in SEXPREC* Rcpp::internal::call_impl>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**)::'lambda'(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&), SpatRaster, std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&, 0, 1, 2, 3, 4, (void*)0>(Rcpp::CppMethodImplN>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**)::'lambda'(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&) const&, SEXPREC**, Rcpp::internal::type_pack>, std::__1::vector>, bool, double, SpatOptions&>, Rcpp::traits::index_sequence<0, 1, 2, 3, 4>) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/internal/call.h:23:23 #6 0x7b479b07425b in SEXPREC* Rcpp::call>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**)::'lambda'(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&), SpatRaster, std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&>(Rcpp::CppMethodImplN>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**)::'lambda'(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&) const&, SEXPREC**) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/internal/call.h:47:12 #7 0x7b479b07425b in Rcpp::CppMethodImplN>, std::__1::vector>, bool, double, SpatOptions&>::operator()(SpatRaster*, SEXPREC**) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/Module.h:387:20 #8 0x7b479afe7bd9 in Rcpp::class_::invoke_notvoid(SEXPREC*, SEXPREC*, SEXPREC**, int) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/module/class.h:241:23 #9 0x7b479c1c87b8 in CppMethod__invoke_notvoid(SEXPREC*) (/data/gannet/ripley/R/test-clang/Rcpp/libs/Rcpp.so+0x477b8) #10 0x55c5fe6edd77 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1260:9 #11 0x55c5fe744149 in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2992:10 #12 0x55c5fe6ed9b0 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232:12 #13 0x55c5fe73593c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2389:39 #14 0x55c5fe734b01 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2302:16 #15 0x55c5fe70f847 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2324:16 #16 0x55c5fe70f847 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8103:16 #17 0x55c5fe6eef34 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7515:16 #18 0x55c5fe6ed471 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #19 0x55c5fe73593c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2389:39 #20 0x55c5fe73f4ea in R_execMethod /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2558:11 #21 0x7f47acc67f40 in R_dispatchGeneric /data/gannet/ripley/R/svn/R-devel/src/library/methods/src/methods_list_dispatch.c:1154:19 #22 0x55c5fe803663 in do_standardGeneric /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:1348:13 #23 0x55c5fe70a3bf in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8067:12 #24 0x55c5fe6eef34 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7515:16 #25 0x55c5fe6ed471 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #26 0x55c5fe73593c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2389:39 #27 0x55c5fe734b01 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2302:16 #28 0x55c5fe6ede96 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2324:16 #29 0x55c5fe6ede96 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280:12 #30 0x55c5fe746fa5 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3581:8 #31 0x55c5fe6ed9b0 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232:12 #32 0x55c5fe7bd9f1 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:264:23 #33 0x55c5fe7c0220 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317:11 #34 0x55c5fe7c0220 in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1235:5 SUMMARY: AddressSanitizer: heap-buffer-overflow /data/gannet/ripley/R/packages/tests-clang-ASAN/terra/src/raster_methods.cpp:79:15 in SpatRaster::lookup_apply(std::__1::vector>, std::__1::vector>, bool, double, SpatOptions&) Shadow bytes around the buggy address: 0x7b67aa18f180: fa fa fd fa fa fa 00 fa fa fa fd fa fa fa fd fd 0x7b67aa18f200: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fd 0x7b67aa18f280: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x7b67aa18f300: fa fa 00 fa fa fa fd fa fa fa fd fa fa fa fa fa 0x7b67aa18f380: fa fa fd fa fa fa fa fa fa fa fd fa fa fa fa fa =>0x7b67aa18f400: fa fa fa fa fa fa 00 00 fa fa 00[fa]fa fa fa fa 0x7b67aa18f480: fa fa fa fa fa fa fa fa fa fa fd fa fa fa fd fd 0x7b67aa18f500: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x7b67aa18f580: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x7b67aa18f600: fa fa fa fa fa fa fd fd fa fa fa fa fa fa fd fd 0x7b67aa18f680: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fd fd Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==90442==ABORTING * checking tests ... [49s/49s] OK Running ‘tinytest.R’ [48s/48s] * DONE Status: 1 ERROR