From a8833a0c70980cf5f2b8ab23e8a8d95af1e1b53e Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 22 Jun 2022 07:35:12 +0200 Subject: [PATCH] C++: Test showing going from a forward class declaration to a class but not back --- .../declarationEntry/declarationEntry.cpp | 8 ++++++++ .../declarationEntry/declarationEntry.expected | 6 ++++++ .../declarationEntry/declarationEntry/fde.expected | 2 ++ .../declarationEntry/forwardDeclaration.cpp | 3 +++ .../declarationEntry/declarationEntry/roundTrip.expected | 8 ++++++++ 5 files changed, 27 insertions(+) create mode 100644 cpp/ql/test/library-tests/declarationEntry/declarationEntry/forwardDeclaration.cpp diff --git a/cpp/ql/test/library-tests/declarationEntry/declarationEntry/declarationEntry.cpp b/cpp/ql/test/library-tests/declarationEntry/declarationEntry/declarationEntry.cpp index 3bbfc05ec65..45732eb6ca8 100644 --- a/cpp/ql/test/library-tests/declarationEntry/declarationEntry/declarationEntry.cpp +++ b/cpp/ql/test/library-tests/declarationEntry/declarationEntry/declarationEntry.cpp @@ -33,3 +33,11 @@ public: myTemplateClass mtc_int; myTemplateClass mtc_short; + +// Class (UserType) + +class myClass +{ +public: + int myMemberVariable; +}; diff --git a/cpp/ql/test/library-tests/declarationEntry/declarationEntry/declarationEntry.expected b/cpp/ql/test/library-tests/declarationEntry/declarationEntry/declarationEntry.expected index 76f564d1f7b..0645e923643 100644 --- a/cpp/ql/test/library-tests/declarationEntry/declarationEntry/declarationEntry.expected +++ b/cpp/ql/test/library-tests/declarationEntry/declarationEntry/declarationEntry.expected @@ -27,5 +27,11 @@ | declarationEntry.cpp:31:4:31:19 | myMemberVariable | declarationEntry.cpp:31:4:31:19 | definition of myMemberVariable | 1 | 1 | | declarationEntry.cpp:34:22:34:28 | mtc_int | declarationEntry.cpp:34:22:34:28 | definition of mtc_int | 1 | 1 | | declarationEntry.cpp:35:24:35:32 | mtc_short | declarationEntry.cpp:35:24:35:32 | definition of mtc_short | 1 | 1 | +| declarationEntry.cpp:39:7:39:7 | operator= | declarationEntry.cpp:39:7:39:7 | declaration of operator= | 1 | 1 | +| declarationEntry.cpp:39:7:39:7 | operator= | declarationEntry.cpp:39:7:39:7 | declaration of operator= | 1 | 1 | +| declarationEntry.cpp:39:7:39:13 | myClass | declarationEntry.cpp:39:7:39:13 | definition of myClass | 1 | 1 | +| declarationEntry.cpp:39:7:39:13 | myClass | forwardDeclaration.cpp:1:7:1:13 | declaration of myClass | 0 | 1 | +| declarationEntry.cpp:42:6:42:21 | myMemberVariable | declarationEntry.cpp:42:6:42:21 | definition of myMemberVariable | 1 | 1 | +| forwardDeclaration.cpp:3:10:3:19 | myClassPtr | forwardDeclaration.cpp:3:10:3:19 | definition of myClassPtr | 1 | 1 | | macro.c:2:1:2:3 | foo | macro.c:2:1:2:3 | declaration of foo | 1 | 1 | | macro.c:4:5:4:8 | main | macro.c:4:5:4:8 | definition of main | 1 | 1 | diff --git a/cpp/ql/test/library-tests/declarationEntry/declarationEntry/fde.expected b/cpp/ql/test/library-tests/declarationEntry/declarationEntry/fde.expected index 9a544200cae..71c81c7ac82 100644 --- a/cpp/ql/test/library-tests/declarationEntry/declarationEntry/fde.expected +++ b/cpp/ql/test/library-tests/declarationEntry/declarationEntry/fde.expected @@ -10,5 +10,7 @@ | declarationEntry.cpp:28:7:28:7 | declaration of operator= | | 0 | | | declarationEntry.cpp:28:7:28:7 | declaration of operator= | | 0 | | | declarationEntry.cpp:28:7:28:7 | declaration of operator= | | 0 | | +| declarationEntry.cpp:39:7:39:7 | declaration of operator= | | 0 | | +| declarationEntry.cpp:39:7:39:7 | declaration of operator= | | 0 | | | macro.c:2:1:2:3 | declaration of foo | | 2 | c_linkage, static | | macro.c:4:5:4:8 | definition of main | | 1 | c_linkage | diff --git a/cpp/ql/test/library-tests/declarationEntry/declarationEntry/forwardDeclaration.cpp b/cpp/ql/test/library-tests/declarationEntry/declarationEntry/forwardDeclaration.cpp new file mode 100644 index 00000000000..1e5e0c15ce0 --- /dev/null +++ b/cpp/ql/test/library-tests/declarationEntry/declarationEntry/forwardDeclaration.cpp @@ -0,0 +1,3 @@ +class myClass; + +myClass *myClassPtr; diff --git a/cpp/ql/test/library-tests/declarationEntry/declarationEntry/roundTrip.expected b/cpp/ql/test/library-tests/declarationEntry/declarationEntry/roundTrip.expected index cd2e30b42a0..5066ff021bf 100644 --- a/cpp/ql/test/library-tests/declarationEntry/declarationEntry/roundTrip.expected +++ b/cpp/ql/test/library-tests/declarationEntry/declarationEntry/roundTrip.expected @@ -25,6 +25,12 @@ | declarationEntry.cpp:31:4:31:19 | definition of myMemberVariable | declarationEntry.cpp:31:4:31:19 | myMemberVariable | yes | | declarationEntry.cpp:34:22:34:28 | definition of mtc_int | declarationEntry.cpp:34:22:34:28 | mtc_int | yes | | declarationEntry.cpp:35:24:35:32 | definition of mtc_short | declarationEntry.cpp:35:24:35:32 | mtc_short | yes | +| declarationEntry.cpp:39:7:39:7 | declaration of operator= | declarationEntry.cpp:39:7:39:7 | operator= | yes | +| declarationEntry.cpp:39:7:39:7 | declaration of operator= | declarationEntry.cpp:39:7:39:7 | operator= | yes | +| declarationEntry.cpp:39:7:39:13 | definition of myClass | declarationEntry.cpp:39:7:39:13 | myClass | yes | +| declarationEntry.cpp:42:6:42:21 | definition of myMemberVariable | declarationEntry.cpp:42:6:42:21 | myMemberVariable | yes | +| file://:0:0:0:0 | declaration of 1st parameter | file://:0:0:0:0 | (unnamed parameter 0) | yes | +| file://:0:0:0:0 | declaration of 1st parameter | file://:0:0:0:0 | (unnamed parameter 0) | yes | | file://:0:0:0:0 | declaration of 1st parameter | file://:0:0:0:0 | (unnamed parameter 0) | yes | | file://:0:0:0:0 | declaration of 1st parameter | file://:0:0:0:0 | (unnamed parameter 0) | yes | | file://:0:0:0:0 | declaration of 1st parameter | file://:0:0:0:0 | (unnamed parameter 0) | yes | @@ -33,5 +39,7 @@ | file://:0:0:0:0 | definition of gp_offset | file://:0:0:0:0 | gp_offset | yes | | file://:0:0:0:0 | definition of overflow_arg_area | file://:0:0:0:0 | overflow_arg_area | yes | | file://:0:0:0:0 | definition of reg_save_area | file://:0:0:0:0 | reg_save_area | yes | +| forwardDeclaration.cpp:1:7:1:13 | declaration of myClass | declarationEntry.cpp:39:7:39:13 | myClass | no | +| forwardDeclaration.cpp:3:10:3:19 | definition of myClassPtr | forwardDeclaration.cpp:3:10:3:19 | myClassPtr | yes | | macro.c:2:1:2:3 | declaration of foo | macro.c:2:1:2:3 | foo | yes | | macro.c:4:5:4:8 | definition of main | macro.c:4:5:4:8 | main | yes |