mirror of
https://github.com/github/codeql.git
synced 2025-12-18 18:10:39 +01:00
38 lines
1018 B
Plaintext
38 lines
1018 B
Plaintext
import semmle.code.cil.Attribute
|
|
import semmle.code.cil.Declaration
|
|
|
|
private predicate isOsSpecific(Declaration d) { d.getQualifiedName().matches("%libobjc%") }
|
|
|
|
query predicate attrNoArg(string dec, string attr) {
|
|
exists(Declaration d, Attribute a |
|
|
not isOsSpecific(d) and
|
|
a.getDeclaration() = d and
|
|
not exists(a.getAnArgument())
|
|
|
|
|
dec = d.toStringWithTypes() and
|
|
attr = a.toStringWithTypes()
|
|
)
|
|
}
|
|
|
|
query predicate attrArgNamed(string dec, string attr, string name, string value) {
|
|
exists(Declaration d, Attribute a |
|
|
a.getDeclaration() = d and
|
|
not isOsSpecific(d) and
|
|
a.getNamedArgument(name) = value
|
|
|
|
|
dec = d.toStringWithTypes() and
|
|
attr = a.toStringWithTypes()
|
|
)
|
|
}
|
|
|
|
query predicate attrArgPositional(string dec, string attr, int index, string value) {
|
|
exists(Declaration d, Attribute a |
|
|
a.getDeclaration() = d and
|
|
not isOsSpecific(d) and
|
|
a.getArgument(index) = value
|
|
|
|
|
dec = d.toStringWithTypes() and
|
|
attr = a.toStringWithTypes()
|
|
)
|
|
}
|