-
Notifications
You must be signed in to change notification settings - Fork 1
Limitations
Nuthan Munaiah edited this page Oct 6, 2020
·
2 revisions
The known limitations in the implementation of the various Samaritan services are documented here.
The replacement of clang
with srcml
as the source code parser in the parser
service introduced the limitations enumerated below.
In the code snippet below, the macro SAY(message)
is used to add declarations of say_hello()
and say_hi()
at preprocessor time. While clang
expands macros when parsing the file, srcml
does not. As a result, parsing the snippet show below using clang
identifies three functions (say_hello@6:6
, say_hi@7:7
, and main@10:14
) but srcml
identifies one function (main@10:14
).
1 #include<stdio.h>
2
3 #define SAY(message) \
4 void say_ ## message()
5
6 SAY(hello);
7 SAY(hi);
8
9
10 int main()
11 {
12 printf("hello world!!!\n");
13 return 0;
14 }