[llvm-dev] Is ArrayRef supposed to be immutable?

Chris Lattner via llvm-dev llvm-dev at lists.llvm.org
Sun Oct 1 16:01:31 PDT 2017


+1, totally a bug.  That’s the domain of MutableArrayRef.

-Chris

> On Oct 1, 2017, at 6:52 AM, David Blaikie via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> +1 seems like a bug
> 
> On Sun, Oct 1, 2017 at 12:35 AM Reid Kleckner via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> It wraps a constant T* and a size_t, so I'm surprised std::sort works. It shouldn't.
> 
> On Sep 30, 2017 5:22 PM, "Daniel Berlin via llvm-dev" <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> It seems like ArrayRefs are supposed to be immutable (
> However, as far as i can tell, the iterators are defined wrong to make this true.
> 
> While 
> ArrayRef<int> Foo(Something);
> Foo[0] = 5;
> 
> will give a compile time error.
> 
> something like:
> 
> ArrayRef<int> Foo(Something);
> std::sort(Foo.begin(), Foo.end());
> 
> Will work fine.
> 
> Is this expected?
> 
> (FWIW: I expected this to only work with a MutableArrayRef)
> 
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171001/06f71bae/attachment.html>


More information about the llvm-dev mailing list