Commit Graph

129594 Commits

Author SHA1 Message Date
Chandler Carruth b5c1a2b87c LLVM-GCC is dead. Really. I promise. ;]
More importantly, these files don't even have the variable that these
lines purport to substite.

llvm-svn: 159304
2012-06-27 23:34:25 +00:00
Dmitri Gribenko 632d58afab Fix an infinite loop in comment lexer: we were not advancing in the input character stream when we saw a '<' that is not a start of an HTML tag.
llvm-svn: 159303
2012-06-27 23:28:29 +00:00
Jack Carter ef40238a0e This allows hello world to be compiled for Mips 64 direct object.
It takes advantage of r159299 which introduces relocation support for N64. 
elf-dump needed to be upgraded to support N64 relocations as well.

This passes make check.

Jack

llvm-svn: 159302
2012-06-27 23:13:42 +00:00
Jack Carter b9f9de93df This allows hello world to be compiled for Mips 64 direct object.
It takes advantage of r159299 which introduces relocation support for N64. 
elf-dump needed to be upgraded to support N64 relocations as well.

This passes make check.

Jack

llvm-svn: 159301
2012-06-27 22:48:25 +00:00
Chad Rosier 51afe6397b Whitespace.
llvm-svn: 159300
2012-06-27 22:34:28 +00:00
Jack Carter 8ad0c272af The ELF relocation record format is different for N64
which many Mips 64 ABIs use than for O64 which many 
if not all other target ABIs use.

Most architectures have the following 64 bit relocation record format:

  typedef struct
  {
    Elf64_Addr   r_offset; /* Address of reference */
    Elf64_Xword  r_info;   /* Symbol index and type of relocation */
  } Elf64_Rel;

  typedef struct
  {
    Elf64_Addr    r_offset;
    Elf64_Xword   r_info;
    Elf64_Sxword  r_addend;
  } Elf64_Rela;

Whereas N64 has the following format:

  typedef struct
  {
    Elf64_Addr    r_offset;/* Address of reference */
    Elf64_Word  r_sym;     /* Symbol index */
    Elf64_Byte  r_ssym;    /* Special symbol */
    Elf64_Byte  r_type3;   /* Relocation type */
    Elf64_Byte  r_type2;   /* Relocation type */
    Elf64_Byte  r_type;    /* Relocation type */
  } Elf64_Rel;

  typedef struct
  {
    Elf64_Addr    r_offset;/* Address of reference */
    Elf64_Word  r_sym;     /* Symbol index */
    Elf64_Byte  r_ssym;    /* Special symbol */
    Elf64_Byte  r_type3;   /* Relocation type */
    Elf64_Byte  r_type2;   /* Relocation type */
    Elf64_Byte  r_type;    /* Relocation type */
    Elf64_Sxword  r_addend;
  } Elf64_Rela;

The structure is the same size, but the r_info data element 
is now 5 separate elements. Besides the content aspects, 
endian byte reordering will be different for the area with 
each element being endianized separately.

I treat this as generic and continue to pass r_type as 
an integer masking and unmasking the byte sized N64 
values for N64 mode. I've implemented this and it causes no 
affect on other current targets.

This passes make check.

Jack

llvm-svn: 159299
2012-06-27 22:28:30 +00:00
Greg Clayton fed39aa653 Added the ability to read the dSYM plist file with source remappings even when DebugSymbols isn't used to find the dSYM. We now parse the plist as XML in the MacOSX symbol vendor.
Added the ability to get a section load address given a target which is needed for a previous checking which saves crashlogs.

llvm-svn: 159298
2012-06-27 22:22:28 +00:00
Timur Iskhodzhanov 0b9d158a7c Two more tests for PR13207 - wrong mangling of templates with back references [-cxx-abi microsoft]
llvm-svn: 159296
2012-06-27 21:53:00 +00:00
Eli Friedman c24e2fb1fb Propagate lvalue alignment into bitfields. Per report on cfe-dev.
llvm-svn: 159295
2012-06-27 21:19:48 +00:00
Dmitry Vyukov 090f345522 tsan: prevent insertion of unwanted memset/memcpy/memcmp into runtime
llvm-svn: 159294
2012-06-27 21:00:23 +00:00
Fariborz Jahanian bbd0d6992b objective-c mrc: Issue warning for mrc, as is done for arc, when
property retains a block object as it could be on 
the stack. // rdar://11761511

llvm-svn: 159293
2012-06-27 20:52:46 +00:00
Richard Smith 7659b12b02 Refactoring after r159290: don't hold onto and check a misleading QualType.
llvm-svn: 159292
2012-06-27 20:29:39 +00:00
Greg Clayton 234076c429 Fixed the "target modules list" to not crash in Debug builds due to an assertion where the mutex in the "module_list" local variable would assert when the lldb_private::Mutex would destruct. What was happening was the mutex in the module list was being locked by a local locker object and then "module_list" would get destroyed before the locker and the locker still had the mutex locked which would cause the pthread call to destroy the mutex to fail with "Resource busy" and it would cause a mutex leak.
llvm-svn: 159291
2012-06-27 20:26:19 +00:00
Richard Smith 56471fdba8 Check for non-POD vararg argument type after default argument promotion, not
before, so we don't incorrectly think arguments of function type are non-POD.

llvm-svn: 159290
2012-06-27 20:23:58 +00:00
Greg Clayton 8567355e8c Modify the ranges_access() helper function to be able to lookup the address range in a block given an address. Since blocks can have multiple discontiguous ranges, it helps to be able to get the current address range for the current block in a frame. This can be used in code like:
curr_block_range = lldb.frame.block.range[lldb.frame.addr]

llvm-svn: 159289
2012-06-27 20:23:09 +00:00
Greg Clayton 3e6dde6652 Fixed the get_process_thread_list function to correctly return a list of all threads in a process.
llvm-svn: 159288
2012-06-27 20:19:56 +00:00
Greg Clayton febc8bb479 Make the IsValid() operator for SBLineEntry "do the right thing" by returning true if the line entry is valid, not just if the opaque pointer to lldb_private::LineEntry is non NULL.
llvm-svn: 159287
2012-06-27 20:18:01 +00:00
Greg Clayton f47b2c26bb Added a "save_crashlog" command to the lldb.macosx.crashlog package that allow you to dump your current process state out to a crash log file. This will dump all of the target module information with all load addresses, UUID values, and shared library paths, as well as all thread stacks and the crash log header. This will make it easy for us to save the current state of a process and then reload it later into LLDB.
llvm-svn: 159286
2012-06-27 20:02:04 +00:00
Greg Clayton 8921ce8396 Fix the copy constructor and assignement operator for ModuleList to be thread safe.
llvm-svn: 159285
2012-06-27 19:59:26 +00:00
Greg Clayton 89d4f338a7 Check the return status of the make command.
llvm-svn: 159284
2012-06-27 19:57:59 +00:00
Greg Clayton 5b889eec4a Remove dependency on internal header file.
llvm-svn: 159283
2012-06-27 19:57:13 +00:00
Fariborz Jahanian 91fc39e313 patch to suggest 'static' function should be 'static inline'
when it appears to be unused and occurs in a header.
// rdar://11202617

llvm-svn: 159282
2012-06-27 19:43:29 +00:00
Anshuman Dasgupta 20013f1368 Refactor and speed up DFA generator.
Patch by Ivan Llopard!

llvm-svn: 159281
2012-06-27 19:38:29 +00:00
Rafael Espindola b7f5a9c5cd Implement John McCall's review of r159212 other than the this pointer not
being updated. Will fix that in a second.

llvm-svn: 159280
2012-06-27 18:18:05 +00:00
Rafael Espindola a245edc82f Fix a crash I introduced in r159212.
llvm-svn: 159279
2012-06-27 17:44:39 +00:00
Dmitry Vyukov b94a8f0c39 tsan: remember and pass original ucontext to signal handlers (instead of a fabricated one)
llvm-svn: 159278
2012-06-27 17:35:35 +00:00
Jim Ingham 70f11f88e3 Make a way to set the result status for Python defined commands, and don't overwrite the status of the result if
the python command has set it.

llvm-svn: 159273
2012-06-27 17:25:36 +00:00
Matt Beaumont-Gay a58862310c Revert r159136 due to PR13124.
Original commit message:

If a constant or a function has linkonce_odr linkage and unnamed_addr, mark it
hidden. Being linkonce_odr guarantees that it is available in every dso that
needs it. Being a constant/function with unnamed_addr guarantees that the
copies don't have to be merged.

llvm-svn: 159272
2012-06-27 17:10:33 +00:00
Dmitri Gribenko 1669f70273 Remove unsigned and a pointer from a comment token (so that each token can have only one semantic string value attached to it), at a cost of adding an additional token.
llvm-svn: 159270
2012-06-27 16:53:58 +00:00
Dmitri Gribenko 60ddd8a1b1 Comment lexer: counting backwards from token end is thought to be confusing. We already have a pointer to the beginning of the token, so use it to extract the text instead.
llvm-svn: 159269
2012-06-27 16:30:35 +00:00
Duncan Sands 206fc30ab1 When users ask for -mcpu=help or -mattr=help, just output the help without
requiring a module.  Original patch by Sunay Ismail, simplified by Arnaud
de Grandmaison, then complicated by me (if a triple was specified on the
command line, output help for that triple, not for the default).

llvm-svn: 159268
2012-06-27 16:23:48 +00:00
Dmitri Gribenko 8fcf0e7870 Add a test for unterminated /* comments.
llvm-svn: 159267
2012-06-27 16:05:49 +00:00
Dmitry Vyukov 97c26bdaea tsan: refactor signal handling code (move some definitions out of common header)
llvm-svn: 159266
2012-06-27 16:05:06 +00:00
Duncan Sands 514db117bd Some reassociate optimizations create new instructions, which they insert just
before the expression root.  Any existing operators that are changed to use one
of them needs to be moved between it and the expression root, and recursively
for the operators using that one.  When I rewrote RewriteExprTree I accidentally
inverted the logic, resulting in the compacting going down from operators to
operands rather than up from operands to the operators using them, oops.  Fix
this, resolving PR12963.

llvm-svn: 159265
2012-06-27 14:19:00 +00:00
Dmitry Vyukov d326a6cf93 tsan: check that signal handlers do not spoil errno.
llvm-svn: 159264
2012-06-27 13:54:46 +00:00
Dmitry Vyukov f8b7a8dc08 tsan: close all file descriptors after fork()
llvm-svn: 159263
2012-06-27 12:48:46 +00:00
Axel Naumann b15b37f73a Fix for r159256 on Windows.
llvm-svn: 159262
2012-06-27 11:42:56 +00:00
Chandler Carruth 9d76f27786 Remove a completely unused and remarkably inaccurate list of test
directories from the cmake file. Dunno what the history is here, but
we're not using it.

More refactorings to come here.

llvm-svn: 159261
2012-06-27 10:06:26 +00:00
Chandler Carruth c0674c1fda Update the Clang CMake build to reflect the name change in LLVM r159258.
llvm-svn: 159260
2012-06-27 09:49:07 +00:00
Richard Barton 57b7d16e34 Teach assembler to handle capitalised operation values for DSB instructions
llvm-svn: 159259
2012-06-27 09:48:23 +00:00
Chandler Carruth aa324c9078 Clean up the 'check' CMake build rule a bit, notable renaming it to
'check-llvm'.

Don't worry! 'check' still works! =] To rationalize the names of targets
used to run tests, the vague plan is the following:

make check-llvm  # run LLVM reg/unit tests  (currently 'check')
make check-clang # run Clang reg/unit tests (currently 'clang-test')
make check-rt    # run CompilerRT reg/unit tests
make check-asan  # run ASan reg/unit tests (subset of -rt)
make check-tsan  # run TSan reg/unit tests (subset of -rt)
make check-all   # run as much of the above as is available

The last one respects what projects are checked out and built for
a given tree. Personally, I would like to eventually make 'check' be an
alias for 'check-all'. For now however, it is an alias for 'check-llvm',
and thus no behavior has changed.

While this patch and my plan only really apply to CMake, I think it
might be good to similarly rationalize the naming scheme for the Make
builds.

llvm-svn: 159258
2012-06-27 09:44:16 +00:00
Richard Barton 4b7558ef9a Prevent ARM Assembler crashing on unrecognised assembly format for DSB instruction
llvm-svn: 159257
2012-06-27 09:36:19 +00:00
Axel Naumann 38179d9693 From Vassil Vassilev:
add interface for removing a FileEntry from the cache.
Forces a re-read the contents from disk, e.g. because a tool (like cling) wants to pick up a modified file.

llvm-svn: 159256
2012-06-27 09:17:42 +00:00
Chandler Carruth 9aaf156f30 Add support for building the ASan instrumentation unit tests with the
just-built Clang binary, and linking them against the just-built ASan
runtime.

This is *very* brittle. I expect it will require tweaking, and I've
pro-actively disabled it on non-Unix builds and on cross-builds.

It is also currently missing dependency edges on GoogleTest header files
and a few other corner cases, but those can be fixed. This is the major
milestone of a mini-bootstrap-like build of the unittest.

llvm-svn: 159255
2012-06-27 09:01:24 +00:00
Bill Wendling c66b152e07 Sphinxify the exception handling doc.
llvm-svn: 159254
2012-06-27 07:20:57 +00:00
Dmitri Gribenko 60c7ec699b Initialize RawComment::BriefTextValid in other constructor, too.
llvm-svn: 159253
2012-06-27 05:48:36 +00:00
Daniel Jasper 37184c2e66 Introduce __has_feature(attribute_unused_on_fields) to determine whether
the current version of clang understands __attribute__((unused)) on
fields.

llvm-svn: 159252
2012-06-27 05:12:34 +00:00
Richard Trieu 65ce36b45f Add missing words to manual.
llvm-svn: 159251
2012-06-27 02:36:34 +00:00
Timur Iskhodzhanov 29161d9886 Add a few (currently failing) tests for the PR13207 (template mangling in the presence of back references).
I've added an extra FileCheck pass for that with an extra "CURRENT" prefix.
I've carefully chosed the CURRENT/CORRECT prefixes so they
a) are self-descriptive
b) have the same length so the mangling between the current and the correct version is obvious

Feel free to ask me to change the prefixes if you know a better alternative.

llvm-svn: 159250
2012-06-27 02:11:40 +00:00
Richard Trieu e753f4bebd Update documentation with regards to template type diffing.
llvm-svn: 159249
2012-06-27 02:00:20 +00:00