Commit 80d934bb by Jamie Madill

Enable MSVS warning 4512.

Fix up the missing DISALLOW_COPY_AND_ASSIGN macros and various small problems preventing us from turning on this warning. This should ensure we more often use the DISALLOW macro going forward. Change-Id: I2e1a9d23a31a51279a577fad8dffb8c1530e2ee8 Reviewed-on: https://chromium-review.googlesource.com/251100Tested-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCooper Partin <coopp@microsoft.com> Tested-by: 's avatarCooper Partin <coopp@microsoft.com> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 7c1f6f19
......@@ -11,7 +11,7 @@
'angle_build_winrt%': '0',
'angle_build_winphone%': '0',
},
'msvs_disabled_warnings': [ 4075, 4100, 4127, 4239, 4244, 4245, 4251, 4264, 4267, 4447, 4512, 4702, 4718 ],
'msvs_disabled_warnings': [ 4075, 4100, 4127, 4239, 4244, 4245, 4251, 4264, 4267, 4447, 4702, 4718 ],
'msvs_system_include_dirs':
[
'<(windows_sdk_path)/Include/shared',
......
......@@ -7,6 +7,7 @@
#ifndef COMPILER_TRANSLATOR_DIAGNOSTICS_H_
#define COMPILER_TRANSLATOR_DIAGNOSTICS_H_
#include "common/angleutils.h"
#include "compiler/preprocessor/DiagnosticsBase.h"
class TInfoSink;
......@@ -36,6 +37,8 @@ class TDiagnostics : public pp::Diagnostics
const std::string& text);
private:
DISALLOW_COPY_AND_ASSIGN(TDiagnostics);
TInfoSink& mInfoSink;
int mNumErrors;
int mNumWarnings;
......
......@@ -7,6 +7,7 @@
#ifndef COMPILER_TRANSLATOR_DIRECTIVEHANDLER_H_
#define COMPILER_TRANSLATOR_DIRECTIVEHANDLER_H_
#include "common/angleutils.h"
#include "compiler/translator/ExtensionBehavior.h"
#include "compiler/translator/Pragma.h"
#include "compiler/preprocessor/DirectiveHandlerBase.h"
......@@ -41,6 +42,8 @@ class TDirectiveHandler : public pp::DirectiveHandler
int version);
private:
DISALLOW_COPY_AND_ASSIGN(TDirectiveHandler);
TPragma mPragma;
TExtensionBehavior& mExtensionBehavior;
TDiagnostics& mDiagnostics;
......
......@@ -21,6 +21,7 @@
#include <algorithm>
#include <queue>
#include "common/angleutils.h"
#include "compiler/translator/Common.h"
#include "compiler/translator/Types.h"
#include "compiler/translator/ConstantUnion.h"
......@@ -589,6 +590,9 @@ class TIntermTraverser
// During traversing, save all the changes that need to happen into
// mReplacements, then do them by calling updateTree().
std::vector<NodeUpdateEntry> mReplacements;
private:
DISALLOW_COPY_AND_ASSIGN(TIntermTraverser);
};
//
......@@ -610,10 +614,13 @@ class TMaxDepthTraverser : public TIntermTraverser
virtual bool visitLoop(Visit, TIntermLoop *) { return depthCheck(); }
virtual bool visitBranch(Visit, TIntermBranch *) { return depthCheck(); }
protected:
protected:
bool depthCheck() const { return mMaxDepth < mDepthLimit; }
int mDepthLimit;
private:
DISALLOW_COPY_AND_ASSIGN(TMaxDepthTraverser);
};
#endif // COMPILER_TRANSLATOR_INTERMNODE_H_
......@@ -21,9 +21,23 @@ Std140PaddingHelper::Std140PaddingHelper(const std::map<TString, int> &structEle
unsigned *uniqueCounter)
: mPaddingCounter(uniqueCounter),
mElementIndex(0),
mStructElementIndexes(structElementIndexes)
mStructElementIndexes(&structElementIndexes)
{}
Std140PaddingHelper::Std140PaddingHelper(const Std140PaddingHelper &other)
: mPaddingCounter(other.mPaddingCounter),
mElementIndex(other.mElementIndex),
mStructElementIndexes(other.mStructElementIndexes)
{}
Std140PaddingHelper &Std140PaddingHelper::operator=(const Std140PaddingHelper &other)
{
mPaddingCounter = other.mPaddingCounter;
mElementIndex = other.mElementIndex;
mStructElementIndexes = other.mStructElementIndexes;
return *this;
}
TString Std140PaddingHelper::next()
{
unsigned value = (*mPaddingCounter)++;
......@@ -107,7 +121,7 @@ TString Std140PaddingHelper::postPaddingString(const TType &type, bool useHLSLRo
{
const TString &structName = QualifiedStructNameString(*structure,
useHLSLRowMajorPacking, true);
numComponents = mStructElementIndexes.find(structName)->second;
numComponents = mStructElementIndexes->find(structName)->second;
if (numComponents == 0)
{
......
......@@ -27,7 +27,9 @@ class Std140PaddingHelper
{
public:
explicit Std140PaddingHelper(const std::map<TString, int> &structElementIndexes,
unsigned *uniqueCounter);
unsigned int *uniqueCounter);
Std140PaddingHelper(const Std140PaddingHelper &other);
Std140PaddingHelper &operator=(const Std140PaddingHelper &other);
int elementIndex() const { return mElementIndex; }
int prePadding(const TType &type);
......@@ -39,7 +41,7 @@ class Std140PaddingHelper
unsigned *mPaddingCounter;
int mElementIndex;
const std::map<TString, int> &mStructElementIndexes;
const std::map<TString, int> *mStructElementIndexes;
};
class StructureHLSL
......@@ -56,6 +58,8 @@ class StructureHLSL
Std140PaddingHelper getPaddingHelper();
private:
DISALLOW_COPY_AND_ASSIGN(StructureHLSL);
unsigned mUniquePaddingCounter;
std::map<TString, int> mStd140StructElementIndexes;
......
......@@ -39,6 +39,8 @@ class UniformHLSL
}
private:
DISALLOW_COPY_AND_ASSIGN(UniformHLSL);
TString interfaceBlockString(const TInterfaceBlock &interfaceBlock, unsigned int registerIndex, unsigned int arrayIndex);
TString interfaceBlockMembersString(const TInterfaceBlock &interfaceBlock, TLayoutBlockStorage blockStorage);
TString interfaceBlockStructString(const TInterfaceBlock &interfaceBlock);
......
......@@ -33,6 +33,8 @@ class CollectVariables : public TIntermTraverser
virtual bool visitBinary(Visit visit, TIntermBinary *binaryNode);
private:
DISALLOW_COPY_AND_ASSIGN(CollectVariables);
template <typename VarT>
void visitVariable(const TIntermSymbol *variable, std::vector<VarT> *infoList) const;
......
......@@ -115,6 +115,9 @@ class TDependencyGraphBuilder : public TIntermTraverser
~TNodeSetMaintainer() { mSets.popSet(); }
protected:
TNodeSetStack &mSets;
private:
DISALLOW_COPY_AND_ASSIGN(TNodeSetMaintainer);
};
//
......@@ -133,6 +136,8 @@ class TDependencyGraphBuilder : public TIntermTraverser
~TNodeSetPropagatingMaintainer() { mSets.popSetIntoNext(); }
protected:
TNodeSetStack &mSets;
private:
DISALLOW_COPY_AND_ASSIGN(TNodeSetPropagatingMaintainer);
};
//
......@@ -169,6 +174,8 @@ class TDependencyGraphBuilder : public TIntermTraverser
protected:
TSymbolStack& mLeftmostSymbols;
bool mNeedsPlaceholderSymbol;
private:
DISALLOW_COPY_AND_ASSIGN(TLeftmostSymbolMaintainer);
};
TDependencyGraphBuilder(TDependencyGraph *graph)
......
......@@ -10,18 +10,21 @@
#include "compiler/translator/depgraph/DependencyGraph.h"
#include "compiler/translator/InfoSink.h"
class TDependencyGraphOutput : public TDependencyGraphTraverser {
public:
class TDependencyGraphOutput : public TDependencyGraphTraverser
{
public:
TDependencyGraphOutput(TInfoSinkBase& sink) : mSink(sink) {}
virtual void visitSymbol(TGraphSymbol* symbol);
virtual void visitArgument(TGraphArgument* parameter);
virtual void visitFunctionCall(TGraphFunctionCall* functionCall);
virtual void visitSelection(TGraphSelection* selection);
virtual void visitLoop(TGraphLoop* loop);
virtual void visitLogicalOp(TGraphLogicalOp* logicalOp);
void visitSymbol(TGraphSymbol* symbol) override;
void visitArgument(TGraphArgument* parameter) override;
void visitFunctionCall(TGraphFunctionCall* functionCall) override;
void visitSelection(TGraphSelection* selection) override;
void visitLoop(TGraphLoop* loop) override;
void visitLogicalOp(TGraphLogicalOp* logicalOp) override;
void outputAllSpanningTrees(TDependencyGraph& graph);
private:
private:
DISALLOW_COPY_AND_ASSIGN(TDependencyGraphOutput);
void outputIndentation();
TInfoSinkBase& mSink;
......
......@@ -12,23 +12,26 @@
class TInfoSinkBase;
class RestrictFragmentShaderTiming : TDependencyGraphTraverser {
public:
RestrictFragmentShaderTiming(TInfoSinkBase& sink);
void enforceRestrictions(const TDependencyGraph& graph);
class RestrictFragmentShaderTiming : TDependencyGraphTraverser
{
public:
RestrictFragmentShaderTiming(TInfoSinkBase &sink);
void enforceRestrictions(const TDependencyGraph &graph);
int numErrors() const { return mNumErrors; }
virtual void visitArgument(TGraphArgument* parameter);
virtual void visitSelection(TGraphSelection* selection);
virtual void visitLoop(TGraphLoop* loop);
virtual void visitLogicalOp(TGraphLogicalOp* logicalOp);
void visitArgument(TGraphArgument *parameter) override;
void visitSelection(TGraphSelection *selection) override;
void visitLoop(TGraphLoop *loop) override;
void visitLogicalOp(TGraphLogicalOp *logicalOp) override;
private:
void beginError(const TIntermNode* node);
void validateUserDefinedFunctionCallUsage(const TDependencyGraph& graph);
bool isSamplingOp(const TIntermAggregate* intermFunctionCall) const;
private:
DISALLOW_COPY_AND_ASSIGN(RestrictFragmentShaderTiming);
TInfoSinkBase& mSink;
void beginError(const TIntermNode *node);
void validateUserDefinedFunctionCallUsage(const TDependencyGraph &graph);
bool isSamplingOp(const TIntermAggregate *intermFunctionCall) const;
TInfoSinkBase &mSink;
int mNumErrors;
typedef std::set<TString> StringSet;
......
......@@ -50,6 +50,9 @@ struct LinkedUniform
// Register "elements" are used for uniform structs in ES3, to appropriately identify single uniforms
// inside aggregate types, which are packed according C-like structure rules.
unsigned int registerElement;
private:
DISALLOW_COPY_AND_ASSIGN(LinkedUniform);
};
// Helper struct representing a single shader uniform block
......@@ -70,6 +73,9 @@ struct UniformBlock
unsigned int psRegisterIndex;
unsigned int vsRegisterIndex;
private:
DISALLOW_COPY_AND_ASSIGN(UniformBlock);
};
}
......
......@@ -106,18 +106,21 @@ bool IsRowMajorLayout(const sh::ShaderVariable &var)
struct AttributeSorter
{
AttributeSorter(const ProgramImpl::SemanticIndexArray &semanticIndices)
: originalIndices(semanticIndices)
: originalIndices(&semanticIndices)
{
}
bool operator()(int a, int b)
{
if (originalIndices[a] == -1) return false;
if (originalIndices[b] == -1) return true;
return (originalIndices[a] < originalIndices[b]);
int indexA = (*originalIndices)[a];
int indexB = (*originalIndices)[b];
if (indexA == -1) return false;
if (indexB == -1) return true;
return (indexA < indexB);
}
const ProgramImpl::SemanticIndexArray &originalIndices;
const ProgramImpl::SemanticIndexArray *originalIndices;
};
}
......
......@@ -52,6 +52,9 @@ class SwapChainD3D
const GLenum mDepthBufferFormat;
HANDLE mShareHandle;
private:
DISALLOW_COPY_AND_ASSIGN(SwapChainD3D);
};
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment