Merge pull request #131 from ian-semmle/namespace_vars

C++: Give namespace variables a qualified name
This commit is contained in:
Jonas Jensen
2018-09-04 08:56:01 +02:00
committed by GitHub
3 changed files with 26 additions and 20 deletions

View File

@@ -62,7 +62,7 @@ abstract class Declaration extends Locatable, @declaration {
| c = this and
result = c.getDeclaringEnum().getQualifiedName() + "::" + c.getName())
or
exists (GlobalVariable v, string s1, string s2
exists (GlobalOrNamespaceVariable v, string s1, string s2
| v = this and
s2 = v.getNamespace().getQualifiedName() and
s1 = v.getName()

View File

@@ -1,18 +1,18 @@
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | __va_list_tag |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | fp_offset |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | gp_offset |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | operator= |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | operator= |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | overflow_arg_area |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | reg_save_area |
| file://:0:0:0:0 | B | namespaces.cpp:32:7:32:7 | x |
| namespaces.cpp:11:13:11:13 | C::D | file://:0:0:0:0 | p#0 |
| namespaces.cpp:11:13:11:13 | C::D | file://:0:0:0:0 | p#0 |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:13:17:13:17 | f |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:15:12:15:12 | E |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:15:12:15:12 | operator= |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:15:12:15:12 | operator= |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:17:12:17:12 | g |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:17:18:17:18 | p |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:18:12:18:12 | a |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:20:13:20:13 | b |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | __va_list_tag | __va_list_tag |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | fp_offset | __va_list_tag::fp_offset |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | gp_offset | __va_list_tag::gp_offset |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | operator= | __va_list_tag::operator= |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | operator= | __va_list_tag::operator= |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | overflow_arg_area | __va_list_tag::overflow_arg_area |
| file://:0:0:0:0 | (global namespace) | file://:0:0:0:0 | reg_save_area | __va_list_tag::reg_save_area |
| file://:0:0:0:0 | B | namespaces.cpp:32:7:32:7 | x | B::x |
| namespaces.cpp:11:13:11:13 | C::D | file://:0:0:0:0 | p#0 | <none> |
| namespaces.cpp:11:13:11:13 | C::D | file://:0:0:0:0 | p#0 | <none> |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:13:17:13:17 | f | C::D::f |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:15:12:15:12 | E | C::D::E |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:15:12:15:12 | operator= | C::D::E::operator= |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:15:12:15:12 | operator= | C::D::E::operator= |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:17:12:17:12 | g | C::D::E::g |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:17:18:17:18 | p | <none> |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:18:12:18:12 | a | <none> |
| namespaces.cpp:11:13:11:13 | C::D | namespaces.cpp:20:13:20:13 | b | <none> |

View File

@@ -1,6 +1,12 @@
import cpp
string qual(Declaration d) {
if exists(d.getQualifiedName())
then result = d.getQualifiedName()
else result = "<none>"
}
from Namespace n, Declaration d
where n = d.getNamespace()
select n, d
select n, d, qual(d)