Merge pull request #928 from dbabokin/master
Adding missing AddressOfExpr::GetLValueType()
This commit is contained in:
13
expr.cpp
13
expr.cpp
@@ -7741,6 +7741,19 @@ AddressOfExpr::GetType() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const Type *
|
||||||
|
AddressOfExpr::GetLValueType() const {
|
||||||
|
if (!expr)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
const Type *type = expr->GetType();
|
||||||
|
if (!type)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return PointerType::GetUniform(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Symbol *
|
Symbol *
|
||||||
AddressOfExpr::GetBaseSymbol() const {
|
AddressOfExpr::GetBaseSymbol() const {
|
||||||
return expr ? expr->GetBaseSymbol() : NULL;
|
return expr ? expr->GetBaseSymbol() : NULL;
|
||||||
|
|||||||
1
expr.h
1
expr.h
@@ -543,6 +543,7 @@ public:
|
|||||||
|
|
||||||
llvm::Value *GetValue(FunctionEmitContext *ctx) const;
|
llvm::Value *GetValue(FunctionEmitContext *ctx) const;
|
||||||
const Type *GetType() const;
|
const Type *GetType() const;
|
||||||
|
const Type *GetLValueType() const;
|
||||||
Symbol *GetBaseSymbol() const;
|
Symbol *GetBaseSymbol() const;
|
||||||
void Print() const;
|
void Print() const;
|
||||||
Expr *TypeCheck();
|
Expr *TypeCheck();
|
||||||
|
|||||||
24
tests/ref-10.ispc
Normal file
24
tests/ref-10.ispc
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
export uniform int width() { return programCount; }
|
||||||
|
|
||||||
|
|
||||||
|
struct Foo {
|
||||||
|
float a, b, c;
|
||||||
|
};
|
||||||
|
|
||||||
|
void foo(Foo &f, uniform int dim) {
|
||||||
|
(&f.a)[dim] += (&f.a)[dim];
|
||||||
|
}
|
||||||
|
|
||||||
|
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||||
|
Foo f = { b, aFOO[programIndex], 1 };
|
||||||
|
if (programIndex < 2)
|
||||||
|
foo(f, 0);
|
||||||
|
RET[programIndex] = f.a + f.b + f.c;
|
||||||
|
}
|
||||||
|
|
||||||
|
export void result(uniform float RET[]) {
|
||||||
|
RET[programIndex] = 7+programIndex;
|
||||||
|
RET[0] = 12;
|
||||||
|
RET[1] = 13;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user