Darryl L. Miles
5058152c8f
K&R wiring.h wireInt.h: conversion to ANSI
...
K&R obsolete syntax removal for C23 compatibility series
2025-02-23 10:21:41 -05:00
Darryl L. Miles
92c4fc35db
ResMain.c: use-after-free: simple reorder of statements
2025-02-23 10:20:41 -05:00
Tim Edwards
48708c52a4
Removed two unused statements from EFantenna.c, per the discussion
...
in github pull request #377 .
2025-02-23 10:15:48 -05:00
Darryl L. Miles
983f4cb76f
lef: constify remaining .data into .rodata
2025-02-22 21:48:17 -05:00
Darryl L. Miles
ac37927186
lef: constify static data and LefNextToken() return
...
LefHelper_DBTechNameType_LefLower() identified and introduced during
conversion to const data usage.
Only side-effect is some log messages will use original verbatim token
now instead of lowercase version (but this seems ok when file parsing,
to quote the problematic information source verbatim)
2025-02-22 21:48:17 -05:00
Darryl L. Miles
451dab4b9b
lef: constify strings in data structures of lef module
2025-02-22 21:48:17 -05:00
Darryl L. Miles
ed87c3a98b
lef: cleanup mark unnecessary call to function with no side-effects
...
Maybe these function call can be removed or at least their return
value discarded (as the returned value is never used).
2025-02-22 21:48:17 -05:00
Darryl L. Miles
56bf27548d
lef: cleanup remove unused local/static variables
...
Many appear to be the result of copy-and-paste from a similar func
nearby.
2025-02-22 21:48:17 -05:00
Darryl L. Miles
9d0cd63a4e
lef: use 'const' with 'rcsid'
2025-02-22 21:48:17 -05:00
Darryl L. Miles
ad6ecb5bbb
lef/*.h: constify string function arguments
2025-02-22 21:48:17 -05:00
Darryl L. Miles
695692b620
K&R lef/*.c: bulk forward reference function prototype conversion
...
K&R obsolete syntax removal for C23 compatibility series
2025-02-22 21:48:17 -05:00
Darryl L. Miles
05a5b169bc
defWrite.c: defHNsprintfPrefix() constify implementation
2025-02-22 21:48:17 -05:00
Darryl L. Miles
4930e0307a
tcllef.c: missing include textio/textio.h (due to TxPrint usage)
2025-02-22 21:48:17 -05:00
Darryl L. Miles
19e03fc4f8
K&R lef/*.c: bulk function implementation conversion
...
Some function parameters (char *sname) have been made const due
referencing const data sources.
K&R obsolete syntax removal for C23 compatibility series
2025-02-22 21:48:17 -05:00
Darryl L. Miles
a1f7e4ed5e
lef: post K&R constify ripple
...
These functions are using data that is already const.
2025-02-22 21:48:17 -05:00
Darryl L. Miles
f7c550e82f
defRead.c: DefRead() incorrect arg0 to LefParseEndStatement()
2025-02-22 21:48:17 -05:00
Darryl L. Miles
25ec9fccef
K&R lef.h lefInt.h: conversion to ANSI
...
K&R obsolete syntax removal for C23 compatibility series
2025-02-22 21:48:17 -05:00
Darryl L. Miles
acf0e474e8
K&R lefInt.h: missing prototype removal
...
Function does not appear to exist:
extern char *LefGetInput();
K&R obsolete syntax removal for C23 compatibility series
2025-02-22 21:48:17 -05:00
Darryl L. Miles
a764fdbbd1
CodeQL MemoryMayNotBeFreed.ql grTCairo1.c GrTCairoPlotSVG()
...
created use of 'alloc' local variable to track when an allocation occurred
so exit path logic is more straight forward for compiler/analyser to see
potential optimisations.
the previous version was probably working just fine
2025-02-22 21:35:23 -05:00
Darryl L. Miles
e565b4c360
CodeQL MemoryMayNotBeFreed.ql NMnetlist.c NMWriteNetlist()
...
created use of 'alloc' local variable to track when an allocation occurred
so exit path logic is more straight forward for compiler/analyser to see
potential optimisations.
no attempt to free memory was made previously
2025-02-22 21:35:23 -05:00
Darryl L. Miles
37fa75dd77
CodeQL MemoryMayNotBeFreed.ql ResRex.c ResCheckSimNodes()
...
created use of 'alloc' local variable to track when an allocation occurred
so exit path logic is more straight forward for compiler/analyser to see
potential optimisations.
2025-02-22 21:35:23 -05:00
Darryl L. Miles
c33b6be2bb
CodeQL MemoryMayNotBeFreed.ql rtrChannel.c RtrChannelRoute()
...
Unclear with all the flip operations if there is some kind of attachment
(exchange of channels), the other 2 channels created in the function
are also cleaned up.
2025-02-22 21:35:23 -05:00
Darryl L. Miles
b5d068b0ea
CodeQL MemoryMayNotBeFreed.ql rtrCmd.c CmdRoute()
2025-02-22 21:35:23 -05:00
Darryl L. Miles
cb9333804a
CodeQL MemoryMayNotBeFreed.ql rtrCmd.c CmdRoute()
...
temporary channel created to run command is not cleaned up
2025-02-22 21:35:23 -05:00
Darryl L. Miles
822a95ab35
CodeQL MemoryMayNotBeFreed.ql antennacheckVisit()
...
Looks like straight forward exit path doesn't cleanup locally malloc
block.
2025-02-22 21:35:23 -05:00
Darryl L. Miles
7508a9e6b7
CodeQL MemoryMayNotBeFreed.ql calma/**
...
Looks straight forward lost pointer to recently malloced block
2025-02-22 21:35:23 -05:00
Darryl L. Miles
99c448407c
CodeQL LargeParameter.ql: large objects returned (around fd_set usage)
...
now using pointers (fd_set*)
constify API where possible
2025-02-22 21:31:22 -05:00
Darryl L. Miles
6a537c4659
CodeQL IncorrectNotOperatorUsage.ql rtrDcmppose.c rtrCLEAR() usages
...
Maybe it was a single bit and '!' operator inverted a single bit, but it
appears to be a 4-bit mask today.
TODO check rtrMARKED() this looks like it uses '&' operator is in use
but from the context of a bitmask maybe this should be '|' operator.
2025-02-22 21:31:22 -05:00
Darryl L. Miles
ca9229b35a
CodeQL MissingNegativtyTest.ql ttype>=0 ResSimSubckt()
...
This variable is used as array index, but the extGetDevType() API allows
a negative return to occur.
2025-02-22 21:31:22 -05:00
Darryl L. Miles
ad1d9923f9
CodeQL MissingNegativtyTest.ql magictype>=0 defWrite.c
...
defnodeVisit()
defblockageVisit()
This variable is used as array index, but the DBTechNameType() API allows
a negative return to occur.
2025-02-22 21:31:22 -05:00
Darryl L. Miles
38b25c5d34
CodeQL InconsistentNullnessTest.ql ourgl != NULL
...
ourgl local variable is set to a non-NULL value (first initialization)
in code that is in lines below where it is dereferenced in a loop.
Somewhere in the loop there is a point where the precondition of ourgl
being set to non-null is expected.
ASSERT added.
2025-02-22 21:31:22 -05:00
Darryl L. Miles
d18b40d401
CodeQL LateNegativeTest.ql defRead.c routerLayer>=0
...
Code nearby tests 'routeLayer' for negativeness, but it is set and then
used as array index without such a test.
ASSERT added.
2025-02-22 21:31:21 -05:00
Tim Edwards
8ebad7d1a9
Implemented the fix to an expression that should have been logical-
...
AND and not bitwise-AND, as pointed out in PR #376 by Darryl Miles.
2025-02-22 21:15:45 -05:00
Darryl L. Miles
a60259ab63
CodeQL FileMayNotBeClosed.ql PaCheckCompressed() apparently leaks an 'fd'
...
CodeQL complains of a _potential_ leak (I can't see it), seems false
positive but also a clear case to use POSIX access(R_OK) instead.
2025-02-22 21:02:49 -05:00
Darryl L. Miles
e88dcba1c5
CodeQL File{MayNot,Never}BeClosed.ql file-handle resource leaks
...
Guided by CodeQL static code analyser.
FileMayNotBeClosed.ql
FileMayNeverBeClosed.ql
The trick with "if(fp != stdout)" is problematic (to analyser) as
technically 'stdout' can be a global pointer that COULD be modified any
time, so it might have changed between the fopen() and fclose() calls so
the close MAY NEVER occurs (which is problem the analyzer can see).
So local state is maintained as a bool which will also clarify to the
compiler see the intention without concern for external stdout
modification.
Some items appear to be out and out leaks when certain commands are use.
2025-02-22 21:02:49 -05:00
Tim Edwards
7960020f7c
Updated the HTML documentation on the "wire" command to add the
...
new syntax implemented earlier today that preserves interactive
wiring moves when logging commands.
2025-02-22 21:00:04 -05:00
Darryl L. Miles
554327f1d3
plowSrShadowXxx() callback plowShowShadow() correct return type
...
was void, now int.
2025-02-22 20:58:59 -05:00
Darryl L. Miles
97ff043c1a
plowInitRule() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
93054eb4e6
plowPropagateRect() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
8ee328811c
plowSrShadowInitial() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
86bb97948f
plowSrShadowBack() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
cfd71f1b5d
plowSrShadow() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
d149c83a8a
plowSrOutline() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
cf0f9311ab
plowFindWidthBack() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
2ff6d6113d
plowFindWidth() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
bc5a4a0fb1
Plow() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
6db34b6aa9
gaMazeRoute() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
97189f6219
irRoute.c: LayerInTouchingContact() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
90c03738ce
ExtPerim.c: extEnumTilePerim() pass by-pointer const TileTypeBitMask* instead of by-value
...
sizeof(TileTypeBitMask) == 32
2025-02-22 20:58:59 -05:00
Darryl L. Miles
e8d7888300
extract.h/EFVisit.h include database.h for TileTypeBitMask
...
This has a knock on effect of causing EFvisit.c to require database.h
to be defined BEFORE the EFint.h due to an identical copy of ArrayInfo
type being present in both files.
Maybe there should be database_arrayinfo.h ? To remove the copy.
2025-02-22 20:58:59 -05:00