Changes in / [736fe25:5c69a1e]
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Jenkinsfile
r736fe25 r5c69a1e 28 28 wrap([$class: 'TimestamperBuildWrapper']) { 29 29 30 notify_server( )30 notify_server(1) 31 31 32 32 prepare_build() … … 46 46 publish() 47 47 48 notify_server( )48 notify_server(45) 49 49 } 50 50 } … … 171 171 } 172 172 173 def notify_server( ) {174 sh 'curl --silent -X POST http://plg2:8082/jenkins/notify > /dev/null || true'173 def notify_server(int wait) { 174 sh """curl --silent --data "wait=${wait}" -X POST http://plg2:8082/jenkins/notify > /dev/null || true""" 175 175 return 176 176 } -
src/SymTab/Indexer.cc
r736fe25 r5c69a1e 124 124 }; 125 125 // 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 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 130 131 std::list< DeclBall > decls; 131 132 … … 138 139 bool isCopyFunc = InitTweak::isCopyFunction( function, function->get_name() ); 139 140 decls.push_back( DeclBall{ function, isUserDefinedFunc, isDefaultCtor, isDtor, isCopyFunc } ); 140 userDefinedFunc = userDefinedFunc || isUserDefinedFunc; 141 userDefinedCtor = userDefinedCtor || (isUserDefinedFunc && InitTweak::isConstructor( function->get_name() ) ); 142 userDefinedDtor = userDefinedDtor || (isUserDefinedFunc && isDtor); 143 userDefinedCopyFunc = userDefinedCopyFunc || (isUserDefinedFunc && 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); 144 146 return *this; 145 147 } … … 163 165 } 164 166 165 // if a type contains user defined ctor/dtor s, then special rules trigger, which determine166 // the set of ctor/dtor sthat are seen by the requester. In particular, if the user defines167 // if a type contains user defined ctor/dtor/assign, then special rules trigger, which determine 168 // the set of ctor/dtor/assign that are seen by the requester. In particular, if the user defines 167 169 // a default ctor, then the generated default ctor should never be seen, likewise for copy ctor 168 170 // 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. 171 // If the user defines any ctor then the generated default ctor should not be seen (intrinsic default 172 // ctor must be overridden exactly). 170 173 for ( std::pair< const std::string, ValueType > & pair : funcMap ) { 171 174 ValueType & val = pair.second; 172 175 for ( ValueType::DeclBall ball : val.decls ) { 173 if ( ! val.userDefinedFunc || ball.isUserDefinedFunc || (! val.userDefinedCtor && ball.isDefaultCtor) || (! val.userDefinedCopyFunc && ball.isCopyFunc) || (! val.userDefinedDtor && ball.isDtor) ) { 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 ) { 174 182 // decl conforms to the rules described above, so it should be seen by the requester 175 183 out.push_back( ball.decl );
Note: See TracChangeset
for help on using the changeset viewer.