unusedcode.easy is generated via callcatcher[1] and filtered to remove some tricky edge-cases (see Makefile), e.g. anything which could plausibly be dlsymed or any symbol defined in an external library bundled into LibreOffice which doesn't happen to get used by LibreOffice. unusedcode.easy is generated on an x86_64 --enable-debug --enable-dbgutil configuration. Code listed as unused is code that gcc outputs but that nothing calls (or takes the address of). a) It's possible that some other platform or configuration uses the code, so manual inspection is always required. b) At the time of writing the majority of unused code now originates via macros, mostly from pre-STL containers, see [2] for killing two birds with one stone. These are typically methods of signatures... *::Insert *::Remove *::DeleteAndDestroy *::Replace c) callcatcher ignores virtuals. But implementations of "pure virtuals" are not actually virtual methods. If something is declared pure virtual and provides an impl and that base-class impl is not explicitly called anywhere, then that impl can go away. d) gcc will only emit code for inlines if those inlines are used, so sometimes something is listed correctly as unused but some inline code takes a pointer or reference to something which cannot be instantiated so removal of some method/class fails at build time because gcc never emits any code for the unused inline but trips over it at compile time after an attempt at removal. i.e. generally the inline method can go as well because nothing calls it either, a double win. e) if a constructor is listed as unused, and it's the *only* ctor in the class, then no object of that class can be constructed, so the whole thing is unused, which can lead to a whole cascade of tricky but logical fallout. f) if a destructor is listed as unused, and a constructor isn't, then there's a leak somewhere, and the destructor most likely *should* be called. g) there's more actually unused code then what's listed. The idea is that what's listed is definitely unused under the generation configuration, not that it's a list of all unused code. If the count of unused easy hits 0 then we can have a look at the non-easy and if that hits 0, then strip out code from the "release" binaries which only makes sense in debug/dbgutil configurations, and then tackle unused virtual method slots :-) Symbols that are known to be false alarms are listed in: unusedcode.exclude [1] http://www.skynet.ie/~caolan/Packages/callcatcher.html [2] https://bugs.libreoffice.org/show_bug.cgi?id=38832 tro/collabora/co-23.05'>distro/collabora/co-23.05 LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/test/source/sheet
AgeCommit message (Expand)Author
2024-01-27Drop std::as_const from css::uno::Sequence iterationsMike Kaganski
2023-10-20Extended loplugin:ostr: Automatic rewrite O[U]StringLiteral: testStephan Bergmann
2023-10-19Presumed loplugin:cppunitassertequalsStephan Bergmann
2023-06-29tdf#73537 - sc: show author and creation date in calc commentsBalazs Varga
2023-06-26new loplugin:constexprliteralNoel Grandin
2023-05-23Don't even bother to introduce unused variablesStephan Bergmann
2023-04-14loplugin:stringviewparam improvementsNoel Grandin
2023-03-13Use a more reasonable type for XDataPilotDescriptor::checkName nIndex parameterStephan Bergmann
2023-02-16Only specialize CppUnit::assetion_traits<T>::toString member functionsStephan Bergmann
2022-10-24UnoApiTest: factor out common codeXisco Fauli
2022-10-06[API CHANGE] Resolves tdf#131136 - Remove option "Use printer metrics"Heiko Tietze
2022-05-03Just use Any ctor instead of makeAny in testStephan Bergmann
2022-05-03tdf#99708 Save formula bar height to documentSamuel Mehrbrodt
2021-11-29tdf#132145: Synchronize ScAppCfg with configurationMike Kaganski
2021-11-28tdf#132145: Synchronize ScPrintCfg with configurationMike Kaganski
2021-11-27tdf#132145: Synchronize ScInputCfg with configurationMike Kaganski
2021-10-31Prepare for removal of non-const operator[] from Sequence in testMike Kaganski
2021-10-15Remove non-const Sequence::begin()/end() in internal codeMike Kaganski
2021-10-14Avoid COW overhead using css::uno::SequenceMike Kaganski
2021-10-09Typo: *adress* -> *address* (except from not translated German parts)Julien Nabet
2021-10-02tdf#144758: default value for 'table:orientation' attribute is 'row'Mike Kaganski
2021-07-11editengine-columns: tdf#143258 Fix handling rotated textMike Kaganski
2021-06-08editengine-columns: Implement layoutMike Kaganski