erichkeane wrote:

> Hi @sdkrystian - this appears to break in a circumstance where a custom 
> iterator class defines the postfix operator:
> 
> ```
> FAILED: host_x64/obj/src/lib/zbitl/tests/zbitl-unittests.mem-config-test.cc.o
> ../../prebuilt/third_party/clang/custom/bin/clang++ -MD -MF 
> host_x64/obj/src/lib/zbitl/tests/zbitl-unittests.mem-config-test.cc.o.d 
> -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS 
> -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES 
> -DRAPIDJSON_HAS_STDSTRING -DRAPIDJSON_HAS_CXX11_RANGE_FOR 
> -DRAPIDJSON_HAS_CXX11_RVALUE_REFS -DRAPIDJSON_HAS_CXX11_TYPETRAITS 
> -DRAPIDJSON_HAS_CXX11_N...
> In file included from ../../src/lib/zbitl/tests/mem-config-test.cc:6:
> ../../src/lib/zbitl/include/lib/zbitl/items/mem-config.h:61:7: error: 
> expression is not assignable
>    61 |       ++this;
>       |       ^ ~~~~
> 1 error generated.
> ```
> 
> I went ahead and attached a reproducer. Could you please revert this change 
> and investigate?
> 
> [clang-crashreports.tar.gz](https://github.com/llvm/llvm-project/files/15337912/clang-crashreports.tar.gz)

If the iterator is trying to call its own increment operator, that probably 
should be `++*this`.

At the moment it is trying to do something that I'd be shocked if it isn't UB, 
which is incrementing 'this' itself, which is a pointer.

https://github.com/llvm/llvm-project/pull/92283
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to