【吐槽】从loongson 源码静态检测来看,代码有多脏

如题,使用的工具是开源cppcheck
检测的目标代码是pmon。一大堆警告与错误提示,另外从代码看肯定也没有做过代码覆盖类的测试。有不少断头代码。
上图:

TIM截图20171210090406.png



TIM截图20171210090347.png


TIM截图20171210090442.png


TIM截图20171210090530.png

 
已邀请:

water

赞同来自: dawoo

看了一下错误提示,大部分是 没有初始化和指针没有判断就使用了

TIM图片20171210091916.png

 

xen0n

赞同来自: dawoo

就不说这个,这个 PMON 库,他们起新板子都是复制粘贴的,丝毫不做复用,就连同一片 CPU 型号不同桥片的 targets 都是复制粘贴。。。。。。

dawoo

赞同来自: zzz19760225

可以编个小程序,自动修复这类编码问题。
编码风格在sf.net上已经有小程序了。astyle

water

赞同来自: zzz19760225

 
https://www.cnblogs.com/jiangxinnju/p/4908575.html
 批量格式化
for /R %f in (*.cpp;*.cs;) do D:\OpenSource\AStyle_3.0.1_windows\AStyle\bin\AStyle.exe  --style=ansi "%f"

water

赞同来自:

http://www.loongnix.org/cgit/pmon-loongson3/commit/?id=2858a36a79e20cbef4760923c5225f80f5c530f7
 

void ls_pcie_mem_fixup(struct pci_config_data *pdata)
+{
+ unsigned int dev;
+ unsigned int val;
- /*DC*/
- dev = _pci_make_tag(0, 6, 0);
+ dev = _pci_make_tag(pdata->bus, pdata->dev, pdata->func);
val = _pci_conf_read32(dev, 0x00);
- if ( val != 0xffffffff) // device on the slot
- _pci_conf_write8(dev, 0x3c, 92);
+ /* device on the slot */
+ if ( val != 0xffffffff){
+ if(pdata->type == PCI_DEV){
+ /*write bar*/
+ _pci_conf_write32(dev, 0x10, pdata->start);
+ }else{
+ /*write memory base and memory limit*/
+ val = ((pdata->start >> 16)&0xfff0)|(pdata->end&0xfff00000);
+ _pci_conf_write32(dev, 0x20, val);
+ _pci_conf_write32(dev, 0x24, val);
+ }
+ }
+}
 
 
看这个最新提交的代码
感觉 对指针操作 没有先校验再使用的习惯

flygoatfree

赞同来自:

习惯就好。。不然为什么抱着GCC4.3的工具链不妨。。。

要回复问题请先登录注册