mzolotukhin added a comment.

Oh, I see. So, you meant something like this?

  void foo(std::vector<float * __attribute__((nontemporal))> av, float * b, int 
N) {
    for (auto a: av)      // << `a` doesn't have nontemporal attribute here
      for (int i = 0; i < N; i++)
        a[i] = b[i]+1;
  }

One can easily work around it by using an explicit type here (`float * 
__attribute__((nontemporal))` instead of `auto`), but I agree that disappeared 
attribute might be a surprise for the user. Do you think it would be a frequent 
case?

BTW, there are other type attributes, which also suffer from the same issue, 
e.g. `vector_size`. What was the rationale of making them type attributes?


http://reviews.llvm.org/D12221



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to