yaxunl added inline comments.

================
Comment at: lib/Sema/SemaInit.cpp:6945
@@ +6944,3 @@
+          // get the integer literal.
+          Init = cast<ImplicitCastExpr>(const_cast<Expr*>(
+            Var->getInit()))->getSubExpr();
----------------
Anastasia wrote:
> What if global variable sampler is initialized with another sampler variable:
>   sampler_t s1 = ...;
>   sampler_t s2 = s1;
>   ...
>   foo(s2);
> 
> Btw, I am wondering whether this code is needed at all, because I am guessing 
> variable initialization will be handled separately anyways, irrespective to 
> whether it's being used in a call or not...
clang currently does not allow assigning a sampler global variable with another 
sampler global variable. An error will be emitted:

 initializer element is not a compile-time constant

We could allow this, but I think allowing this is not a very useful feature, so 
I would recommend continue not allowing it.

If we do not replace references of function-scope sampler variable with its 
initializer here, we will end up with a global variable initialized with an 
integer and we will not be able to do codegen for it as in LLVM we cannot 
initialize a global variable with a function call.


https://reviews.llvm.org/D21567



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

Reply via email to