
ã¯ããã«
Geant4ããŒã«ãããã¯CERNã§éçºãããã¢ã³ãã«ã«ãæ³ã䜿çšããŠç©è³ªãééããç²åã®æåãã¢ããªã³ã°ããã³ç 究ããããã«èšèšãããŠããŸãã ãããžã§ã¯ãã®åæããŒãžã§ã³ã¯Fortranã§äœæãããããŒãžã§ã³4以éããããžã§ã¯ãã¯ãªããžã§ã¯ãæåC ++èšèªã«å®å šã«ç¿»èš³ãããŸããã
ãããžã§ã¯ãã®è©³çŽ°ã«ã€ããŠã¯ããããžã§ã¯ãã®å ¬åŒãŠã§ããµã€ãhttp://geant4.orgãã芧ãã ãã ã
Geant4ãããžã§ã¯ãã¯æ¢ã«æ°åãã¹ããããŠãããä»ã®èšäºã§ã¯ãã®çµæã«ã€ããŠèª¬æããŠããŸãã ããŒãžã§ã³9.4ã®æ€èšŒã¯ãèšäºã Copy-Paste and Muons ãã«ãããããŒãžã§ã³10.0-betaã®æ€èšŒã¯ãèšäºã Continuation of Geant4 Validation ãã«ãããŸãã
ååã®ãã§ãã¯ä»¥éãGeant4.10.2ã®æ°ããããŒãžã§ã³ããªãªãŒã¹ãããŸããã ãã以æ¥PVS-StudioãæŽæ°ãããŠãããæ€èšŒã«ã¯ã¢ãã©ã€ã¶ãŒããŒãžã§ã³6.05ã䜿çšãããŸããã
ãã®ãããžã§ã¯ãã§ã¯ãæ¡ä»¶ãšæ¯èŒã«é¢é£ããéåžžã«å€ãã®ãšã©ãŒã«ééããŸããã è«çãšã©ãŒã¯ãå€ãã®å Žåãå°æ¥ã®æ¹èšã®ããã«ã³ãŒããæ®ããããã³ãŒãã®ç§»è¡ãå¶åŸ¡ãã以åã®éšåãåé€ããŠäžæ£ç¢ºãªå€æŽãè¡ã£ãããããšãã«çºçããŸãã ããããåçŽãªã¿ã€ããã¹ãèãæãããè¡šçŸãããšã©ãŒãéå°ãªã³ãŒãã«ã€ãªããå¯èœæ§ããããŸãã
ãã€ã«ã³ã·ãŒ
ç§ãç解ããŠããããã«ãGeant4ãããžã§ã¯ããCoverityéçã¢ãã©ã€ã¶ãŒã«ãã£ãŠå®æçã«ãã§ãã¯ããããšããäºå®ã«ãã£ãŠããããžã§ã¯ãã®æ¬¡ã®æ€èšŒã«å¯Ÿããè¿œå ã®æµ·è³è¡çºãäžããããŸãã ããã¯ã次ã®åœ¢åŒã®ã³ãŒãå ã®è€æ°ã®ãªãªãŒã¹ããŒããšã³ã¡ã³ãã«ãã£ãŠèšŒæãããŸãã
// Private copy constructor and assigment operator - copying and // assignment not allowed. Keeps Coverity happy.
Coverityã¢ãã©ã€ã¶ãŒã¯ããŒã±ãããªãŒããŒã§ãããšèããããŠãããããäœããèŠã€ããåŸã¯è¯ãææã§ãã ããã§ããPVS-Studioã¯å€ãã®èå³æ·±ããšã©ãŒãçºèŠããŸãããããã¯ãPVS-Studioãæçãã匷åãªè£œåã«ãªã£ããšããããšã§ãã
ããã®ä»ãããããŸãã
G4double G4EmBiasingManager::ApplySecondaryBiasing(....) { .... if(0 == nsplit) { .... } if(1 == nsplit) { //<- .... } else { .... } .... }
V646ã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ã®æ€æ»ãæ€èšããŠãã ããã ãelseãããŒã¯ãŒããæ¬ èœããŠããå¯èœæ§ããããŸãã g4embiasingmanager.cc 299
ããã¯ã ifã䜿çšããŠåäžã®å€æ°ã§è€æ°ã®å€ããã§ãã¯ããéã«ããããééãã®1ã€ã§ã ã ãã¡ãããããã¯åã«èª€ã£ããã©ãŒãããèšå®ã§ããå¯èœæ§ããããŸããããã®äŸã§ã¯ãã¢ãã©ã€ã¶ãŒããšã©ãŒã瀺ããŠããå¯èœæ§ãé«ãã§ãã
ã³ãŒããã³ããŒããçµæãelseãšããåèªã¯å¿ããããŸããã ãã®å Žåãäœåãªã³ãŒãã®å®è¡ã«ã€ãªãããŸãã ããšãã°ãå€ã¯ãŒãã«ãªããã¢ããã€ã¹ãããã¯ã®ã³ãŒããå®è¡ãããŸããããšã©ãŒã®ããã elseãããã¯ã®ã³ãŒããäžèŽã確èªããåŸã«å®è¡ãããŸãã ãšã©ãŒãä¿®æ£ããã«ã¯ã ifæ¡ä»¶ïŒ1 == nsplitïŒã®åã«èŠã€ãããªãelseãè¿œå ããŸã ã
èãããããšã©ãŒã®èª€ã£ãåŠç
void G4GenericPolycone::Create( .... ) { .... G4double rzArea = rz->Area(); if (rzArea < -kCarTolerance) rz->ReverseOrder(); else if (rzArea < -kCarTolerance) //<- { .... G4Exception("G4GenericPolycone::Create()", "GeomSolids0002", FatalErrorInArgument, message); } .... }
V517 ãifïŒAïŒ{...} else ifïŒAïŒ{...}ããã¿ãŒã³ã®äœ¿çšãæ€åºãããŸããã è«çãšã©ãŒãååšããå¯èœæ§ããããŸãã è¡ã確èªïŒ102ã105ãg4genericpolycone.cc 102
ã³ãŒãã®ç®çã«ã€ããŠã®ã¿æšæž¬ã§ããŸãã ãã®ãã©ã°ã¡ã³ãããšã©ãŒã¡ãã»ãŒãžã®ã€ã³ã¿ãŒã»ãããšçæãæ åœããŠããå¯èœæ§ãéåžžã«é«ãã§ããã誀ã£ãç¶æ ã®çµæãšããŠããšã©ãŒã¡ãã»ãŒãžã¯ãããŸããã ãããŠãããã°ã©ã ãã©ã®ããã«åäœãããã¯äžæã§ãã ãšã©ãŒãå¥ã®å Žæã®ãã³ãã©ãŒã«ãã£ãŠã€ã³ã¿ãŒã»ãããããå¯èœæ§ããããŸãããŸãã¯ãããã°ã©ã ããšã©ãŒãªãã§å®è¡ãç¶ç¶ãã誀ã£ãçµæãçæããå¯èœæ§ããããŸãã ãšã©ãŒãäœã§ããããæ£ç¢ºã«èšãããšã¯éåžžã«å°é£ã§ãããªããªããããã¯æ¡ä»¶åŒã®ãããããŸãã¯äœåãªelseã«ããå¯èœæ§ãããããã§ã ã ãããããã©ãŒãããã«ãã£ãŠå€æãããšãæ¡ä»¶ã®äž¡æ¹ã®ãããã¯ãæ£ãããšå®å šã«æ³å®ã§ããä¿®æ£ã®ããã«ã¯ã2çªç®ã®æ¡ä»¶ãããã¯ã®åã«elseãåé€ããã ãã§ååã§ã ã
ã³ãŒãã®ã³ããŒã®ãããã§ãåããšã©ãŒãäŒæããããããžã§ã¯ãã®ããã«3ã€ã®å Žæã§çºèŠãããŸããã
- V517ãifïŒAïŒ{...} else ifïŒAïŒ{...}ããã¿ãŒã³ã®äœ¿çšãæ€åºãããŸããã è«çãšã©ãŒãååšããå¯èœæ§ããããŸãã è¡ã確èªïŒ193ã196ãg4polycone.cc 193
- V517ãifïŒAïŒ{...} else ifïŒAïŒ{...}ããã¿ãŒã³ã®äœ¿çšãæ€åºãããŸããã è«çãšã©ãŒãååšããå¯èœæ§ããããŸãã è¡ã確èªïŒ219ã222ãg4polyhedra.cc 219
- V517ãifïŒAïŒ{...} else ifïŒAïŒ{...}ããã¿ãŒã³ã®äœ¿çšãæ€åºãããŸããã è«çãšã©ãŒãååšããå¯èœæ§ããããŸãã è¡ã確èªïŒ207ã211ãg4persistencycentermessenger.cc 207
NULLãã€ã³ã¿ãŒéåç §
G4double * theShells; G4double * theGammas; void G4ParticleHPPhotonDist::InitAngular(....) { .... if ( theGammas != NULL ) { for ( i = 0 ; i < nDiscrete ; i++ ) { vct_gammas_par.push_back( theGammas[ i ] ); vct_shells_par.push_back( theShells[ i ] ); .... } } if ( theGammas == NULL ) theGammas = new G4double[nDiscrete2]; if ( theShells == NULL ) theShells = new G4double[nDiscrete2]; .... }
V595 nulltherã«å¯ŸããŠæ€èšŒãããåã«ããtheShellsããã€ã³ã¿ãŒã䜿çšãããŸããã è¡ã確èªããŠãã ããïŒ147ã156ãg4particlehpphotondist.cc 147
ãã€ã³ã¿ãŒãæäœããéã®ãšã©ãŒã¯ãããã°ã©ã ã§é »ç¹ã«æ€åºãããŸãã ããã§ã¯ã2ã€ã®ãªããžã§ã¯ãã®åæäœæ¥ãçºçãããã®ãã¡ã®1ã€ã ããæ£ãããã©ããããã§ãã¯ãããŸãã ãã®ãããªãšã©ãŒã¯é·ãéæ°ä»ãããªãå ŽåããããŸããã Shellsãªããžã§ã¯ããžã®ãã€ã³ã¿ãŒãnullã«ãªã£ãå Žåãããã°ã©ã ã®æªå®çŸ©ã®åäœã«ã€ãªãããŸãã ãšã©ãŒãä¿®æ£ããã«ã¯ã次ã®ããã«æ¡ä»¶ãå€æŽããå¿ èŠããããŸãã
if ( theGammas != NULL && theShells != NULL) ....
ãã€ã³ã¿ãŒãã§ãã¯ã®ãªãå¥ã®ãã©ã°ã¡ã³ãïŒ
- V595 nullptrã«å¯ŸããŠæ€èšŒãããåã«ããfCurrentProcessããã€ã³ã¿ãŒã䜿çšãããŸããã è¡ããã§ãã¯ããŠãã ããïŒ303ã307ãg4steppingmanager2.cc 303
NULLãã€ã³ã¿ãŒã䜿çšãã
G4hhElastic::G4hhElastic(....) : G4HadronElastic("HadrHadrElastic") { .... fTarget = target; // later vmg fProjectile = projectile; .... fTarget = G4Proton::Proton(); // later vmg fProjectile = 0; //<- fMassTarg = fTarget->GetPDGMass(); fMassProj = fProjectile->GetPDGMass(); //<- .... }
V522 nullãã€ã³ã¿ãŒãfProjectileãã®éåç §ãè¡ãããå ŽåããããŸãã g4hhelastic.cc 184
ãã®ã¹ããããã¯åã®ãã®ãšäŒŒãŠããŸãã ãã ããããã§ã¯ãã€ã³ã¿ãŒã«æ瀺çã«nullå€ãå²ãåœãŠããããã®åŸãå€æ°ã¯ä»ã®å€æ°ãåæåããããã«äœ¿çšãããŸãã ãããããæåã®å²ãåœãŠã®å€æ°ã®å€ã䜿çšããããšã«ãªã£ãŠããã®ã«ã2çªç®ã®å²ãåœãŠã¯åã«äžèŠã§ãã ãããããå¥ã®å€æ°ã«0ãå²ãåœãŠãããšæãã§ãããã ãã®å²ãåœãŠã®æ¬åœã®çç±ã¯ããããžã§ã¯ãéçºè ã®ã¿ãç¥ã£ãŠããŸãã ãããã«ããããã®ãããªåæåã¯æ£ãããªãããã®ãããªã³ãŒãã¯æ³šæãã䟡å€ããããŸãã
ãããããšã®ç¡å¹ãªæäœ
#define dependentAxis 1 #define allowByRegion 2 static enum xDataTOM_interpolationFlag xDataTOM_interpolation_getFromString( .... ) { .... if( flag | allowByRegion ) {....} //<- if( flag | dependentAxis ) {....} //<- .... }
- V617ç¶æ ã®æ€æ»ãæ€èšããŠãã ããã ã|ãã®ã2ãåŒæ° ãããåäœæŒç®ã«ãŒã以å€ã®å€ãå«ãŸããŠããŸãã xdatatom_interpolation.cc 85
- V617ç¶æ ã®æ€æ»ãæ€èšããŠãã ããã ã|ãã®ã1ãåŒæ° ãããåäœæŒç®ã«ãŒã以å€ã®å€ãå«ãŸããŠããŸãã xdatatom_interpolation.cc 88
ã¢ãã©ã€ã¶ãŒã¯ãé¢æ°ã®é£æ¥ãã2è¡ã§ããã«èŠåãåºããŸããã æ¡ä»¶å ã§ã¯ããããåäœã®ORããŒã以å€ã®å®æ°ã§çºçããŸãã ãã®ãããªåŒã®çµæã¯åžžã«ãŒã以å€ã®å€ã«ãªããããã°ã©ã ã®ããžãã¯ãäžæ£ã«ãªããŸãã ã»ãšãã©ã®å Žåããã®ãããªãšã©ãŒã¯ã¿ã€ããã¹ã®çµæãšããŠçºçããŸãã ãŸããæ¡ä»¶ã§ã¯ããããåäœã®ORã®ä»£ããã«ãå¥ã®ãããåäœã®æŒç®ã䜿çšããå¿ èŠããããŸãã ãã®å Žåãç§ã¯ãããåäœã®Iãæå³ãããšæšæž¬ã§ããŸããä¿®æ£ãããã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
if( flag & allowByRegion ) {....} if( flag & dependentAxis ) {....}
è¿œå ã®å²ãåœãŠ
G4ThreeVector G4GenericTrap::SurfaceNormal(....) const { .... if ( noSurfaces == 0 ) { .... sumnorm=apprnorm; } else if ( noSurfaces == 1 ) { sumnorm = sumnorm; } //<- else { sumnorm = sumnorm.unit(); } .... }
V570 ãsumnormãå€æ°ã¯ããèªäœã«å²ãåœãŠãããŸãã g4generictrap.cc 515
ãã®ãã©ã°ã¡ã³ãã§ã¯ãéå°æ¡ä»¶åå²ã§æ§æãããè«çãšã©ãŒã衚瀺ãããŸãã ããã°ã©ããŒããããã£ããªãã·ã§ã³ã®1ã€ïŒ1ã€ãšçãããã©ããããã§ãã¯ãããšããå€æ°ã«ã¯å¥ã®å€æ°ãå²ãåœãŠãããŠããã¯ãã§ããã®ååã¯sumnormã«äŒŒãŠããŸãã ããããã³ãŒãã®ãã§ãã¯ãããéšåã§ãã®ãããªå€æ°ãæ€åºãããªãã£ããããç§ã¯ãããåãªãè¿œå ã®ãã§ãã¯ã§ãããšæã蟌ãã§ããŸãã ãšã©ãŒãä¿®æ£ããã«ã¯ã次ã®ããã«æ¡ä»¶ãåçŽåããããšãææ¡ããŸãã
if ( noSurfaces == 0 ) { .... sumnorm=apprnorm; } else if ( noSurfaces != 1 ) { sumnorm = sumnorm.unit(); }
å¥ã®äžå¯©ãªå Žæã
void G4UImanager::StoreHistory(G4bool historySwitch,....) { if(historySwitch) { if(saveHistory) { historyFile.close(); } historyFile.open((char*)fileName); saveHistory = true; } else { historyFile.close(); saveHistory = false; } saveHistory = historySwitch; }
V519 ãsaveHistoryãå€æ°ã«ã¯é£ç¶ããŠ2åå€ãå²ãåœãŠãããŸãã ããããããã¯ééãã§ãã ãã§ãã¯è¡ïŒ541ã543ãg4uimanager.cc 543
è«çãšã©ãŒããããŸãã é¢æ°å ã®ã³ãŒãã¯ã historySwitchã®å€ã«å¿ããŠã saveHistoryãã©ã°ã®å€ãå€æŽãããã¡ã€ã«æäœãå®è¡ããŸãããã®çµæã¯ãã©ã°ã«ãã£ãŠå ±åãããŸãã ãã ãããã¹ãŠã®æäœãå®äºãããšã saveHistoryå€æ°ã«historySwitchã®å€ãå²ãåœãŠãããŸãã ããã¯å¥åŠãªæäœã§ããæ¡ä»¶å ã®å€ã¯ãã§ã«ç¢ºç«ãããŠããããããå°ç¡ãã«ããã ãã ããã§ãã ã»ãšãã©ã®å ŽåãæåŸã®å²ãåœãŠã¯äžèŠã§ãããåé€ããå¿ èŠããããŸãã
ä»ã«ãåæ§ã®ãšã©ãŒããããŸãïŒ
- V519ãlvlãå€æ°ã«ã¯é£ç¶ããŠ2åå€ãå²ãåœãŠãããŸãã ããããããã¯ééãã§ãã è¡ã確èªããŠãã ããïŒ277ã283ãg4iontable.cc 283
åäžã®åŒã®è€æ°æ€èšŒ
bool parse(....) { .... if( (word0=="line_pattern") || (word0=="line_pattern") ) { .... } .... }
V501 ã||ãã®å·Šãšå³ã«åäžã®å¯æ¬¡åŒãïŒword0 == "line_pattern"ïŒãããããŸã æŒç®åã style_parser 1172
ã»ãšãã©ã®å Žåãåãæ¡ä»¶å ã§åãåã®å€æ°ã»ããããã§ãã¯ããCopy-Pasteã¡ãœããã䜿çšããŠçæãããšããã®ãããªãšã©ãŒãçºçããŸãã
ãã®äŸã«ã¯ããšã©ãŒãæ瀺çã«è¡šç€ºãããããªãå°ããªã³ãŒããå«ãŸããŠããŸãã ãã®å Žåãããã¯åãªãã¿ã€ããã¹ã§ãããã³ãŒãã®ã³ããŒãåå ã§ããå¯èœæ§ãé«ãã§ãã ããããããã¯å®æçãªãã§ãã¯äžã«ç°¡åã«æ€åºã§ãããšããæå³ã§ã¯ãããŸããã ãã®ç¶æ ã¯ãããŸããŸãªãã§ãã¯ã®é·ãããªãŒããååŸãããŸããã ã¢ãã©ã€ã¶ãŒãã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°æã®ãšã©ãŒãèå¥ããé²æ¢ããã®ã«åœ¹ç«ã€ã®ã¯ããŸãã«ãã®ãããªæ§é ã§ãã
ããããšã©ãŒã§ã¯ãªãå Žåã§ããäºéãã§ãã¯ããã®ã³ãŒãããµããŒããã人ãç ©ãããªãããã«ãã³ãŒããä¿®æ£ããå¿ èŠããããŸãã
ãããžã§ã¯ãã®ä»ã®å Žæã§ãåæ§ã®æçãèŠã€ãããŸããã
- V501ã||ãã®å·Šãšå³ã«åäžã®ãµãåŒããããŸã æŒç®åïŒITTU->ãµã€ãºïŒïŒïŒ= np || ITTU->ãµã€ãºïŒïŒïŒ= Np g4peneloperayleighmodel.cc 11563
- V501ã||ãã®å·Šãšå³ã«åäžã®å¯æ¬¡åŒãïŒptwXY1-> Interpolation == ptwXY_interpolationFlatïŒãããããŸãã æŒç®åã ptwxy_binaryoperators.cc 301
ããããªãªãã¡ã¯ã¿ãªã³ã°
G4ReactionProduct * G4ParticleHPLabAngularEnergy::Sample(....) { .... //if ( it == 0 || it == nEnergies-1 ) if ( it == 0 ) { if(it==0) .... .... } .... }
V571å®æçãªãã§ãã¯ã ãifïŒit == 0ïŒãæ¡ä»¶ã¯ã123è¡ç®ã§æ¢ã«æ€èšŒãããŠããŸããg4particlehplabangularenergy.cc 125
ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã®éçšã§ãäžå®å šãªãã©ã°ã¡ã³ããæ®ãå ŽåããããŸãã ããã¯äŸã§èµ·ãããŸããã å€ãæ¡ä»¶ã¯ã³ã¡ã³ãã¢ãŠããããæ°ããæ¡ä»¶ã¯å éšã®è¿œå ãã§ãã¯ã«æ£ç¢ºã«å¯Ÿå¿ãå§ããŸããã ãšã©ãŒãä¿®æ£ããã«ã¯ãã³ãŒããããã¯ã®ä¿®æ£ãçèããããæ¡ä»¶å ã®è¿œå ãã§ãã¯ãåé€ããããšããå§ãããŸãã
åæ§ã®æ¬ é¥ãæã€ãã©ã°ã¡ã³ãïŒ
- V571å®æçãªãã§ãã¯ã ãifïŒproj_momentum> = 10.ïŒãæ¡ä»¶ã¯ã809è¡ç®ã§ãã§ã«æ€èšŒãããŠããŸããg4componentgghadronnucleusxsc.cc 815
- V571å®æçãªãã§ãã¯ã ãifïŒproj_momentum> = 10.ïŒãæ¡ä»¶ã¯ã869è¡ç®ã§æ¢ã«æ€èšŒãããŠããŸããg4componentgghadronnucleusxsc.cc 875
- V571å®æçãªãã§ãã¯ã ãifïŒproj_momentum> = 10.ïŒãæ¡ä»¶ã¯ã568è¡ç®ã§æ¢ã«æ€èšŒãããŠããŸããg4componentggnuclnuclxsc.cc 574
- V571å®æçãªãã§ãã¯ã ãifïŒproj_momentum> = 10.ïŒãæ¡ä»¶ã¯ã1868è¡ç®ã§æ¢ã«æ€èšŒãããŠããŸããg4nuclnucldiffuseelastic.cc 1875
æ€èšŒæžã¿ã®è¡šçŸ
void GFlashHitMaker::make(....) { .... if( gflashSensitive ) { gflashSensitive->Hit(&theSpot); } else if ( (!gflashSensitive ) && ( pSensitive ) && (....) ){....} .... }
V560æ¡ä»¶åŒã®äžéšã¯åžžã«çã§ãïŒïŒïŒGflashSensitiveïŒã gflashhitmaker.cc 102
äžèšã®ãããã¯ã§ã¯ã elseã»ã¯ã·ã§ã³ã®æ¡ä»¶ã¯åé·ã§ãã ãããã£ãŠã elseãããã¯ã«å ¥ãããã®æ¡ä»¶ã¯gflashSensitiveå€æ°ã®åœã®å€ã§ããã2åç®ã«ãã§ãã¯ããå¿ èŠã¯ãããŸããã
å¥ã®åæ§ã®å ŽæïŒ
void UseWorkArea( T* newOffset ) { .... if( offset && offset!=newOffset ) { if( newOffset != offset ) {....} else {....} } .... }
V571å®æçãªãã§ãã¯ã 'newOffsetïŒ= Offset'æ¡ä»¶ã¯ã154è¡ç®ã§æ¢ã«æ€èšŒãããŠããŸããg4geomsplitter.hh 156
åãå€æ°ãæ¡ä»¶ã®å éšãããã¯ã§åãã§ãã¯ãããŸãã ããã¯æ¡ä»¶ã®å éšãããã¯ã«å ¥ãããã®æ¡ä»¶ã§ãã£ãããããã®ãã§ãã¯ã¯åžžã«è¯å®çãªçµæããããããŸãã ãã®çµæãå éšã®elseãããã¯ã®ã³ãŒãã¯å®è¡ãããŸããã
ã³ãŒããã³ããŒããçµæããããžã§ã¯ãã®ä»ã®å Žæã«ãåãè¿œå ãã§ãã¯ãååšããŸãã ããããã®ã³ããŒããŒã¹ãïŒ
- V571å®æçãªãã§ãã¯ã 'newOffsetïŒ= Offset'æ¡ä»¶ã¯ã113è¡ç®ã§æ¢ã«æ€èšŒãããŠããŸããg4pdefsplitter.hh 115
- V571å®æçãªãã§ãã¯ã 'newOffsetïŒ= Offset'æ¡ä»¶ã¯ã141è¡ç®ã§æ¢ã«æ€èšŒãããŠããŸããg4vuplsplitter.hh 143
圹ã«ç«ããªãç¶æ
void G4XXXStoredViewer::DrawView() { .... if (kernelVisitWasNeeded) { DrawFromStore(); } else { DrawFromStore(); } .... }
V523 ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã g4xxxstoredviewer.cc 85
æ¡ä»¶ã®2ã€ã®ãã©ã³ãå ã®ã³ãŒãã¯åäžã§ãããåãã³ãŒããç¬ç«ããŠå®è¡ããããããæ¡ä»¶èªäœã圹ã«ç«ããªããªããŸãã ãã®ãããªã¢ãã©ã€ã¶ãŒã¡ãã»ãŒãžã¯ãååã䌌ãŠããããŸããŸãªå®æ°ãŸãã¯é¢æ°ãã³ããŒãããšãã«ãäžå®å šãªã³ãŒããŸãã¯ã¿ã€ããã¹ã瀺ãããšããããŸãã ãã®å Žåããã®ãããã¯ãäœæãããçç±ã¯ããããŸããããæ確ã«ç¢ºå®ããå¿ èŠããããŸãã
åæ§ã®ãã©ã°ã¡ã³ãããããžã§ã¯ãã®å¥ã®å Žæã«ãããŸãã
- V523ãthenãã¹ããŒãã¡ã³ãã¯ãelseãã¹ããŒãã¡ã³ããšåçã§ãã g4xxxsgviewer.cc 84
åé·æ¡ä»¶
Void G4VTwistSurface::CurrentStatus::ResetfDone(....) { if (validate == fLastValidate && p && *p == fLastp) { if (!v || (v && *v == fLastv)) return; } .... }
V728éå°ãªãã§ãã¯ãç°¡çŽ åã§ããŸãã ã||ã æŒç®åã¯ãå察ã®åŒãïŒvããšãvãã«å²ãŸããŠããŸãã g4vtwistsurface.cc 1198
ãã®ãã©ã°ã¡ã³ãã¯ãšã©ãŒã§ã¯ãããŸããã ãã ããæ¡ä»¶ã¯æ¬¡ã®ããã«ç°¡ç¥åã§ããŸãã
if (!v || *v == fLastv) return;
åæ§ã®ãã©ã°ã¡ã³ãã¯ä»ã®å Žæã«ãããŸãã
- V728éå°ãªãã§ãã¯ãç°¡çŽ åã§ããŸãã ã||ã æŒç®åã¯å察ã®åŒãïŒa_cutããšãa_cutãã«å²ãŸããŠããŸãã é å168
- V728éå°ãªãã§ãã¯ãç°¡çŽ åã§ããŸãã ã||ã æŒç®åã¯å察ã®åŒãïŒa_cutããšãa_cutãã«å²ãŸããŠããŸãã é å180
- V728éå°ãªãã§ãã¯ãç°¡çŽ åã§ããŸãã ã||ã æŒç®åã¯å察ã®åŒãïŒa_cutããšãa_cutãã«å²ãŸããŠããŸãã é å240
- V728éå°ãªãã§ãã¯ãç°¡çŽ åã§ããŸãã ã||ã æŒç®åã¯å察ã®åŒãïŒa_cutããšãa_cutãã«å²ãŸããŠããŸãã é å287
- V728éå°ãªãã§ãã¯ãç°¡çŽ åã§ããŸãã ã||ã æŒç®åã¯ãå察ã®åŒãp == 0ãããã³ãpïŒ= 0ãã«å²ãŸããŠããŸãã g4emmodelactivator.cc 216
ç¡å¹ãªã³ã³ã¹ãã©ã¯ã¿ãŒåŒã³åºã
class G4PhysicsModelCatalog { private: .... G4PhysicsModelCatalog(); .... static modelCatalog* catalog; .... }; G4PhysicsModelCatalog::G4PhysicsModelCatalog() { if(!catalog) { static modelCatalog catal; catalog = &catal; } } G4int G4PhysicsModelCatalog::Register(const G4String& name) { G4PhysicsModelCatalog(); .... }
V603ãªããžã§ã¯ãã¯äœæãããŸãããã䜿çšãããŠããŸããã ã³ã³ã¹ãã©ã¯ã¿ãŒãåŒã³åºãå Žåã¯ããthis-> G4PhysicsModelCatalog :: G4PhysicsModelCatalogïŒ....ïŒãã䜿çšããå¿ èŠããããŸãã g4physicsmodelcatalog.cc 51
çŸåšã®ãªããžã§ã¯ãã«ã¢ã¯ã»ã¹ãã代ããã«ãæ°ããäžæãªããžã§ã¯ããäœæãããããã«ç Žæ£ãããŸãã ãã®çµæããªããžã§ã¯ããã£ãŒã«ãã¯åæåãããŸããã ã³ã³ã¹ãã©ã¯ã¿ã®å€éšã§ãã£ãŒã«ãã®åæåã䜿çšããå¿ èŠãããå Žåã¯ããã®ããã«å¥ã®é¢æ°ãäœæããŠåŒã³åºãããšããå§ãããŸãã ãã ããã³ã³ã¹ãã©ã¯ã¿ãæ£ç¢ºã«åŒã³åºãå Žåã¯ã thisãšããåèªã䜿çšããŠã³ã³ã¹ãã©ã¯ã¿ãåç §ããå¿ èŠããããŸãã C ++ 11ã䜿çšããå ŽåãæãçŸãã解決çã¯å§ä»»ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããããšã§ãã ãã®ãããªãšã©ãŒã«ã€ããŠã¯ã æ¬æžã§ããã«è©³ãã説æããä¿®æ£æ¹æ³ã説æããŸãïŒã»ã¯ã·ã§ã³19ãå¥ã®ã³ã³ã¹ãã©ã¯ã¿ããé©åã«åŒã³åºãæ¹æ³ããåç §ïŒã
åæåã®ã¿ã€ããã¹
static const G4String name[numberOfMolecula] = { .... "(CH_3)_2S", "N_2O", "C_5H_10O" "C_8H_6", "(CH_2)_N", .... };
V653 2ã€ã®éšåã§æ§æãããçãããæååã¯ãé åã®åæåã«äœ¿çšãããŸãã ã³ã³ããæ¬ èœããŠããå¯èœæ§ããããŸãã ãã®ãªãã©ã«ã®æ€æ»ãæ€èšããŠãã ããïŒ "C_5H_10O" "C_8H_6"ã g4hparametrisedlossmodel.cc 324
å®æ°ã䜿çšããé åã®åæåã«èª€ãããããŸããã ã¿ã€ããã¹ã®çµæãã³ã³ããçç¥ãããŸããã ããã«ã¯ããã€ãã®åé¡ããããŸãïŒ
- 2ã€ã®æååå®æ°ã1ã€ã«é£çµãããŸãã ãããŠãåŒãC_5H_10OC_8H_6ãã®1ã€ãšããŠååŸããŸãã åäŸã®ãªãçš®é¡ã®ã¢ã«ã³ãŒã«ã
- ã€ã³ããã¯ã¹ã§é åãèŠããšãå¿ èŠãªééã£ãåŒã®ååãååŸã§ããŸãã
- ãããŠæåŸ-é åã®å¢çãè¶ããããšãå¯èœã§ãã
å¿ããããæã
class G4HadronicException : public std::exception {....} void G4CrossSectionDataStore::ActivateFastPath( ....) { .... if ( requests.insert( { key , min_cutoff } ).second ) { .... G4HadronicException(__FILE__,__LINE__,msg.str()); } }
V596ãªããžã§ã¯ãã¯äœæãããŸãããã䜿çšãããŠããŸããã ãthrowãããŒã¯ãŒããæ¬ èœããŠããå¯èœæ§ããããŸããthrowG4HadronicExceptionïŒFOOïŒ; g4crosssectiondatastore.cc 542
é¢æ°ã³ãŒãã®å€§éšåã¯ãäŸå€ãã¹ããŒããã¡ãã»ãŒãžã®çæã«é¢ä¿ããŠããŸãã ãã ãã throwãæ¬ èœããŠãããããæªäœ¿çšã®äŸå€ãã¹ããŒãããŸãã ãããŠãããã°ã©ã ã¯åŒãç¶ãåäœããæªå®çŸ©ã®ããã°ã©ã ã®åäœã誀ã£ãèšç®ã«ã€ãªããå¯èœæ§ããããŸãã
ãã®ãšã©ãŒã¯ãããžã§ã¯ãã®ä»ã®å Žæã§ç¹°ãè¿ãããŸããã
- V596ãªããžã§ã¯ãã¯äœæãããŸãããã䜿çšãããŠããŸããã ãthrowãããŒã¯ãŒããæ¬ èœããŠããå¯èœæ§ããããŸããthrowG4HadronicExceptionïŒFOOïŒ; g4generalphasespacedecay.hh 126
- V596ãªããžã§ã¯ãã¯äœæãããŸãããã䜿çšãããŠããŸããã ãthrowãããŒã¯ãŒããæ¬ èœããŠããå¯èœæ§ããããŸããthrowG4HadronicExceptionïŒFOOïŒ; g4particlehpthermalscattering.cc 515
- V596ãªããžã§ã¯ãã¯äœæãããŸãããã䜿çšãããŠããŸããã ãthrowãããŒã¯ãŒããæ¬ èœããŠããå¯èœæ§ããããŸããthrowG4HadronicExceptionïŒFOOïŒ; g4particlehpthermalscattering.cc 574
- V596ãªããžã§ã¯ãã¯äœæãããŸãããã䜿çšãããŠããŸããã ãthrowãããŒã¯ãŒããæ¬ èœããŠããå¯èœæ§ããããŸããthrowG4HadronicExceptionïŒFOOïŒ; g4particlehpthermalscattering.cc 585
- V596ãªããžã§ã¯ãã¯äœæãããŸãããã䜿çšãããŠããŸããã ãthrowãããŒã¯ãŒããæ¬ èœããŠããå¯èœæ§ããããŸããthrowG4HadronicExceptionïŒFOOïŒ; g4particlehpthermalscattering.cc 687
åºåãšã©ãŒ
bool G4GMocrenIO::storeData2() { .... ofile.write("GRAPE ", 8); .... }
V666é¢æ° 'write'ã®2çªç®ã®åŒæ°ã調ã¹ãããšãæ€èšããŠãã ããã å€ããæåã®åŒæ°ã§æž¡ãããæååã®é·ããšäžèŽããªãå¯èœæ§ããããŸãã g4gmocrenio.cc 1351
äžèšã®ãšã©ãŒã¯ãæååã®å®éã®é·ããšãé¢æ°å ã®é·ããèšå®ããåŒæ°ã®äžäžèŽã«é¢é£ããŠããŸãã ãã®å Žåãã¹ããŒã¹ãå«ãç¹å®ã®ã€ã³ãã³ãã圢æãããããã«ãšã©ãŒãçºçããäžèŠãããšå®éã«ããã€ããããèŠããŸããã ãããããããããã®ãšã©ãŒã«ååãªæ³šæãæãããŠããããæåã®ãã§ãã¯æãããããžã§ã¯ãã«ååšããŠããçç±ã§ãã ãã®ãšã©ãŒã¯ãV666蚺æãµã³ãã«ããŒã¿ããŒã¹ã«å«ãŸããŠããŸãã ã
ãããã«
ããããããããã®ãšã©ãŒã®ãã¹ãŠãå±éºãªããã§ã¯ãããŸããããäžèŠåãã«è¶³ããªããšã©ãŒã®å€ãã¯å°æ¥ãããæ·±å»ãªçµæã«ã€ãªããå¯èœæ§ããããŸãã ãããã£ãŠããããžã§ã¯ããå®æçã«ãã§ãã¯ããŠãé倧ãªçµæãæãåã«ãåæ段éã§ãšã©ãŒãç¹å®ããå¿ èŠããããŸãã ã¢ãã©ã€ã¶ãŒã¯ãæããã£ãããŒãªãšã©ãŒãèŠã€ããŠä¿®æ£ããã ãã§ãªãããšã©ãŒã«ãªãåã«ãããžã§ã¯ãå ã®å±éºãªå ŽæãèŠã€ããã®ã«ã圹ç«ã¡ãŸãã ãããžã§ã¯ãã§PVS-Studioã¢ãã©ã€ã¶ãŒãããŠã³ããŒãããŠè©Šãããšããå§ãããŸãã