george.karpenkov (George Karpenkov)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 14 2017, 1:59 PM (39 w, 4 d)

Recent Activity

Today

george.karpenkov updated the diff for D42130: [analyzer] Expose return statement from CallExit program point.
Tue, Jan 16, 1:53 PM
george.karpenkov created D42131: [analyzer] Helper method for checking whether two symbolic values are equal.
Tue, Jan 16, 1:51 PM
george.karpenkov created D42130: [analyzer] Expose return statement from CallExit program point.
Tue, Jan 16, 1:50 PM

Fri, Jan 12

george.karpenkov added a comment to D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.

@dcoughlin @NoQ further thoughts? Good to go?

Fri, Jan 12, 4:12 PM

Thu, Jan 11

george.karpenkov added a comment to D41642: lib Fuzzer FreeBSD support.

@krytarowski CMake changes look good to me, but I'm not the code owner, so probably @kcc (or @morehouse) would have to approve it first.
It's interesting that tests requiring intrinsics instrumentation are failing, is it hard to port those as well? (though that could be done in a separate patch)

Thu, Jan 11, 6:03 PM
george.karpenkov added inline comments to D41384: [analyzer] Suppress false positive warnings form security.insecureAPI.strcpy.
Thu, Jan 11, 11:37 AM

Wed, Jan 10

george.karpenkov added inline comments to D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.
Wed, Jan 10, 4:39 PM
george.karpenkov updated the diff for D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.

Changed: now ExecutedLines field belongs to PathDiagnostic and is always calculated. As a result, the change is much smaller.

Wed, Jan 10, 3:40 PM
george.karpenkov added inline comments to D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.
Wed, Jan 10, 3:34 PM

Tue, Jan 9

george.karpenkov committed rL322151: [analyzer] [NFC] Minor refactoring of trackNullOrUndefValue.
[analyzer] [NFC] Minor refactoring of trackNullOrUndefValue
Tue, Jan 9, 5:32 PM
george.karpenkov committed rL322150: [analyzer] [NFC] minor FindLastStoreBRVisitor refactoring.
[analyzer] [NFC] minor FindLastStoreBRVisitor refactoring
Tue, Jan 9, 5:32 PM
george.karpenkov committed rC322151: [analyzer] [NFC] Minor refactoring of trackNullOrUndefValue.
[analyzer] [NFC] Minor refactoring of trackNullOrUndefValue
Tue, Jan 9, 5:32 PM
george.karpenkov committed rC322150: [analyzer] [NFC] minor FindLastStoreBRVisitor refactoring.
[analyzer] [NFC] minor FindLastStoreBRVisitor refactoring
Tue, Jan 9, 5:32 PM
george.karpenkov closed D41751: [analyzer] [NFC] Minor refactoring of trackNullOrUndefValue.
Tue, Jan 9, 5:31 PM
george.karpenkov closed D41790: [analyzer] [NFC] minor FindLastStoreBRVisitor refactoring.
Tue, Jan 9, 5:31 PM
george.karpenkov added inline comments to D41790: [analyzer] [NFC] minor FindLastStoreBRVisitor refactoring.
Tue, Jan 9, 5:24 PM
george.karpenkov committed rL322149: [analyzer] suppress nullability inference from a macro when result is used in….
[analyzer] suppress nullability inference from a macro when result is used in…
Tue, Jan 9, 5:23 PM
george.karpenkov committed rC322149: [analyzer] suppress nullability inference from a macro when result is used in….
[analyzer] suppress nullability inference from a macro when result is used in…
Tue, Jan 9, 5:23 PM
george.karpenkov closed D41749: [analyzer] suppress nullability inference from a macro when result is used in another macro.
Tue, Jan 9, 5:23 PM
george.karpenkov updated the diff for D41848: [analyzer] mark returns of functions where the region passed as parameter was not initialized.
Tue, Jan 9, 4:58 PM
george.karpenkov added a comment to D41848: [analyzer] mark returns of functions where the region passed as parameter was not initialized.

I think you'll also want to handle the case where the region of interest is a field and the containing struct/class is passed to the function (same for when the region of interest is an array element). Subregion::isSubRegionOf() will probably be helpful there.

Tue, Jan 9, 4:57 PM
george.karpenkov added a comment to D41848: [analyzer] mark returns of functions where the region passed as parameter was not initialized.

You'll also probably want to handle when the region of interest is a sub region of 'this'/'self'.
If we find that too many notes are being emitted (once you handle 'self' I think that will be a real possibility) you may want to add a heuristic that only displays the notes when a function has control flow or when some other path may write to the region of interest. (This last could be done with a simple, separate, flow-insensitive syntactic analysis).

Tue, Jan 9, 4:16 PM
george.karpenkov added inline comments to D41848: [analyzer] mark returns of functions where the region passed as parameter was not initialized.
Tue, Jan 9, 4:12 PM
george.karpenkov updated the diff for D41848: [analyzer] mark returns of functions where the region passed as parameter was not initialized.
Tue, Jan 9, 4:12 PM
george.karpenkov retitled D41751: [analyzer] [NFC] Minor refactoring of trackNullOrUndefValue from [analyzer] [NFS] Minor refactoring of trackNullOrUndefValue to [analyzer] [NFC] Minor refactoring of trackNullOrUndefValue.
Tue, Jan 9, 11:06 AM

Mon, Jan 8

george.karpenkov added a comment to D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.

@dcoughlin your high-level comment makes sense, I wanted a least intrusive change.
What about just adding a metadata field to PathDiagnostic?

Mon, Jan 8, 6:53 PM
george.karpenkov added a comment to D41848: [analyzer] mark returns of functions where the region passed as parameter was not initialized.

The case which I don't know how to handle for know is "void" functions without a return statement. Where the note should be attached in those cases?

Mon, Jan 8, 6:51 PM
george.karpenkov created D41848: [analyzer] mark returns of functions where the region passed as parameter was not initialized.
Mon, Jan 8, 6:50 PM

Fri, Jan 5

george.karpenkov created D41790: [analyzer] [NFC] minor FindLastStoreBRVisitor refactoring.
Fri, Jan 5, 3:19 PM

Thu, Jan 4

george.karpenkov created D41751: [analyzer] [NFC] Minor refactoring of trackNullOrUndefValue.
Thu, Jan 4, 6:09 PM
george.karpenkov created D41749: [analyzer] suppress nullability inference from a macro when result is used in another macro.
Thu, Jan 4, 5:08 PM

Wed, Jan 3

george.karpenkov added inline comments to D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.
Wed, Jan 3, 4:33 PM
george.karpenkov updated the diff for D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.
Wed, Jan 3, 4:33 PM
george.karpenkov added a comment to D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.

@dcoughlin @NoQ Any comments?

Wed, Jan 3, 10:55 AM

Tue, Jan 2

george.karpenkov committed rL321682: [analyzer] do not crash with assertion on processing locations of bodyfarmed….
[analyzer] do not crash with assertion on processing locations of bodyfarmed…
Tue, Jan 2, 3:06 PM
george.karpenkov committed rC321682: [analyzer] do not crash with assertion on processing locations of bodyfarmed….
[analyzer] do not crash with assertion on processing locations of bodyfarmed…
Tue, Jan 2, 3:06 PM
george.karpenkov closed D41680: [analyzer] do not crash with assertion on processing locations of bodyfarmed functions.
Tue, Jan 2, 3:06 PM
george.karpenkov added a comment to D41680: [analyzer] do not crash with assertion on processing locations of bodyfarmed functions.

The error is triggered when analyzer finds a bug *inside* the callable captured by the body farm.
Probably we didn't see the crash in the wild because either
a) the clang build did not have assertions enabled
or
b) the HTML output was not enabled

Tue, Jan 2, 2:20 PM
george.karpenkov created D41680: [analyzer] do not crash with assertion on processing locations of bodyfarmed functions.
Tue, Jan 2, 1:38 PM

Thu, Dec 21

george.karpenkov committed rL321320: [analyzer] Add Javascript to analyzer HTML output to allow keyboard navigation..
[analyzer] Add Javascript to analyzer HTML output to allow keyboard navigation.
Thu, Dec 21, 2:58 PM
george.karpenkov committed rC321320: [analyzer] Add Javascript to analyzer HTML output to allow keyboard navigation..
[analyzer] Add Javascript to analyzer HTML output to allow keyboard navigation.
Thu, Dec 21, 2:58 PM
george.karpenkov closed D41414: [analyzer] Add keyboard j/k navigation to HTML reports.
Thu, Dec 21, 2:58 PM
george.karpenkov closed D41414: [analyzer] Add keyboard j/k navigation to HTML reports.
Thu, Dec 21, 2:58 PM
george.karpenkov added inline comments to D41414: [analyzer] Add keyboard j/k navigation to HTML reports.
Thu, Dec 21, 11:13 AM
george.karpenkov updated the diff for D41414: [analyzer] Add keyboard j/k navigation to HTML reports.

Synchronize keyboard navigation with mouse navigation.

Thu, Dec 21, 11:12 AM

Wed, Dec 20

george.karpenkov updated the diff for D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.
Wed, Dec 20, 12:04 PM
george.karpenkov accepted D41409: [analyzer] Fix intermediate diagnostics on paths that go through operator new()..
Wed, Dec 20, 11:50 AM
george.karpenkov updated the diff for D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.

Added tests. It is bad to match against HTML output directly, but we can match against provided JSON.

Wed, Dec 20, 11:04 AM

Tue, Dec 19

george.karpenkov updated the diff for D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.

Proper macro handling.

Tue, Dec 19, 5:24 PM
george.karpenkov updated the diff for D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.

Bugfixes, shortcut, always showing function prototype.

Tue, Dec 19, 4:59 PM
george.karpenkov updated the diff for D41414: [analyzer] Add keyboard j/k navigation to HTML reports.
Tue, Dec 19, 2:29 PM
george.karpenkov updated the diff for D41414: [analyzer] Add keyboard j/k navigation to HTML reports.
Tue, Dec 19, 2:28 PM
george.karpenkov created D41414: [analyzer] Add keyboard j/k navigation to HTML reports.
Tue, Dec 19, 2:27 PM
george.karpenkov updated the diff for D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.

Applying clang-format.

Tue, Dec 19, 10:35 AM
george.karpenkov updated the diff for D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.
Tue, Dec 19, 10:22 AM

Mon, Dec 18

george.karpenkov updated the diff for D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.
Mon, Dec 18, 7:05 PM
george.karpenkov abandoned D40809: [WIP] [analyzer] Dump counterexample traces as C programs.

Abandoned in favor of https://reviews.llvm.org/D41378

Mon, Dec 18, 7:04 PM
george.karpenkov created D41378: [analyzer] support a mode to only show relevant lines in HTML diagnostics.
Mon, Dec 18, 7:04 PM

Dec 15 2017

george.karpenkov added a comment to D40809: [WIP] [analyzer] Dump counterexample traces as C programs.

@alexshap That's a good question, and honestly I am not sure.
It is probably a good idea to have the tests which run the counterexample dumper and check that it does not crash.
As for the contents, I'm not sure: I would like to switch to generating HTML, and testing HTML output is IMO close to useless, because it has all the presentation stuff in it.
(it could have been possible to e.g. make the output mode which generates JSON, test that, and then use javascript templating to convert it to HTML, but that would not allow reusing existing code for outputting HTML formatted code with macros expanded properly)

Dec 15 2017, 5:01 PM
george.karpenkov added a comment to D40809: [WIP] [analyzer] Dump counterexample traces as C programs.

@dcoughlin @NoQ I think this version is reasonable enough to get committed. Another easy iteration would be to change visitor to simply add the diagnostic to path, and move the actual printing to CounterexampleDiagnostics.

Dec 15 2017, 3:20 PM
george.karpenkov updated the diff for D40809: [WIP] [analyzer] Dump counterexample traces as C programs.

Fixed formatting, moved output to diagnostic consumer.

Dec 15 2017, 3:19 PM

Dec 14 2017

george.karpenkov added a comment to D40809: [WIP] [analyzer] Dump counterexample traces as C programs.

@dcoughlin my current iteration creates a PathDiagnosticConsumer which outputs HTML with this report. I think that makes much more sense (as essentially this is a way of visualizing the error path).

Dec 14 2017, 2:46 PM

Dec 13 2017

george.karpenkov requested changes to D30691: [analyzer] Support for naive cross translational unit analysis.

I've tried using the patch, and I got blocked at the following: CTU options are only exposed when one goes through analyze-build frontend, which requires compile_commands.json to be present. I've used libear to generate compile_commands.json, but the generated JSON does not contain the command field, which causes @require before run to die (also, due to the passing style this error was unnecessarily difficult to debug).
So could you write a short documentation somewhere how all pieces fit together? What entry point should be used, what should people do who don't have a build system-generated compile_commands.jsonetc. etc.

Dec 13 2017, 5:26 PM
george.karpenkov updated the diff for D40809: [WIP] [analyzer] Dump counterexample traces as C programs.
Dec 13 2017, 3:22 PM

Dec 12 2017

george.karpenkov added inline comments to D30691: [analyzer] Support for naive cross translational unit analysis.
Dec 12 2017, 11:28 AM

Dec 8 2017

george.karpenkov added a comment to D30691: [analyzer] Support for naive cross translational unit analysis.

Python part looks good to me. I don't know whether @dcoughlin or @NoQ would want to insert additional comments on C++ parts.

Dec 8 2017, 3:22 PM

Dec 6 2017

george.karpenkov added inline comments to D30691: [analyzer] Support for naive cross translational unit analysis.
Dec 6 2017, 2:03 PM

Dec 5 2017

george.karpenkov committed rL319834: [analyzer] do not crash on cases where an array subscript is an rvalue.
[analyzer] do not crash on cases where an array subscript is an rvalue
Dec 5 2017, 1:20 PM
george.karpenkov committed rC319834: [analyzer] do not crash on cases where an array subscript is an rvalue.
[analyzer] do not crash on cases where an array subscript is an rvalue
Dec 5 2017, 1:20 PM
george.karpenkov closed D40584: [analyzer] do not crash on subscripts into ObjC properties by committing rL319834: [analyzer] do not crash on cases where an array subscript is an rvalue.
Dec 5 2017, 1:20 PM
george.karpenkov added inline comments to D40584: [analyzer] do not crash on subscripts into ObjC properties.
Dec 5 2017, 1:05 PM

Dec 4 2017

george.karpenkov updated the diff for D40809: [WIP] [analyzer] Dump counterexample traces as C programs.
Dec 4 2017, 3:13 PM
george.karpenkov created D40809: [WIP] [analyzer] Dump counterexample traces as C programs.
Dec 4 2017, 3:07 PM
george.karpenkov added a comment to D40590: [LibFuzzer] Allow fuzzer to be built standalone.

The build rule is and will remain extremely simple

Dec 4 2017, 2:59 PM
george.karpenkov committed rL319697: [analyzer] [NFC] remove duplicated function.
[analyzer] [NFC] remove duplicated function
Dec 4 2017, 1:00 PM
george.karpenkov committed rC319697: [analyzer] [NFC] remove duplicated function.
[analyzer] [NFC] remove duplicated function
Dec 4 2017, 1:00 PM
george.karpenkov closed D39709: [analyzer] [NFC] remove duplicated function by committing rC319697: [analyzer] [NFC] remove duplicated function.
Dec 4 2017, 1:00 PM
george.karpenkov added inline comments to D40584: [analyzer] do not crash on subscripts into ObjC properties.
Dec 4 2017, 12:30 PM
george.karpenkov updated the diff for D40584: [analyzer] do not crash on subscripts into ObjC properties.
Dec 4 2017, 12:30 PM
george.karpenkov added a comment to D39709: [analyzer] [NFC] remove duplicated function.

@dcoughlin @NoQ OK to commit?

Dec 4 2017, 11:05 AM
george.karpenkov updated the diff for D40584: [analyzer] do not crash on subscripts into ObjC properties.
Dec 4 2017, 10:51 AM
george.karpenkov updated the diff for D40584: [analyzer] do not crash on subscripts into ObjC properties.
Dec 4 2017, 10:49 AM

Nov 30 2017

george.karpenkov updated the diff for D40584: [analyzer] do not crash on subscripts into ObjC properties.

Update: change the logic, do nothing if the index result is an rvalue.

Nov 30 2017, 2:27 PM

Nov 29 2017

george.karpenkov added a comment to D35109: [Analyzer] SValBuilder Comparison Rearrangement.

If the type extension approach is proven to be sound

Nov 29 2017, 4:20 PM
george.karpenkov added a comment to D40584: [analyzer] do not crash on subscripts into ObjC properties.

@dcoughlin @NoQ thoughts? Option B is to relax the assertion when the value is unknown.

Nov 29 2017, 4:17 PM

Nov 28 2017

george.karpenkov created D40584: [analyzer] do not crash on subscripts into ObjC properties.
Nov 28 2017, 3:20 PM

Nov 27 2017

george.karpenkov requested changes to D30691: [analyzer] Support for naive cross translational unit analysis.
Nov 27 2017, 2:35 PM

Nov 9 2017

george.karpenkov committed rL317849: [analyzer] [NFC] Minor ExprEngineC refactoring.
[analyzer] [NFC] Minor ExprEngineC refactoring
Nov 9 2017, 3:33 PM
george.karpenkov closed D39584: [analyzer] [NFC] another very minor ExprEngineC refactoring by committing rL317849: [analyzer] [NFC] Minor ExprEngineC refactoring.
Nov 9 2017, 3:33 PM
george.karpenkov committed rL317839: [analyzer] do not crash when trying to convert an APSInt to an unexpected type.
[analyzer] do not crash when trying to convert an APSInt to an unexpected type
Nov 9 2017, 1:50 PM
george.karpenkov closed D39862: [analyzer] do not crash when trying to convert an APSInt to an unexpected type by committing rL317839: [analyzer] do not crash when trying to convert an APSInt to an unexpected type.
Nov 9 2017, 1:49 PM
george.karpenkov added a comment to D39862: [analyzer] do not crash when trying to convert an APSInt to an unexpected type.

I'm curious if the crash would turn into an assertion failure during getRawSVal() after D38801 is committed.

Nov 9 2017, 1:49 PM
george.karpenkov added a comment to D39861: [compiler-rt] Fix const and volatile qualifier warnings.

Looks good to me, but maybe someone else should take a look as well.

Nov 9 2017, 12:24 PM · Restricted Project
george.karpenkov created D39862: [analyzer] do not crash when trying to convert an APSInt to an unexpected type.
Nov 9 2017, 12:23 PM
george.karpenkov committed rL317820: [analyzer] assume bitwise arithmetic axioms.
[analyzer] assume bitwise arithmetic axioms
Nov 9 2017, 11:06 AM
george.karpenkov closed D39707: [analyzer] assume bitwise arithmetic axioms by committing rL317820: [analyzer] assume bitwise arithmetic axioms.
Nov 9 2017, 11:06 AM

Nov 8 2017

george.karpenkov added a comment to D39584: [analyzer] [NFC] another very minor ExprEngineC refactoring.

@dcoughlin OK to commit?

Nov 8 2017, 4:51 PM
george.karpenkov added inline comments to D39711: [analyzer] ObjCGenerics: Don't warn on cast conversions involving explicit cast.
Nov 8 2017, 3:42 PM
george.karpenkov accepted D39800: [analyzer] pr34404: Fix a crash on pointers to members in nested anonymous structures..
Nov 8 2017, 3:38 PM
george.karpenkov added a comment to D39803: [analyzer] pr34766: Fix a crash on explicit construction of std::initializer_list..

I think I lack context to completely get what is going on here: I assume we don't model the assignment here?

Nov 8 2017, 3:36 PM