From 31d4fa495af722a436c924899fdfdb773c2908c6 Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Dec 10 2019 13:17:50 +0000 Subject: fixed covscan issues --- diff --git a/doxygen-1.8.16-covscan.patch b/doxygen-1.8.16-covscan.patch new file mode 100644 index 0000000..c6ec936 --- /dev/null +++ b/doxygen-1.8.16-covscan.patch @@ -0,0 +1,700 @@ +diff -up doxygen-1.8.16/addon/doxywizard/wizard.h.orig doxygen-1.8.16/addon/doxywizard/wizard.h +--- doxygen-1.8.16/addon/doxywizard/wizard.h.orig 2017-10-31 20:36:00.000000000 +0100 ++++ doxygen-1.8.16/addon/doxywizard/wizard.h 2019-12-10 11:45:32.750260467 +0100 +@@ -52,11 +52,11 @@ class TuneColorDialog : public QDialog + void updateImage(int hue,int sat,int val); + + private: +- QImage *m_image; +- QLabel *m_imageLab; +- int m_hue; +- int m_sat; +- int m_gam; ++ QImage *m_image = 0; ++ QLabel *m_imageLab = 0; ++ int m_hue = 0; ++ int m_sat = 0; ++ int m_gam = 0; + }; + + class ColorPicker : public QWidget +@@ -91,11 +91,11 @@ private: + void setSat(int v); + void setGam(int v); + +- QPixmap *m_pix; +- Mode m_mode; +- int m_gam; +- int m_hue; +- int m_sat; ++ QPixmap *m_pix = 0; ++ Mode m_mode = Hue; ++ int m_gam = 0; ++ int m_hue = 0; ++ int m_sat = 0; + + }; + +@@ -120,16 +120,16 @@ class Step1 : public QWidget + void setRecursiveScan(int); + + private: +- QLineEdit *m_projName; +- QLineEdit *m_projBrief; +- QLineEdit *m_projNumber; +- QLineEdit *m_sourceDir; +- QLineEdit *m_destDir; +- QLabel *m_projIconLab; +- QCheckBox *m_recursive; +- QPushButton *m_srcSelectDir; +- QPushButton *m_dstSelectDir; +- Wizard *m_wizard; ++ QLineEdit *m_projName = 0; ++ QLineEdit *m_projBrief = 0; ++ QLineEdit *m_projNumber = 0; ++ QLineEdit *m_sourceDir = 0; ++ QLineEdit *m_destDir = 0; ++ QLabel *m_projIconLab = 0; ++ QCheckBox *m_recursive = 0; ++ QPushButton *m_srcSelectDir = 0; ++ QPushButton *m_dstSelectDir = 0; ++ Wizard *m_wizard = 0; + const QHash &m_modelData; + }; + +@@ -146,12 +146,12 @@ class Step2 : public QWidget + void changeCrossRefState(int choice); + + private: +- QGroupBox *m_extractMode; +- QGroupBox *m_optimizeLang; +- QButtonGroup *m_extractModeGroup; +- QButtonGroup *m_optimizeLangGroup; +- QCheckBox *m_crossRef; +- Wizard *m_wizard; ++ QGroupBox *m_extractMode = 0; ++ QGroupBox *m_optimizeLang = 0; ++ QButtonGroup *m_extractModeGroup = 0; ++ QButtonGroup *m_optimizeLangGroup = 0; ++ QCheckBox *m_crossRef = 0; ++ Wizard *m_wizard = 0; + const QHash &m_modelData; + }; + +@@ -175,18 +175,18 @@ class Step3 : public QWidget + void tuneColorDialog(); + + private: +- QGroupBox *m_texOptions; +- QButtonGroup *m_texOptionsGroup; +- QGroupBox *m_htmlOptions; +- QButtonGroup *m_htmlOptionsGroup; +- QCheckBox *m_htmlEnabled; +- QCheckBox *m_latexEnabled; +- QCheckBox *m_manEnabled; +- QCheckBox *m_rtfEnabled; +- QCheckBox *m_xmlEnabled; +- QCheckBox *m_searchEnabled; +- QPushButton *m_tuneColor; +- Wizard *m_wizard; ++ QGroupBox *m_texOptions = 0; ++ QButtonGroup *m_texOptionsGroup = 0; ++ QGroupBox *m_htmlOptions = 0; ++ QButtonGroup *m_htmlOptionsGroup = 0; ++ QCheckBox *m_htmlEnabled = 0; ++ QCheckBox *m_latexEnabled = 0; ++ QCheckBox *m_manEnabled = 0; ++ QCheckBox *m_rtfEnabled = 0; ++ QCheckBox *m_xmlEnabled = 0; ++ QCheckBox *m_searchEnabled = 0; ++ QPushButton *m_tuneColor = 0; ++ Wizard *m_wizard = 0; + const QHash &m_modelData; + }; + +@@ -209,17 +209,17 @@ class Step4 : public QWidget + void setCallerGraphEnabled(int state); + + private: +- QGroupBox *m_diagramMode; +- QButtonGroup *m_diagramModeGroup; +- QGroupBox *m_dotGroup; +- QCheckBox *m_dotClass; +- QCheckBox *m_dotCollaboration; +- QCheckBox *m_dotInclude; +- QCheckBox *m_dotIncludedBy; +- QCheckBox *m_dotInheritance; +- QCheckBox *m_dotCall; +- QCheckBox *m_dotCaller; +- Wizard *m_wizard; ++ QGroupBox *m_diagramMode = 0; ++ QButtonGroup *m_diagramModeGroup = 0; ++ QGroupBox *m_dotGroup = 0; ++ QCheckBox *m_dotClass = 0; ++ QCheckBox *m_dotCollaboration = 0; ++ QCheckBox *m_dotInclude = 0; ++ QCheckBox *m_dotIncludedBy = 0; ++ QCheckBox *m_dotInheritance = 0; ++ QCheckBox *m_dotCall = 0; ++ QCheckBox *m_dotCaller = 0; ++ Wizard *m_wizard = 0; + const QHash &m_modelData; + }; + +@@ -243,14 +243,14 @@ class Wizard : public QSplitter + + private: + const QHash &m_modelData; +- QTreeWidget *m_treeWidget; +- QStackedWidget *m_topicStack; +- Step1 *m_step1; +- Step2 *m_step2; +- Step3 *m_step3; +- Step4 *m_step4; +- QPushButton *m_next; +- QPushButton *m_prev; ++ QTreeWidget *m_treeWidget = 0; ++ QStackedWidget *m_topicStack = 0; ++ Step1 *m_step1 = 0; ++ Step2 *m_step2 = 0; ++ Step3 *m_step3 = 0; ++ Step4 *m_step4 = 0; ++ QPushButton *m_next = 0; ++ QPushButton *m_prev = 0; + }; + + #endif +diff -up doxygen-1.8.16/src/classdef.cpp.orig doxygen-1.8.16/src/classdef.cpp +--- doxygen-1.8.16/src/classdef.cpp.orig 2019-08-04 19:04:55.000000000 +0200 ++++ doxygen-1.8.16/src/classdef.cpp 2019-12-10 11:52:17.184826531 +0100 +@@ -265,7 +265,7 @@ class ClassDefImpl : public DefinitionIm + + // PIMPL idiom + class IMPL; +- IMPL *m_impl; ++ IMPL *m_impl = 0; + }; + + ClassDef *createClassDef( +@@ -525,7 +525,7 @@ class ClassDefAliasImpl : public Definit + QPtrDict *visitedClasses=0) const {} + + private: +- mutable bool m_visited; ++ mutable bool m_visited = false; + }; + + +@@ -563,27 +563,27 @@ class ClassDefImpl::IMPL + /*! Include information about the header file should be included + * in the documentation. 0 by default, set by setIncludeFile(). + */ +- IncludeInfo *incInfo; ++ IncludeInfo *incInfo = 0; + + /*! List of base class (or super-classes) from which this class derives + * directly. + */ +- BaseClassList *inherits; ++ BaseClassList *inherits = 0; + + /*! List of sub-classes that directly derive from this class + */ +- BaseClassList *inheritedBy; ++ BaseClassList *inheritedBy = 0; + + /*! Namespace this class is part of + * (this is the inner most namespace in case of nested namespaces) + */ +- NamespaceDef *nspace; ++ NamespaceDef *nspace = 0; + + /*! File this class is defined in */ +- FileDef *fileDef; ++ FileDef *fileDef = 0; + + /*! List of all members (including inherited members) */ +- MemberNameInfoSDict *allMemberNameInfoSDict; ++ MemberNameInfoSDict *allMemberNameInfoSDict = 0; + + /*! Template arguments of this class */ + ArgumentList *tempArgs; +@@ -595,7 +595,7 @@ class ClassDefImpl::IMPL + FileList files; + + /*! Examples that use this class */ +- ExampleSDict *exampleSDict; ++ ExampleSDict *exampleSDict = 0; + + /*! Holds the kind of "class" this is. */ + ClassDef::CompoundType compType; +@@ -609,30 +609,30 @@ class ClassDefImpl::IMPL + /*! The inner classes contained in this class. Will be 0 if there are + * no inner classes. + */ +- ClassSDict *innerClasses; ++ ClassSDict *innerClasses = 0; + + /* classes for the collaboration diagram */ +- UsesClassDict *usesImplClassDict; +- UsesClassDict *usedByImplClassDict; +- UsesClassDict *usesIntfClassDict; ++ UsesClassDict *usesImplClassDict = 0; ++ UsesClassDict *usedByImplClassDict = 0; ++ UsesClassDict *usesIntfClassDict = 0; + +- ConstraintClassDict *constraintClassDict; ++ ConstraintClassDict *constraintClassDict = 0; + + /*! Template instances that exists of this class, the key in the + * dictionary is the template argument list. + */ +- mutable QDict *templateInstances; ++ mutable QDict *templateInstances = 0; + + /*! Template instances that exists of this class, as defined by variables. + * We do NOT want to document these individually. The key in the + * dictionary is the template argument list. + */ +- mutable QDict *variableInstances; ++ mutable QDict *variableInstances = 0; + +- QDict *templBaseClassNames; ++ QDict *templBaseClassNames = 0; + + /*! The class this class is an instance of. */ +- const ClassDef *templateMaster; ++ const ClassDef *templateMaster = 0; + + /*! local class name which could be a typedef'ed alias name. */ + QCString className; +@@ -640,56 +640,56 @@ class ClassDefImpl::IMPL + /*! If this class is a Objective-C category, then this points to the + * class which is extended. + */ +- ClassDef *categoryOf; ++ ClassDef *categoryOf = 0; + + QList memberLists; + + /* user defined member groups */ +- MemberGroupSDict *memberGroupSDict; ++ MemberGroupSDict *memberGroupSDict = 0; + + /*! Is this an abstract class? */ +- bool isAbstract; ++ bool isAbstract = false; + + /*! Is the class part of an unnamed namespace? */ +- bool isStatic; ++ bool isStatic = false; + + /*! TRUE if classes members are merged with those of the base classes. */ +- bool membersMerged; ++ bool membersMerged = false; + + /*! TRUE if the class is defined in a source file rather than a header file. */ +- bool isLocal; ++ bool isLocal = false; + +- bool isTemplArg; ++ bool isTemplArg = false; + + /*! Does this class group its user-grouped members + * as a sub-section of the normal (public/protected/..) + * groups? + */ +- bool subGrouping; ++ bool subGrouping = false; + + /** Reason of existence is a "use" relation */ +- bool usedOnly; ++ bool usedOnly = false; + + /** List of titles to use for the summary */ + SDict vhdlSummaryTitles; + + /** Is this a simple (non-nested) C structure? */ +- bool isSimple; ++ bool isSimple = false; + + /** Does this class overloaded the -> operator? */ +- MemberDef *arrowOperator; ++ MemberDef *arrowOperator = 0; + +- ClassList *taggedInnerClasses; +- ClassDef *tagLessRef; ++ ClassList *taggedInnerClasses = 0; ++ ClassDef *tagLessRef = 0; + + /** Does this class represent a Java style enum? */ +- bool isJavaEnum; ++ bool isJavaEnum = false; + +- bool isGeneric; ++ bool isGeneric = false; + +- bool isAnonymous; ++ bool isAnonymous = false; + +- uint64 spec; ++ uint64 spec = 0; + + QCString metaData; + }; +diff -up doxygen-1.8.16/src/docgroup.h.orig doxygen-1.8.16/src/docgroup.h +--- doxygen-1.8.16/src/docgroup.h.orig 2019-08-02 18:43:41.000000000 +0200 ++++ doxygen-1.8.16/src/docgroup.h 2019-12-10 11:45:32.752260485 +0100 +@@ -42,9 +42,9 @@ class DocGroup + + private: + int findExistingGroup(int &groupId,const MemberGroupInfo *info); +- int m_openCount; ++ int m_openCount = 0; + QCString m_memberGroupHeader; +- int m_memberGroupId; ++ int m_memberGroupId = 0; + QCString m_memberGroupRelates; + QCString m_memberGroupDocs; + QStack m_autoGroupStack; +diff -up doxygen-1.8.16/src/doctokenizer.h.orig doxygen-1.8.16/src/doctokenizer.h +--- doxygen-1.8.16/src/doctokenizer.h.orig 2019-06-10 10:17:24.000000000 +0200 ++++ doxygen-1.8.16/src/doctokenizer.h 2019-12-10 11:45:32.752260485 +0100 +@@ -81,8 +81,8 @@ struct TokenInfo + // comment blocks + + // list token info +- bool isEnumList; +- int indent; ++ bool isEnumList = false; ++ int indent = 0; + + // sections + QCString sectionId; +@@ -95,22 +95,22 @@ struct TokenInfo + QCString verb; + + // xrefitem +- int id; ++ int id = -1; + + // html tag + HtmlAttribList attribs; +- bool endTag; +- bool emptyTag; ++ bool endTag = false; ++ bool emptyTag = false; + + // whitespace + QCString chars; + + // url +- bool isEMailAddr; ++ bool isEMailAddr = false; + + // param attributes + enum ParamDir { In=1, Out=2, InOut=3, Unspecified=0 }; +- ParamDir paramDir; ++ ParamDir paramDir = Unspecified; + }; + + // globals +diff -up doxygen-1.8.16/src/dotgraph.h.orig doxygen-1.8.16/src/dotgraph.h +--- doxygen-1.8.16/src/dotgraph.h.orig 2019-06-13 21:36:00.000000000 +0200 ++++ doxygen-1.8.16/src/dotgraph.h 2019-12-10 11:45:32.752260485 +0100 +@@ -83,22 +83,22 @@ class DotGraph + QCString relImgName() const { return m_relPath + imgName(); } + + // the following variables are used while writing the graph to a .dot file +- GraphOutputFormat m_graphFormat; +- EmbeddedOutputFormat m_textFormat; ++ GraphOutputFormat m_graphFormat = GOF_BITMAP; ++ EmbeddedOutputFormat m_textFormat = EOF_Html; + QDir m_dir; + QCString m_fileName; + QCString m_relPath; +- bool m_generateImageMap; +- int m_graphId; ++ bool m_generateImageMap = false; ++ int m_graphId = 0; + + QCString m_absPath; + QCString m_baseName; + QGString m_theGraph; +- bool m_regenerate; +- bool m_doNotAddImageToIndex; +- bool m_noDivTag; +- bool m_zoomable; +- bool m_urlOnly; ++ bool m_regenerate = false; ++ bool m_doNotAddImageToIndex = false; ++ bool m_noDivTag = false; ++ bool m_zoomable = true; ++ bool m_urlOnly = false; + + private: + DotGraph(const DotGraph &); +diff -up doxygen-1.8.16/src/memberdef.cpp.orig doxygen-1.8.16/src/memberdef.cpp +--- doxygen-1.8.16/src/memberdef.cpp.orig 2019-08-06 20:32:27.000000000 +0200 ++++ doxygen-1.8.16/src/memberdef.cpp 2019-12-10 11:45:32.753260493 +0100 +@@ -1299,32 +1299,32 @@ class MemberDefImpl::IMPL + const ArgumentList *al,const char *meta + ); + +- ClassDef *classDef; // member of or related to +- FileDef *fileDef; // member of file definition +- NamespaceDef *nspace; // the namespace this member is in. +- +- MemberDef *enumScope; // the enclosing scope, if this is an enum field +- bool livesInsideEnum; +- const MemberDef *annEnumType; // the anonymous enum that is the type of this member +- MemberList *enumFields; // enumeration fields +- +- MemberDef *redefines; // the members that this member redefines +- MemberList *redefinedBy; // the list of members that redefine this one +- +- MemberDef *memDef; // member definition for this declaration +- MemberDef *memDec; // member declaration for this definition +- ClassDef *relatedAlso; // points to class marked by relatedAlso ++ ClassDef *classDef = 0; // member of or related to ++ FileDef *fileDef = 0; // member of file definition ++ NamespaceDef *nspace = 0; // the namespace this member is in. ++ ++ MemberDef *enumScope = 0; // the enclosing scope, if this is an enum field ++ bool livesInsideEnum = false; ++ const MemberDef *annEnumType = 0; // the anonymous enum that is the type of this member ++ MemberList *enumFields = 0; // enumeration fields ++ ++ MemberDef *redefines = 0; // the members that this member redefines ++ MemberList *redefinedBy = 0; // the list of members that redefine this one ++ ++ MemberDef *memDef = 0; // member definition for this declaration ++ MemberDef *memDec = 0; // member declaration for this definition ++ ClassDef *relatedAlso = 0; // points to class marked by relatedAlso + +- ExampleSDict *exampleSDict; // a dictionary of all examples for quick access ++ ExampleSDict *exampleSDict = 0; // a dictionary of all examples for quick access + + QCString type; // return actual type + QCString accessorType; // return type that tell how to get to this member +- ClassDef *accessorClass; // class that this member accesses (for anonymous types) ++ ClassDef *accessorClass = 0; // class that this member accesses (for anonymous types) + QCString args; // function arguments/variable array specifiers + QCString def; // member definition in code (fully qualified name) + QCString anc; // HTML anchor name +- Specifier virt; // normal/virtual/pure virtual +- Protection prot; // protection type [Public/Protected/Private] ++ Specifier virt = Normal; // normal/virtual/pure virtual ++ Protection prot = Public; // protection type [Public/Protected/Private] + QCString decl; // member declaration in class + + QCString bitfields; // struct member bitfields +@@ -1334,13 +1334,13 @@ class MemberDefImpl::IMPL + QCString initializer; // initializer + QCString extraTypeChars; // extra type info found after the argument list + QCString enumBaseType; // base type of the enum (C++11) +- int initLines; // number of lines in the initializer ++ int initLines = 0; // number of lines in the initializer + +- uint64 memSpec; // The specifiers present for this member +- MemberType mtype; // returns the kind of member +- int maxInitLines; // when the initializer will be displayed +- int userInitLines; // result of explicit \hideinitializer or \showinitializer +- MemberDef *annMemb; ++ uint64 memSpec = 0; // The specifiers present for this member ++ MemberType mtype = MemberType_Define; // returns the kind of member ++ int maxInitLines = 0; // when the initializer will be displayed ++ int userInitLines = 0; // result of explicit \hideinitializer or \showinitializer ++ MemberDef *annMemb = 0; + + ArgumentList *defArgList; // argument list of this member definition + ArgumentList *declArgList; // argument list of this member declaration +@@ -1357,19 +1357,19 @@ class MemberDefImpl::IMPL + // as its type then this is computed by + // getClassDefOfAnonymousType() and + // cached here. +- SDict *classSectionSDict; // not accessible ++ SDict *classSectionSDict = 0; // not accessible + +- const MemberDef *groupAlias; // Member containing the definition +- int grpId; // group id +- MemberGroup *memberGroup; // group's member definition +- GroupDef *group; // group in which this member is in ++ const MemberDef *groupAlias = 0; // Member containing the definition ++ int grpId = 0; // group id ++ MemberGroup *memberGroup = 0; // group's member definition ++ GroupDef *group = 0; // group in which this member is in + Grouping::GroupPri_t grouppri; // priority of this definition + QCString groupFileName; // file where this grouping was defined +- int groupStartLine; // line " " " " " +- MemberDef *groupMember; ++ int groupStartLine = 0; // line " " " " " ++ MemberDef *groupMember = 0; + +- bool isTypedefValCached; +- const ClassDef *cachedTypedefValue; ++ bool isTypedefValCached = false; ++ const ClassDef *cachedTypedefValue = 0; + QCString cachedTypedefTemplSpec; + QCString cachedResolvedType; + +@@ -1379,41 +1379,41 @@ class MemberDefImpl::IMPL + //QCString inbodyDocs; + + // documentation inheritance +- MemberDef *docProvider; ++ MemberDef *docProvider = 0; + + // to store the output file base from tag files + QCString explicitOutputFileBase; + + // objective-c +- bool implOnly; // function found in implementation but not +- // in the interface +- mutable bool hasDocumentedParams; +- mutable bool hasDocumentedReturnType; +- bool isDMember; +- Relationship related; // relationship of this to the class +- bool stat; // is it a static function? +- bool proto; // is it a prototype; +- bool docEnumValues; // is an enum with documented enum values. +- +- mutable bool annScope; // member is part of an anonymous scope +- mutable bool annUsed; // ugly: needs to be mutable to allow setAnonymousUsed to act as a +- // const member. +- bool hasCallGraph; +- bool hasCallerGraph; +- bool hasReferencedByRelation; +- bool hasReferencesRelation; +- bool explExt; // member was explicitly declared external +- bool tspec; // member is a template specialization +- bool groupHasDocs; // true if the entry that caused the grouping was documented +- bool docsForDefinition; // TRUE => documentation block is put before +- // definition. +- // FALSE => block is put before declaration. +- ClassDef *category; +- MemberDef *categoryRelation; ++ bool implOnly = false; // function found in implementation but not ++ // in the interface ++ mutable bool hasDocumentedParams = false; ++ mutable bool hasDocumentedReturnType = false; ++ bool isDMember = false; ++ Relationship related = Member; // relationship of this to the class ++ bool stat = false; // is it a static function? ++ bool proto = false; // is it a prototype? ++ bool docEnumValues = false; // is an enum with documented enum values. ++ ++ mutable bool annScope = false; // member is part of an anonymous scope ++ mutable bool annUsed = false; // ugly: needs to be mutable to allow setAnonymousUsed to act as a ++ // const member. ++ bool hasCallGraph = false; ++ bool hasCallerGraph = false; ++ bool hasReferencedByRelation = false; ++ bool hasReferencesRelation = false; ++ bool explExt = false; // member was explicitly declared external ++ bool tspec = false; // member is a template specialization ++ bool groupHasDocs = false; // true if the entry that caused the grouping was documented ++ bool docsForDefinition = false; // TRUE => documentation block is put before ++ // definition. ++ // FALSE => block is put before declaration. ++ ClassDef *category = 0; ++ MemberDef *categoryRelation = 0; + QCString declFileName; +- int declLine; +- int declColumn; +- int numberOfFlowKW; ++ int declLine = 0; ++ int declColumn = 0; ++ int numberOfFlowKW = 0; + }; + + MemberDefImpl::IMPL::IMPL() : +diff -up doxygen-1.8.16/src/membergroup.h.orig doxygen-1.8.16/src/membergroup.h +--- doxygen-1.8.16/src/membergroup.h.orig 2019-12-10 11:45:32.754260502 +0100 ++++ doxygen-1.8.16/src/membergroup.h 2019-12-10 11:54:06.767797449 +0100 +@@ -101,18 +101,18 @@ class MemberGroup + int docLine() const { return m_docLine; } + + private: +- MemberList *memberList; // list of all members in the group +- MemberList *inDeclSection; +- int grpId; ++ MemberList *memberList = 0; // list of all members in the group ++ MemberList *inDeclSection = 0; ++ int grpId = 0; + QCString grpHeader; + QCString fileName; // base name of the generated file + QCString doc; +- bool inSameSection; +- int m_numDecMembers; +- int m_numDocMembers; +- const Definition *m_parent; ++ bool inSameSection = false; ++ int m_numDecMembers = 0; ++ int m_numDocMembers = 0; ++ const Definition *m_parent = 0; + QCString m_docFile; +- int m_docLine; ++ int m_docLine = 0; + QList *m_xrefListItems; + }; + +diff -up doxygen-1.8.16/src/scanner.l.orig doxygen-1.8.16/src/scanner.l +--- doxygen-1.8.16/src/scanner.l.orig 2019-12-10 11:45:32.756260520 +0100 ++++ doxygen-1.8.16/src/scanner.l 2019-12-10 11:54:52.099199108 +0100 +@@ -191,7 +191,7 @@ static QCString g_delimiter; + static int g_column; + + static int g_fencedSize=0; +-static bool g_nestedComment=0; ++static bool g_nestedComment=false; + + //----------------------------------------------------------------------------- + +diff -up doxygen-1.8.16/src/tclscanner.l.orig doxygen-1.8.16/src/tclscanner.l +--- doxygen-1.8.16/src/tclscanner.l.orig 2019-08-04 19:05:12.000000000 +0200 ++++ doxygen-1.8.16/src/tclscanner.l 2019-12-10 11:45:32.757260529 +0100 +@@ -1492,7 +1492,7 @@ tcl_inf("-> %s\n",(const char *)tcl.stri + { + tcl_inf("-> %s\n",(const char *)tcl.string_comment); + int myPos=0; +- bool myNew=0; ++ bool myNew=false; + int myLine=tcl.line_comment; + BufStr myI(1024); + BufStr myO(1024); +diff -up doxygen-1.8.16/src/vhdldocgen.h.orig doxygen-1.8.16/src/vhdldocgen.h +--- doxygen-1.8.16/src/vhdldocgen.h.orig 2019-06-10 10:17:24.000000000 +0200 ++++ doxygen-1.8.16/src/vhdldocgen.h 2019-12-10 11:45:32.757260529 +0100 +@@ -310,11 +310,11 @@ class FlowChart + ~FlowChart(); + + private: +- int id; +- int stamp; +- int type; ++ int id = 0; ++ int stamp = 0; ++ int type = 0; + +- int line; ++ int line = 0; + + QCString label; + QCString text; +diff -up doxygen-1.8.16/src/vhdljjparser.h.orig doxygen-1.8.16/src/vhdljjparser.h +--- doxygen-1.8.16/src/vhdljjparser.h.orig 2019-06-10 10:17:24.000000000 +0200 ++++ doxygen-1.8.16/src/vhdljjparser.h 2019-12-10 11:45:32.758260538 +0100 +@@ -87,9 +87,9 @@ struct VhdlConfNode + QCString arch; + QCString binding; + QCString compSpec; +- int level; +- bool isLeaf; +- bool isInlineConf; ++ int level = 0; ++ bool isLeaf = false; ++ bool isInlineConf = false; + + }; + diff --git a/doxygen.spec b/doxygen.spec index 5498712..0dcf1aa 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -8,7 +8,7 @@ Summary: A documentation system for C/C++ Name: doxygen Epoch: 1 Version: 1.8.16 -Release: 2%{?dist} +Release: 3%{?dist} # No version is specified. License: GPL+ @@ -20,6 +20,7 @@ Source2: doxywizard.desktop # upstream patches Patch0: doxygen-1.8.16-#7248.patch +Patch1: doxygen-1.8.16-covscan.patch BuildRequires: %{_bindir}/python3 @@ -189,6 +190,9 @@ make tests -C %{_target_platform} %endif %changelog +* Tue Dec 10 2019 Than Ngo - 1:1.8.16-3 +- fixed covscan issues + * Mon Sep 16 2019 Than Ngo - 1:1.8.16-2 - backpored upstream patch to fix #7248