mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 00:33:09 +00:00
Disallow multiple instances of PluginPriority.
Several instances of PluginPriority in a single file most probably signifies a programming error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84350 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6b4967e1a6
commit
2cea7bdef9
10
test/LLVMC/MultiplePluginPriorities.td
Normal file
10
test/LLVMC/MultiplePluginPriorities.td
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// Check that multiple plugin priorities are not allowed.
|
||||||
|
// RUN: ignore tblgen -I %p/../../include --gen-llvmc %s |& grep "More than one 'PluginPriority' instance found"
|
||||||
|
|
||||||
|
include "llvm/CompilerDriver/Common.td"
|
||||||
|
|
||||||
|
def Graph : CompilationGraph<[]>;
|
||||||
|
|
||||||
|
def Priority1 : PluginPriority<1>;
|
||||||
|
|
||||||
|
def Priority2 : PluginPriority<2>;
|
@ -775,11 +775,17 @@ void FillInEdgeVector(RecordVector::const_iterator B,
|
|||||||
/// CalculatePriority - Calculate the priority of this plugin.
|
/// CalculatePriority - Calculate the priority of this plugin.
|
||||||
int CalculatePriority(RecordVector::const_iterator B,
|
int CalculatePriority(RecordVector::const_iterator B,
|
||||||
RecordVector::const_iterator E) {
|
RecordVector::const_iterator E) {
|
||||||
int total = 0;
|
int priority = 0;
|
||||||
for (; B!=E; ++B) {
|
|
||||||
total += static_cast<int>((*B)->getValueAsInt("priority"));
|
if (B != E) {
|
||||||
|
priority = static_cast<int>((*B)->getValueAsInt("priority"));
|
||||||
|
|
||||||
|
if (++B != E)
|
||||||
|
throw std::string("More than one 'PluginPriority' instance found: "
|
||||||
|
"most probably an error!");
|
||||||
}
|
}
|
||||||
return total;
|
|
||||||
|
return priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// NotInGraph - Helper function object for FilterNotInGraph.
|
/// NotInGraph - Helper function object for FilterNotInGraph.
|
||||||
|
Loading…
Reference in New Issue
Block a user