cppparser: Prefer function over type when searching symbol
This is meant to fix the "stat problem", which means you can define a function with the same name as a struct, which is allowed, since you can still refer to the struct with an explicit `struct stat`. It can be reproduced with the following code: struct stat; void stat(); void *ptr = (void *)stat;
This commit is contained in:
parent
50538203ce
commit
ae8d643907
|
|
@ -724,6 +724,12 @@ find_symbol(const string &name, bool recurse) const {
|
|||
return _struct_type;
|
||||
}
|
||||
|
||||
Functions::const_iterator fi;
|
||||
fi = _functions.find(name);
|
||||
if (fi != _functions.end()) {
|
||||
return (*fi).second;
|
||||
}
|
||||
|
||||
Types::const_iterator ti;
|
||||
ti = _types.find(name);
|
||||
if (ti != _types.end()) {
|
||||
|
|
@ -741,12 +747,6 @@ find_symbol(const string &name, bool recurse) const {
|
|||
return (*vi).second;
|
||||
}
|
||||
|
||||
Functions::const_iterator fi;
|
||||
fi = _functions.find(name);
|
||||
if (fi != _functions.end()) {
|
||||
return (*fi).second;
|
||||
}
|
||||
|
||||
Using::const_iterator ui;
|
||||
for (ui = _using.begin(); ui != _using.end(); ++ui) {
|
||||
CPPDeclaration *decl = (*ui)->find_symbol(name, false);
|
||||
|
|
|
|||
Loading…
Reference in New Issue