Hash :
b38dfde0
Author :
Date :
2018-01-04T15:49:03
Keep TIntermSymbol nodes consistent in PruneNoOps Create new TVariables to change struct declaration qualifiers in PruneNoOps so that the node doesn't end up with an inconsistent qualifier from the variable. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I7f6cd557eb3e46f4ead4ffbe37d8960ff7776d10 Reviewed-on: https://chromium-review.googlesource.com/850673 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
//
// Copyright (c) 2002-2015 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// PruneNoOps.h: The PruneNoOps function prunes:
// 1. Empty declarations "int;". Empty declarators will be pruned as well, so for example:
// int , a;
// is turned into
// int a;
// 2. Literal statements: "1.0;". The ESSL output doesn't define a default precision for float,
// so float literal statements would end up with no precision which is invalid ESSL.
#ifndef COMPILER_TRANSLATOR_PRUNENOOPS_H_
#define COMPILER_TRANSLATOR_PRUNENOOPS_H_
namespace sh
{
class TIntermBlock;
class TSymbolTable;
void PruneNoOps(TIntermBlock *root, TSymbolTable *symbolTable);
}
#endif // COMPILER_TRANSLATOR_PRUNENOOPS_H_