summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [analyzer] Fix a bug in RetainReleaseChecker diagnostics. It gives more ↵Anna Zaks2011-09-302-2/+2
| | | | | | precise error message on the modified test case (and prevents duplicate diagnostics when we purge at block granularity). llvm-svn: 140840
* Mips64 arithmetic and logical instructions with one source register andAkira Hatanaka2011-09-302-0/+66
| | | | | | immediate. llvm-svn: 140839
* [analyzer] Add -analyzer-purge option which can take on multiple values, ↵Anna Zaks2011-09-3010-35/+94
| | | | | | remove -analyzer-purge=none. (Small refactor as well: move the work of constructing AnalysisManager from the callers to the class itself.) llvm-svn: 140838
* Some fixes for MS-style asm parsing: specifically, add some error checking, ↵Eli Friedman2011-09-304-36/+131
| | | | | | and handle asm comments using semicolons correctly. (The comments are actually surprisingly tricky.) llvm-svn: 140837
* Add an accompanying option to the 'frame variable -w' command to, instead of ↵Johnny Chen2011-09-306-8/+231
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | watching the variable, watch the location pointed to by the variable. An example, (lldb) frame variable -w write -x 1 -g g_char_ptr (char *) g_char_ptr = 0x0000000100100860 ""... Watchpoint created: WatchpointLocation 1: addr = 0x100100860 size = 1 state = enabled type = w declare @ '/Volumes/data/lldb/svn/trunk/test/functionalities/watchpoint/hello_watchlocation/main.cpp:21' ... (lldb) c Process 3936 resuming ... rocess 3936 stopped * thread #2: tid = 0x3403, 0x00000001000009b7 a.out`do_bad_thing_with_location(char*, char) + 23 at main.cpp:27, stop reason = watchpoint 1 frame #0: 0x00000001000009b7 a.out`do_bad_thing_with_location(char*, char) + 23 at main.cpp:27 24 do_bad_thing_with_location(char *char_ptr, char new_val) 25 { 26 *char_ptr = new_val; -> 27 } 28 29 uint32_t access_pool (uint32_t flag = 0); 30 (lldb) Also add TestWatchLocation.py test to exercise this functionality. llvm-svn: 140836
* Remember to mark the OptionValueUUID as set in SetOptionValue. Jim Ingham2011-09-301-0/+2
| | | | llvm-svn: 140835
* ARM fix encoding of VMOV.f32 and VMOV.f64 immediates.Jim Grosbach2011-09-308-145/+128
| | | | | | | | | | | Encode the immediate into its 8-bit form as part of isel rather than later, which simplifies things for mapping the encoding bits, allows the removal of the custom disassembler decoding hook, makes the operand printer trivial, and prepares things more cleanly for handling these in the asm parser. rdar://10211428 llvm-svn: 140834
* Add docstring to in_range() function residing in the lldb module.Johnny Chen2011-09-301-0/+1
| | | | llvm-svn: 140833
* Fix extraneous import as a result of the last change.Johnny Chen2011-09-301-1/+1
| | | | llvm-svn: 140832
* constexpr functions are implicitly const. More tests to follow.Richard Smith2011-09-306-10/+30
| | | | llvm-svn: 140831
* Migrate the in_range(symbol, section) and symbol_iter(module, section) ↵Johnny Chen2011-09-304-36/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | utility functions from lldbutil.py to the lldb.py proper. The in_range() function becomes a function in the lldb module. And the symbol_iter() function becomes a method within the SBModule called symbol_in_section_iter(). Example: # Iterates the text section and prints each symbols within each sub-section. for subsec in text_sec: print INDENT + repr(subsec) for sym in exe_module.symbol_in_section_iter(subsec): print INDENT2 + repr(sym) print INDENT2 + 'symbol type: %s' % symbol_type_to_str(sym.GetType()) might produce this following output: [0x0000000100001780-0x0000000100001d5c) a.out.__TEXT.__text id = {0x00000004}, name = 'mask_access(MaskAction, unsigned int)', range = [0x00000001000017c0-0x0000000100001870) symbol type: code id = {0x00000008}, name = 'thread_func(void*)', range = [0x0000000100001870-0x00000001000019b0) symbol type: code id = {0x0000000c}, name = 'main', range = [0x00000001000019b0-0x0000000100001d5c) symbol type: code id = {0x00000023}, name = 'start', address = 0x0000000100001780 symbol type: code [0x0000000100001d5c-0x0000000100001da4) a.out.__TEXT.__stubs id = {0x00000024}, name = '__stack_chk_fail', range = [0x0000000100001d5c-0x0000000100001d62) symbol type: trampoline id = {0x00000028}, name = 'exit', range = [0x0000000100001d62-0x0000000100001d68) symbol type: trampoline id = {0x00000029}, name = 'fflush', range = [0x0000000100001d68-0x0000000100001d6e) symbol type: trampoline id = {0x0000002a}, name = 'fgets', range = [0x0000000100001d6e-0x0000000100001d74) symbol type: trampoline id = {0x0000002b}, name = 'printf', range = [0x0000000100001d74-0x0000000100001d7a) symbol type: trampoline id = {0x0000002c}, name = 'pthread_create', range = [0x0000000100001d7a-0x0000000100001d80) symbol type: trampoline id = {0x0000002d}, name = 'pthread_join', range = [0x0000000100001d80-0x0000000100001d86) symbol type: trampoline id = {0x0000002e}, name = 'pthread_mutex_lock', range = [0x0000000100001d86-0x0000000100001d8c) symbol type: trampoline id = {0x0000002f}, name = 'pthread_mutex_unlock', range = [0x0000000100001d8c-0x0000000100001d92) symbol type: trampoline id = {0x00000030}, name = 'rand', range = [0x0000000100001d92-0x0000000100001d98) symbol type: trampoline id = {0x00000031}, name = 'strtoul', range = [0x0000000100001d98-0x0000000100001d9e) symbol type: trampoline id = {0x00000032}, name = 'usleep', range = [0x0000000100001d9e-0x0000000100001da4) symbol type: trampoline [0x0000000100001da4-0x0000000100001e2c) a.out.__TEXT.__stub_helper [0x0000000100001e2c-0x0000000100001f10) a.out.__TEXT.__cstring [0x0000000100001f10-0x0000000100001f68) a.out.__TEXT.__unwind_info [0x0000000100001f68-0x0000000100001ff8) a.out.__TEXT.__eh_frame llvm-svn: 140830
* Fix typo.Richard Smith2011-09-301-1/+1
| | | | llvm-svn: 140829
* Suggest adding 'constexpr' if the GNU extension for in-class initializers ↵Richard Smith2011-09-304-3/+9
| | | | | | for static const float members is used in C++11 mode. llvm-svn: 140828
* Precompute a bit vector of register sub-classes.Jakob Stoklund Olesen2011-09-302-0/+35
| | | | llvm-svn: 140827
* Order register classes topologically.Jakob Stoklund Olesen2011-09-302-1/+41
| | | | | | | | | All register classes are given a lower ID than their sub-classes. Cliques are ordered alphabetically. This will be used to simplify some sub-class operations. llvm-svn: 140826
* Fill delay slot with useful instructions. Modified from Sparc's version of delayAkira Hatanaka2011-09-292-12/+216
| | | | | | | | slot filler. Patch by Reed Kotler at Mips Technologies. llvm-svn: 140825
* Create a machine basic block in the constant pool and retrieve the symbol ↵Bill Wendling2011-09-292-0/+7
| | | | | | for an MBB. llvm-svn: 140824
* Support creating a constant pool value for a machine basic block.Bill Wendling2011-09-292-2/+30
| | | | | | | This is used when we want to take the address of a machine basic block, but it's not associated with a BB in LLVM IR. llvm-svn: 140823
* Fixed an issue where a lexical block or inlined function might have bad debugGreg Clayton2011-09-295-7/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | information generated for it. Say we have a concrete function "foo" which has inlined function "a" which calls another inlined function "b": foo 1 { 2 { a () 3 { b () 4 { } } } } Sometimes we see the compiler generate an address range in the DWARF for "foo" (block 1 above) as say [0x1000-0x1100). Then the range for "a" is something like [0x1050-0x1060) (note that it is correctly scoped within the "foo" address range). And then we get "b" which is a child of "a", yet the debug info says it has a range of [0x1060-0x1080) (not contained within "a"). We now detect this issue when making our blocks and add an extra range to "a". Also added a new "lldb" logging category named "symbol" where we can find out about symbol file errors and warnings. llvm-svn: 140822
* Fold two identical set lookups into one. No functionality change.Nick Lewycky2011-09-291-4/+2
| | | | llvm-svn: 140821
* Mark the ExtWarn for in-class initialization of static const float members ↵Richard Smith2011-09-297-23/+21
| | | | | | as a GNU extension. Don't extend the scope of this extension to all literal types in C++0x mode. llvm-svn: 140820
* Add an additional "frame select" usage where it will re-select the current frameJason Molenda2011-09-291-0/+6
| | | | | | | if no frame is specified. This is useful to get the source context lines re-displayed when you need a reminder of where you are in the source currently. llvm-svn: 140819
* Minor refactoring. Enumerators may inherit the deprecated/unavailable Fariborz Jahanian2011-09-292-37/+43
| | | | | | | attributes from the enumeration type. // rdar://10201690 llvm-svn: 140818
* Fix verbose logging of unwinders.Jason Molenda2011-09-292-16/+16
| | | | llvm-svn: 140817
* Switch to ArrayRef<CodeGenRegisterClass*>.Jakob Stoklund Olesen2011-09-298-66/+58
| | | | | | | This makes it possible to allocate CodeGenRegisterClass instances dynamically and reorder them. llvm-svn: 140816
* When eliminating unnecessary retain+autorelease on return values,Dan Gohman2011-09-292-1/+61
| | | | | | | handle the case where the retain is in a different basic block. rdar://10210274. llvm-svn: 140815
* Don't eliminate objc_retainBlock calls on stack objects if theDan Gohman2011-09-292-8/+83
| | | | | | | objc_retainBlock call is potentially responsible for copying the block to the heap to extend its lifetime. rdar://10209613. llvm-svn: 140814
* Centralize the warning reporting and use ReportWarning & ReportError ↵Jim Ingham2011-09-292-8/+30
| | | | | | everywhere we were using fprintf(stderr directly. llvm-svn: 140813
* PR11040: CheckICE should not allow an lvalue bitcast as part of an integer ↵Eli Friedman2011-09-292-5/+13
| | | | | | constant expression. llvm-svn: 140812
* Modify the delegation chain from MachThreadList -> MachThread -> ↵Johnny Chen2011-09-2910-20/+107
| | | | | | | | | | | | | | DNBArchProtocol so that when the watchpoint state is changed, not only does the change propagate to all the thread instances, it also updates a global debug state, if chosen by the DNBArchProtocol derivative. Once implemented, the DNBArchProtocol derivative, also makes sure that when new thread comes along, it tries to inherit from the global debug state, if it is valid. Modify TestWatchpointMultipleThreads.py to test this functionality. llvm-svn: 140811
* Tidy up. Formatting.Jim Grosbach2011-09-291-8/+5
| | | | llvm-svn: 140810
* In C++0x, static const volatile data members cannot be initialized in-class.Richard Smith2011-09-294-4/+36
| | | | llvm-svn: 140809
* Free up some space in lldb_private::Block by not requiring a sibling pointer.Greg Clayton2011-09-292-34/+55
| | | | | | | | The old way of storing blocks used to use the sibling pointer, but now all blocks contain a collection of shared pointers to blocks so this isn't required anymore and a parent can be asked to find the sibling block for a child block. llvm-svn: 140808
* Fix typo.Nick Lewycky2011-09-291-1/+1
| | | | llvm-svn: 140807
* Mips64 arithmetic and logical instructions with two source registers.Akira Hatanaka2011-09-292-0/+66
| | | | llvm-svn: 140806
* Windows port work by Ruben Van BoxemHoward Hinnant2011-09-295-8/+101
| | | | llvm-svn: 140805
* Missed one place where we should use the target's SourceManager, not the ↵Jim Ingham2011-09-291-1/+1
| | | | | | debugger's. llvm-svn: 140804
* Clean up uses of switch instructions so they are not dependent on the ↵Eli Friedman2011-09-298-33/+61
| | | | | | operand ordering. Patch by Stepan Dyatkovskiy. llvm-svn: 140803
* PR11000: Fix crash on invalid.Richard Smith2011-09-292-1/+10
| | | | llvm-svn: 140802
* constexpr: semantic checking for constexpr variables.Richard Smith2011-09-2911-56/+248
| | | | | | We had an extension which allowed const static class members of floating-point type to have in-class initializers, 'as a C++0x extension'. However, C++0x does not allow this. The extension has been kept, and extended to all literal types in C++0x mode (with a fixit to add the 'constexpr' specifier). llvm-svn: 140801
* c - Enumerators may inherit the deprecated/unavailable Fariborz Jahanian2011-09-295-9/+41
| | | | | | | attributes from the enumeration type. // rdar://10201690 llvm-svn: 140800
* Add more comments to several checker callback functions.Anna Zaks2011-09-291-0/+18
| | | | llvm-svn: 140797
* Add support for alignment-specifiers in C1X and C++11, removePeter Collingbourne2011-09-2916-58/+153
| | | | | | | support for the C++0x draft [[align]] attribute and add the C1X standard header file stdalign.h llvm-svn: 140796
* Add a warning group for warnings about using C1X features as extensionsPeter Collingbourne2011-09-293-5/+6
| | | | llvm-svn: 140795
* Add support for parsing an attribute-specifier-seq containing multiplePeter Collingbourne2011-09-293-8/+26
| | | | | | attribute-specifiers llvm-svn: 140794
* Add support for parsing the optional attribute-specifier-seq at thePeter Collingbourne2011-09-292-0/+5
| | | | | | end of a decl-specifier-seq llvm-svn: 140793
* Simplify.Devang Patel2011-09-291-11/+17
| | | | llvm-svn: 140789
* If the new .apple_names and .apple_types DWARF accelerator tablesGreg Clayton2011-09-294-13/+46
| | | | | | | | | are available, we currently will still index the DWARF ourselves and assert if the name lookups differ. This will help us transition to the new accelerator tables and make sure they are workng before we switch over entirely. llvm-svn: 140788
* Clarify comments.Devang Patel2011-09-292-4/+3
| | | | llvm-svn: 140787
* Remove unnecessary and unused data member.Devang Patel2011-09-292-3/+2
| | | | llvm-svn: 140786
OpenPOWER on IntegriCloud