File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -109,14 +109,15 @@ class Callback : public clang::ast_matchers::MatchFinder::MatchCallback {
109109 }
110110 return ;
111111 }
112- if (auto var = R.Nodes .getNodeAs <clang::TypeAliasDecl >(" tvar" )) {
113- clang::QualType type;
114- if (auto *tdecl = var-> getDescribedAliasTemplate ( )) {
115- type = lookupType (tdecl);
116- } else {
117- type = var-> getUnderlyingType ();
112+ if (auto var = R.Nodes .getNodeAs <clang::TypedefNameDecl >(" tvar" )) {
113+ clang::QualType type = var-> getUnderlyingType () ;
114+ if (auto *alias = llvm::dyn_cast<clang::TypeAliasDecl>(var )) {
115+ if ( auto *tdecl = alias-> getDescribedAliasTemplate ()) {
116+ type = lookupType (tdecl);
117+ }
118118 }
119- out_.try_emplace (var->getQualifiedNameAsString (), Mapper::ToString (type));
119+ auto src = Mapper::ToString (type, Mapper::ScalarSugar::kPreserve );
120+ out_.try_emplace (var->getQualifiedNameAsString (), std::move (src));
120121 return ;
121122 }
122123
@@ -707,7 +708,7 @@ class ActionFactory : public clang::tooling::FrontendActionFactory {
707708 &cb_);
708709
709710 finder_.addMatcher (
710- typeAliasDecl (matchesName (" (^|::)t[0-9]+$" ), isExpansionInMainFile ())
711+ typedefNameDecl (matchesName (" (^|::)t[0-9]+$" ), isExpansionInMainFile ())
711712 .bind (" tvar" ),
712713 &cb_);
713714
Original file line number Diff line number Diff line change 22#include <sys/types.h>
33#include <sys/socket.h>
44
5+ typedef struct sockaddr t1 ;
6+
57int f1 () {
68 return MSG_NOSIGNAL ;
79}
Original file line number Diff line number Diff line change 1+ fn t1 ( ) -> libc:: sockaddr {
2+ unsafe { std:: mem:: zeroed ( ) }
3+ }
4+
15unsafe fn f1 ( ) -> i32 {
26 libc:: MSG_NOSIGNAL
37}
Original file line number Diff line number Diff line change @@ -23,12 +23,12 @@ impl Default for UserDefined {
2323#[ repr( C ) ]
2424#[ derive( Copy , Clone ) ]
2525pub struct FieldIsLibcType {
26- pub addr : sockaddr ,
26+ pub addr : libc :: sockaddr ,
2727}
2828impl Default for FieldIsLibcType {
2929 fn default ( ) -> Self {
3030 FieldIsLibcType {
31- addr : unsafe { std:: mem:: zeroed :: < sockaddr > ( ) } ,
31+ addr : unsafe { std:: mem:: zeroed ( ) } ,
3232 }
3333 }
3434}
@@ -59,7 +59,7 @@ unsafe fn main_0() -> i32 {
5959 st. st_size = 1024_i64 ;
6060 assert ! ( ( ( st. st_size) == ( 1024_i64 ) ) ) ;
6161 let mut ud: UserDefined = <UserDefined >:: default ( ) ;
62- assert ! ( ( ( ud. a[ ( 0_usize ) ] ) == ( 0 ) ) ) ;
62+ assert ! ( ( ( ud. a[ ( 0_usize ) as usize ] ) == ( 0 ) ) ) ;
6363 assert ! ( ( ( ud. v. len( ) ) == ( 0_usize ) ) ) ;
6464 let mut filt: FieldIsLibcType = <FieldIsLibcType >:: default ( ) ;
6565 assert ! ( ( ( filt. addr. sa_family as i32 ) == ( 0 ) ) ) ;
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ unsafe fn main_0() -> i32 {
1818 assert ! (
1919 ( ( ( ( libc:: getsockname(
2020 fd,
21- ( ( & mut ssloc as * mut sockaddr_storage) as * mut sockaddr) ,
21+ ( ( & mut ssloc as * mut sockaddr_storage) as * mut libc :: sockaddr) ,
2222 ( & mut slen as * mut u32 )
2323 ) ) == ( -1_i32 ) ) as i32 )
2424 != 0 )
@@ -28,7 +28,7 @@ unsafe fn main_0() -> i32 {
2828 assert ! (
2929 ( ( ( ( libc:: getsockname(
3030 fd,
31- ( ( & mut sin as * mut sockaddr_in) as * mut sockaddr) ,
31+ ( ( & mut sin as * mut sockaddr_in) as * mut libc :: sockaddr) ,
3232 ( & mut inlen as * mut u32 )
3333 ) ) == ( -1_i32 ) ) as i32 )
3434 != 0 )
You can’t perform that action at this time.
0 commit comments