When evaluating whether an allocated type contains a pointer to generate the `alloc_token` metadata, `typeContainsPointer` incorrectly stopped recursion upon encountering an `AtomicType`. This resulted in types like `_Atomic(int *)` (or `std::atomic<int *>` under libc++) being incorrectly evaluated as not containing a pointer. Add support for `AtomicType` in `typeContainsPointer` by recursively checking the contained type. Add tests for structs containing `_Atomic(int *)` and `_Atomic(int)`.
8.4 KiB
8.4 KiB