Changes in / [5c69a1e:736fe25]
- Files:
-
- 2 edited
-
Jenkinsfile (modified) (3 diffs)
-
src/SymTab/Indexer.cc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
Jenkinsfile
r5c69a1e r736fe25 28 28 wrap([$class: 'TimestamperBuildWrapper']) { 29 29 30 notify_server( 1)30 notify_server() 31 31 32 32 prepare_build() … … 46 46 publish() 47 47 48 notify_server( 45)48 notify_server() 49 49 } 50 50 } … … 171 171 } 172 172 173 def notify_server( int wait) {174 sh """curl --silent --data "wait=${wait}" -X POST http://plg2:8082/jenkins/notify > /dev/null || true"""173 def notify_server() { 174 sh 'curl --silent -X POST http://plg2:8082/jenkins/notify > /dev/null || true' 175 175 return 176 176 } -
src/SymTab/Indexer.cc
r5c69a1e r736fe25 124 124 }; 125 125 // properties for this type 126 bool existsUserDefinedFunc = false; // any user-defined function found 127 bool existsUserDefinedCtor = false; // any user-defined constructor found 128 bool existsUserDefinedDtor = false; // any user-defined destructor found 129 bool existsUserDefinedCopyFunc = false; // user-defined copy ctor found 130 bool existsUserDefinedDefaultCtor = false; // user-defined default ctor found 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 131 130 std::list< DeclBall > decls; 132 131 … … 139 138 bool isCopyFunc = InitTweak::isCopyFunction( function, function->get_name() ); 140 139 decls.push_back( DeclBall{ function, isUserDefinedFunc, isDefaultCtor, isDtor, isCopyFunc } ); 141 existsUserDefinedFunc = existsUserDefinedFunc || isUserDefinedFunc; 142 existsUserDefinedCtor = existsUserDefinedCtor || (isUserDefinedFunc && InitTweak::isConstructor( function->get_name() ) ); 143 existsUserDefinedDtor = existsUserDefinedDtor || (isUserDefinedFunc && isDtor); 144 existsUserDefinedCopyFunc = existsUserDefinedCopyFunc || (isUserDefinedFunc && isCopyFunc); 145 existsUserDefinedDefaultCtor = existsUserDefinedDefaultCtor || (isUserDefinedFunc && isDefaultCtor); 140 userDefinedFunc = userDefinedFunc || isUserDefinedFunc; 141 userDefinedCtor = userDefinedCtor || (isUserDefinedFunc && InitTweak::isConstructor( function->get_name() ) ); 142 userDefinedDtor = userDefinedDtor || (isUserDefinedFunc && isDtor); 143 userDefinedCopyFunc = userDefinedCopyFunc || (isUserDefinedFunc && isCopyFunc); 146 144 return *this; 147 145 } … … 165 163 } 166 164 167 // if a type contains user defined ctor/dtor /assign, then special rules trigger, which determine168 // the set of ctor/dtor /assignthat are seen by the requester. In particular, if the user defines165 // if a type contains user defined ctor/dtors, then special rules trigger, which determine 166 // the set of ctor/dtors that are seen by the requester. In particular, if the user defines 169 167 // a default ctor, then the generated default ctor should never be seen, likewise for copy ctor 170 168 // and dtor. If the user defines any ctor/dtor, then no generated field ctors should be seen. 171 // If the user defines any ctor then the generated default ctor should not be seen (intrinsic default 172 // ctor must be overridden exactly). 169 // If the user defines any ctor then the generated default ctor should not be seen. 173 170 for ( std::pair< const std::string, ValueType > & pair : funcMap ) { 174 171 ValueType & val = pair.second; 175 172 for ( ValueType::DeclBall ball : val.decls ) { 176 bool noUserDefinedFunc = ! val.existsUserDefinedFunc; 177 bool isUserDefinedFunc = ball.isUserDefinedFunc; 178 bool isAcceptableDefaultCtor = (! val.existsUserDefinedCtor || (! val.existsUserDefinedDefaultCtor && ball.decl->get_linkage() == LinkageSpec::Intrinsic)) && ball.isDefaultCtor; // allow default constructors only when no user-defined constructors exist, except in the case of intrinsics, which require exact overrides 179 bool isAcceptableCopyFunc = ! val.existsUserDefinedCopyFunc && ball.isCopyFunc; // handles copy ctor and assignment operator 180 bool isAcceptableDtor = ! val.existsUserDefinedDtor && ball.isDtor; 181 if ( noUserDefinedFunc || isUserDefinedFunc || isAcceptableDefaultCtor || isAcceptableCopyFunc || isAcceptableDtor ) { 173 if ( ! val.userDefinedFunc || ball.isUserDefinedFunc || (! val.userDefinedCtor && ball.isDefaultCtor) || (! val.userDefinedCopyFunc && ball.isCopyFunc) || (! val.userDefinedDtor && ball.isDtor) ) { 182 174 // decl conforms to the rules described above, so it should be seen by the requester 183 175 out.push_back( ball.decl );
Note:
See TracChangeset
for help on using the changeset viewer.