Changes in src/SymTab/Indexer.cc [fbcde64:08d5507b]
- File:
-
- 1 edited
-
src/SymTab/Indexer.cc (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Indexer.cc
rfbcde64 r08d5507b 10 10 // Created On : Sun May 17 21:37:33 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Mar 30 16:38:47201713 // Update Count : 1 912 // Last Modified On : Tue Mar 14 08:07:34 2017 13 // Update Count : 17 14 14 // 15 15 … … 119 119 FunctionDecl * decl; 120 120 bool isUserDefinedFunc; // properties for this particular decl 121 bool isDefaultCtor; 122 bool isDtor; 121 bool isDefaultFunc; 123 122 bool isCopyFunc; 124 123 }; 125 124 // properties for this type 126 bool userDefinedFunc = false; // any user-defined function found 127 bool userDefinedCtor = false; // any user-defined constructor found 128 bool userDefinedDtor = false; // any user-defined destructor found 129 bool userDefinedCopyFunc = false; // user-defined copy ctor found 125 bool userDefinedFunc = false; // any user defined function found 126 bool userDefinedDefaultFunc = false; // user defined default ctor found 127 bool userDefinedCopyFunc = false; // user defined copy ctor found 130 128 std::list< DeclBall > decls; 131 129 … … 134 132 ValueType & operator+=( FunctionDecl * function ) { 135 133 bool isUserDefinedFunc = ! LinkageSpec::isOverridable( function->get_linkage() ); 136 bool isDefaultCtor = InitTweak::isDefaultConstructor( function ); 137 bool isDtor = InitTweak::isDestructor( function ); 134 bool isDefaultFunc = function->get_functionType()->get_parameters().size() == 1; 138 135 bool isCopyFunc = InitTweak::isCopyFunction( function, function->get_name() ); 139 decls.push_back( DeclBall{ function, isUserDefinedFunc, isDefault Ctor, isDtor, isCopyFunc } );136 decls.push_back( DeclBall{ function, isUserDefinedFunc, isDefaultFunc, isCopyFunc } ); 140 137 userDefinedFunc = userDefinedFunc || isUserDefinedFunc; 141 userDefinedCtor = userDefinedCtor || (isUserDefinedFunc && InitTweak::isConstructor( function->get_name() ) ); 142 userDefinedDtor = userDefinedDtor || (isUserDefinedFunc && isDtor); 138 userDefinedDefaultFunc = userDefinedDefaultFunc || (isUserDefinedFunc && isDefaultFunc); 143 139 userDefinedCopyFunc = userDefinedCopyFunc || (isUserDefinedFunc && isCopyFunc); 144 140 return *this; … … 167 163 // a default ctor, then the generated default ctor should never be seen, likewise for copy ctor 168 164 // and dtor. If the user defines any ctor/dtor, then no generated field ctors should be seen. 169 // If the user defines any ctor then the generated default ctor should not be seen.170 165 for ( std::pair< const std::string, ValueType > & pair : funcMap ) { 171 166 ValueType & val = pair.second; 172 167 for ( ValueType::DeclBall ball : val.decls ) { 173 if ( ! val.userDefinedFunc || ball.isUserDefinedFunc || (! val.userDefined Ctor && ball.isDefaultCtor) || (! val.userDefinedCopyFunc && ball.isCopyFunc) || (! val.userDefinedDtor && ball.isDtor) ) {168 if ( ! val.userDefinedFunc || ball.isUserDefinedFunc || (! val.userDefinedDefaultFunc && ball.isDefaultFunc) || (! val.userDefinedCopyFunc && ball.isCopyFunc) ) { 174 169 // decl conforms to the rules described above, so it should be seen by the requester 175 170 out.push_back( ball.decl ); … … 483 478 void Indexer::visit( CompoundLiteralExpr *compLitExpr ) { 484 479 acceptNewScope( compLitExpr->get_result(), *this ); 480 maybeAccept( compLitExpr->get_type(), *this ); 485 481 maybeAccept( compLitExpr->get_initializer(), *this ); 486 482 }
Note:
See TracChangeset
for help on using the changeset viewer.