Non-functional: consistently use 'const TSourceLoc&' to pass location.
This commit is contained in:
parent
b60e067b43
commit
6c37bbbb03
@ -113,7 +113,7 @@ TIntermSymbol* TIntermediate::addSymbol(const TType& type, const TSourceLoc& loc
|
|||||||
//
|
//
|
||||||
// Returns nullptr if the working conversions and promotions could not be found.
|
// Returns nullptr if the working conversions and promotions could not be found.
|
||||||
//
|
//
|
||||||
TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc)
|
TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIntermTyped* right, const TSourceLoc& loc)
|
||||||
{
|
{
|
||||||
// No operations work on blocks
|
// No operations work on blocks
|
||||||
if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock)
|
if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock)
|
||||||
@ -226,13 +226,12 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn
|
|||||||
//
|
//
|
||||||
// Low level: add binary node (no promotions or other argument modifications)
|
// Low level: add binary node (no promotions or other argument modifications)
|
||||||
//
|
//
|
||||||
TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc) const
|
TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right,
|
||||||
|
const TSourceLoc& loc) const
|
||||||
{
|
{
|
||||||
// build the node
|
// build the node
|
||||||
TIntermBinary* node = new TIntermBinary(op);
|
TIntermBinary* node = new TIntermBinary(op);
|
||||||
if (loc.line == 0)
|
node->setLoc(loc.line != 0 ? loc : left->getLoc());
|
||||||
loc = left->getLoc();
|
|
||||||
node->setLoc(loc);
|
|
||||||
node->setLeft(left);
|
node->setLeft(left);
|
||||||
node->setRight(right);
|
node->setRight(right);
|
||||||
|
|
||||||
@ -242,7 +241,8 @@ TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TI
|
|||||||
//
|
//
|
||||||
// like non-type form, but sets node's type.
|
// like non-type form, but sets node's type.
|
||||||
//
|
//
|
||||||
TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc, const TType& type) const
|
TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right,
|
||||||
|
const TSourceLoc& loc, const TType& type) const
|
||||||
{
|
{
|
||||||
TIntermBinary* node = addBinaryNode(op, left, right, loc);
|
TIntermBinary* node = addBinaryNode(op, left, right, loc);
|
||||||
node->setType(type);
|
node->setType(type);
|
||||||
@ -252,12 +252,10 @@ TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TI
|
|||||||
//
|
//
|
||||||
// Low level: add unary node (no promotions or other argument modifications)
|
// Low level: add unary node (no promotions or other argument modifications)
|
||||||
//
|
//
|
||||||
TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc loc) const
|
TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, const TSourceLoc& loc) const
|
||||||
{
|
{
|
||||||
TIntermUnary* node = new TIntermUnary(op);
|
TIntermUnary* node = new TIntermUnary(op);
|
||||||
if (loc.line == 0)
|
node->setLoc(loc.line != 0 ? loc : child->getLoc());
|
||||||
loc = child->getLoc();
|
|
||||||
node->setLoc(loc);
|
|
||||||
node->setOperand(child);
|
node->setOperand(child);
|
||||||
|
|
||||||
return node;
|
return node;
|
||||||
@ -266,7 +264,8 @@ TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSo
|
|||||||
//
|
//
|
||||||
// like non-type form, but sets node's type.
|
// like non-type form, but sets node's type.
|
||||||
//
|
//
|
||||||
TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc loc, const TType& type) const
|
TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, const TSourceLoc& loc, const TType& type)
|
||||||
|
const
|
||||||
{
|
{
|
||||||
TIntermUnary* node = addUnaryNode(op, child, loc);
|
TIntermUnary* node = addUnaryNode(op, child, loc);
|
||||||
node->setType(type);
|
node->setType(type);
|
||||||
@ -281,7 +280,8 @@ TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSo
|
|||||||
// Returns nullptr if the 'right' type could not be converted to match the 'left' type,
|
// Returns nullptr if the 'right' type could not be converted to match the 'left' type,
|
||||||
// or the resulting operation cannot be properly promoted.
|
// or the resulting operation cannot be properly promoted.
|
||||||
//
|
//
|
||||||
TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc)
|
TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right,
|
||||||
|
const TSourceLoc& loc)
|
||||||
{
|
{
|
||||||
// No block assignment
|
// No block assignment
|
||||||
if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock)
|
if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock)
|
||||||
@ -338,7 +338,8 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm
|
|||||||
// Returns the added node.
|
// Returns the added node.
|
||||||
// The caller should set the type of the returned node.
|
// The caller should set the type of the returned node.
|
||||||
//
|
//
|
||||||
TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc loc)
|
TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index,
|
||||||
|
const TSourceLoc& loc)
|
||||||
{
|
{
|
||||||
// caller should set the type
|
// caller should set the type
|
||||||
return addBinaryNode(op, base, index, loc);
|
return addBinaryNode(op, base, index, loc);
|
||||||
@ -349,7 +350,8 @@ TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermT
|
|||||||
//
|
//
|
||||||
// Returns the added node.
|
// Returns the added node.
|
||||||
//
|
//
|
||||||
TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSourceLoc loc)
|
TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child,
|
||||||
|
const TSourceLoc& loc)
|
||||||
{
|
{
|
||||||
if (child == 0)
|
if (child == 0)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@ -495,7 +497,8 @@ TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOper
|
|||||||
// Returns an aggregate node, which could be the one passed in if
|
// Returns an aggregate node, which could be the one passed in if
|
||||||
// it was already an aggregate.
|
// it was already an aggregate.
|
||||||
//
|
//
|
||||||
TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator op, const TType& type, TSourceLoc loc)
|
TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator op, const TType& type,
|
||||||
|
const TSourceLoc& loc)
|
||||||
{
|
{
|
||||||
TIntermAggregate* aggNode;
|
TIntermAggregate* aggNode;
|
||||||
|
|
||||||
@ -510,8 +513,6 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o
|
|||||||
//
|
//
|
||||||
aggNode = new TIntermAggregate();
|
aggNode = new TIntermAggregate();
|
||||||
aggNode->getSequence().push_back(node);
|
aggNode->getSequence().push_back(node);
|
||||||
if (loc.line == 0)
|
|
||||||
loc = node->getLoc();
|
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
aggNode = new TIntermAggregate();
|
aggNode = new TIntermAggregate();
|
||||||
@ -520,8 +521,8 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o
|
|||||||
// Set the operator.
|
// Set the operator.
|
||||||
//
|
//
|
||||||
aggNode->setOperator(op);
|
aggNode->setOperator(op);
|
||||||
if (loc.line != 0)
|
if (loc.line != 0 || node != nullptr)
|
||||||
aggNode->setLoc(loc);
|
aggNode->setLoc(loc.line != 0 ? loc : node->getLoc());
|
||||||
|
|
||||||
aggNode->setType(type);
|
aggNode->setType(type);
|
||||||
|
|
||||||
|
@ -430,10 +430,10 @@ public:
|
|||||||
TIntermTyped* addConversion(TBasicType convertTo, TIntermTyped* node) const;
|
TIntermTyped* addConversion(TBasicType convertTo, TIntermTyped* node) const;
|
||||||
void addBiShapeConversion(TOperator, TIntermTyped*& lhsNode, TIntermTyped*& rhsNode);
|
void addBiShapeConversion(TOperator, TIntermTyped*& lhsNode, TIntermTyped*& rhsNode);
|
||||||
TIntermTyped* addShapeConversion(const TType&, TIntermTyped*);
|
TIntermTyped* addShapeConversion(const TType&, TIntermTyped*);
|
||||||
TIntermTyped* addBinaryMath(TOperator, TIntermTyped* left, TIntermTyped* right, TSourceLoc);
|
TIntermTyped* addBinaryMath(TOperator, TIntermTyped* left, TIntermTyped* right, const TSourceLoc&);
|
||||||
TIntermTyped* addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc);
|
TIntermTyped* addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, const TSourceLoc&);
|
||||||
TIntermTyped* addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc);
|
TIntermTyped* addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, const TSourceLoc&);
|
||||||
TIntermTyped* addUnaryMath(TOperator, TIntermTyped* child, TSourceLoc);
|
TIntermTyped* addUnaryMath(TOperator, TIntermTyped* child, const TSourceLoc&);
|
||||||
TIntermTyped* addBuiltInFunctionCall(const TSourceLoc& line, TOperator, bool unary, TIntermNode*, const TType& returnType);
|
TIntermTyped* addBuiltInFunctionCall(const TSourceLoc& line, TOperator, bool unary, TIntermNode*, const TType& returnType);
|
||||||
bool canImplicitlyPromote(TBasicType from, TBasicType to, TOperator op = EOpNull) const;
|
bool canImplicitlyPromote(TBasicType from, TBasicType to, TOperator op = EOpNull) const;
|
||||||
bool isIntegralPromotion(TBasicType from, TBasicType to) const;
|
bool isIntegralPromotion(TBasicType from, TBasicType to) const;
|
||||||
@ -447,7 +447,7 @@ public:
|
|||||||
TIntermAggregate* makeAggregate(TIntermNode* node);
|
TIntermAggregate* makeAggregate(TIntermNode* node);
|
||||||
TIntermAggregate* makeAggregate(TIntermNode* node, const TSourceLoc&);
|
TIntermAggregate* makeAggregate(TIntermNode* node, const TSourceLoc&);
|
||||||
TIntermAggregate* makeAggregate(const TSourceLoc&);
|
TIntermAggregate* makeAggregate(const TSourceLoc&);
|
||||||
TIntermTyped* setAggregateOperator(TIntermNode*, TOperator, const TType& type, TSourceLoc);
|
TIntermTyped* setAggregateOperator(TIntermNode*, TOperator, const TType& type, const TSourceLoc&);
|
||||||
bool areAllChildConst(TIntermAggregate* aggrNode);
|
bool areAllChildConst(TIntermAggregate* aggrNode);
|
||||||
TIntermSelection* addSelection(TIntermTyped* cond, TIntermNodePair code, const TSourceLoc&);
|
TIntermSelection* addSelection(TIntermTyped* cond, TIntermNodePair code, const TSourceLoc&);
|
||||||
TIntermTyped* addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, const TSourceLoc&);
|
TIntermTyped* addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, const TSourceLoc&);
|
||||||
@ -476,10 +476,11 @@ public:
|
|||||||
|
|
||||||
// Low level functions to add nodes (no conversions or other higher level transformations)
|
// Low level functions to add nodes (no conversions or other higher level transformations)
|
||||||
// If a type is provided, the node's type will be set to it.
|
// If a type is provided, the node's type will be set to it.
|
||||||
TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc) const;
|
TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, const TSourceLoc&) const;
|
||||||
TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc, const TType&) const;
|
TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, const TSourceLoc&,
|
||||||
TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc) const;
|
const TType&) const;
|
||||||
TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc, const TType&) const;
|
TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, const TSourceLoc&) const;
|
||||||
|
TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, const TSourceLoc&, const TType&) const;
|
||||||
|
|
||||||
// Constant folding (in Constant.cpp)
|
// Constant folding (in Constant.cpp)
|
||||||
TIntermTyped* fold(TIntermAggregate* aggrNode);
|
TIntermTyped* fold(TIntermAggregate* aggrNode);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user