You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is problematic because the raw string in such cases could be a more complicated pointer/array/... type like char *[3] and the string is thus hard to deal with for things like type propagation, showing struct member accesses, etc. where deep inspection is needed.
So instead, the RzParseCTypeType struct should be used in these cases which provides exactly this semantic information.
But because there are also cases where the type must be a string, for example in projects or for the target type expression of a typedef in the database, this depends on #370 to be implemented first.
Warning: Do not confuse these possible complex ctypes with base types! Base types are the ones saved in the database (structs, typedefs, enums) that have a concrete name and they may be referred to by their name as a single string. But whenever there can be pointers, arrays, etc., this is a ctype, possibly built on top a base type.
The text was updated successfully, but these errors were encountered:
Historically, arbitrary types are represented throughout the code as strings, for example in a variable:
rizin/librz/include/rz_analysis.h
Line 788 in a3a339b
Or, even more importantly, in the
RzAnalysisBaseType
struct for things like the typedef target type:rizin/librz/include/rz_analysis.h
Line 249 in a3a339b
as well as in struct members:
rizin/librz/include/rz_analysis.h
Line 215 in a3a339b
This is problematic because the raw string in such cases could be a more complicated pointer/array/... type like
char *[3]
and the string is thus hard to deal with for things like type propagation, showing struct member accesses, etc. where deep inspection is needed.So instead, the
RzParseCTypeType
struct should be used in these cases which provides exactly this semantic information.But because there are also cases where the type must be a string, for example in projects or for the target type expression of a typedef in the database, this depends on #370 to be implemented first.
Warning: Do not confuse these possible complex ctypes with base types! Base types are the ones saved in the database (structs, typedefs, enums) that have a concrete name and they may be referred to by their name as a single string. But whenever there can be pointers, arrays, etc., this is a ctype, possibly built on top a base type.
The text was updated successfully, but these errors were encountered: