- Mar 15, 2015
-
-
Frederic Riss authored
This code comes with a lot of cruft that is meant to mimic darwin's dsymutil behavior. A much simpler approach (described in the numerous FIXMEs that I put in there) gives the right output for the vast majority of cases. The extra corner cases that are handled differently need to be investigated: they seem to correctly handle debug info that is in the input, but that info looks suspicious in the first place. Anyway, the current code needs to handle this, but I plan to revisit it as soon as the big round of validation against the classic dsymutil is over. llvm-svn: 232333
-
Frederic Riss authored
No need to emit a DW_LNS_advance_pc with a 0 increment. Found out while comparing dsymutil's and LLVM's line table encoding. Not a correctenss fix, just a small encoding size optimization. I'm not sure how to generate a sequence that triggers this, and moreover llvm-dwardump doesn't dump the line table program, thus the effort involved in creating a testcase for this trivial patch seemed out of proportion. llvm-svn: 232332
-
Simon Pilgrim authored
llvm-svn: 232331
-
Benjamin Kramer authored
NFC intended. llvm-svn: 232330
-
Ed Schouten authored
Though common, there is no requirement that fenv_t and fexcept_t are structure and integer types, respectively. fexcept_t is a structure on CloudABI. llvm-svn: 232329
-
Sanjay Patel authored
llvm-svn: 232328
-
Sanjay Patel authored
llvm-svn: 232327
-
Vince Harron authored
This fixes tests on clang-3.4 AFAICT, these flags have the same affect and -fstandalone-debug wasn't added until after clang-3.4 Committed to try to fix buildbot Differential Revision: http://reviews.llvm.org/D8347 llvm-svn: 232326
-
Simon Pilgrim authored
llvm-svn: 232325
-
Simon Pilgrim authored
llvm-svn: 232324
-
Benjamin Kramer authored
This basically creates a wrapper around an 'int' that poses as an iterator. While that looks a bit counter-intuitive it works just fine because iterator operations and basic integer arithmetic works in exactly the same way. Remove the manual integer wrapping code and reduce the reliance on iterator internals in the implementation. No functionality change intended. llvm-svn: 232322
-
Daniel Jasper authored
Casts in TS syntax (foo = <type>bar;) should not be followed by whitespace. Patch by Martin Probst. Thank you. llvm-svn: 232321
-
Daniel Jasper authored
The current enum detection is overly aggressive. As NestingLevel only applies per line (?) it classifies many if not most object literals as enum declarations and adds superfluous line breaks into them. This change narrows the heuristic by requiring an assignment just before the open brace and requiring the line to start with an identifier. Patch by Martin Probst. Thank you. llvm-svn: 232320
-
Benjamin Kramer authored
This simplifies code quite a bit and brings the iterators closer to C++'s iterator concept. No functional change intended. llvm-svn: 232319
-
David Majnemer authored
Qualifiers are located next to the TypeDescriptor in order to properly ensure that a pointer type can only be caught by a more qualified catch handler. This means that a catch handler of type 'const int *' requires an RTTI object for 'int *'. We got this correct for 'throw' but not for 'catch'. N.B. We don't currently have the means to store the qualifiers because LLVM's EH strategy is tailored to the Itanium scheme. The Itanium ABI stores qualifiers inside the type descriptor in such a way that the manner of qualification is stored in addition to the pointee type's descriptor. Perhaps the best way of modeling this for the MS ABI is using an aggregate type to bundle the qualifiers with the descriptor? This is tricky because we want to make it clear to the optimization passes which catch handlers invalidate other handlers. My current thoughts on a design for this is along the lines of: { { TypeDescriptor* TD, i32 QualifierFlags }, i32 MiscFlags } The idea is that the inner most aggregate is all that is needed to communicate that one catch handler might supercede another. The 'MiscFlags' field would be used to hold the bitpattern for the notion that the 'catch' handler does not need to invoke a copy-constructor because we are catching by reference. llvm-svn: 232318
-
David Majnemer authored
No functional change intended. llvm-svn: 232317
-
David Majnemer authored
llvm-svn: 232316
-
Duncan P. N. Exon Smith authored
Use an overload instead of a default argument for `Metadata::dump()`. The latter seems to require calling `dump(nullptr)` explicitly when using a debugger, where as the former doesn't. Other than utility for debugging, there's NFC here. llvm-svn: 232315
-
David Majnemer authored
llvm-svn: 232314
-
David Blaikie authored
llvm-svn: 232312
-
David Blaikie authored
llvm-svn: 232311
-
David Blaikie authored
llvm-svn: 232310
-
David Blaikie authored
llvm-svn: 232309
-
David Blaikie authored
llvm-svn: 232308
-
David Blaikie authored
& some unnecessary 'inline' keywords llvm-svn: 232307
-
http://llvm.org/PR22880Alexander Kornienko authored
The misc-static-assert check will not warn on assert(false), assert(False), assert(FALSE); where false / False / FALSE are macros expanding to the false or 0 literals. Also added corresponding test cases. http://reviews.llvm.org/D8328 Patch by Szabolcs Sipos! llvm-svn: 232306
-
Frederic Riss authored
llvm-svn: 232305
-
David Blaikie authored
And some unnecessary inline keywords llvm-svn: 232304
-
David Blaikie authored
(& some unnecessary 'inline' keywords, too) llvm-svn: 232303
-
David Blaikie authored
The C++ standard reserves all identifiers starting with an underscore followed by an uppercase letter for the implementation for any use. llvm-svn: 232302
-
David Majnemer authored
llvm-vtabledump has grown enough functionality not related to vtables that it deserves a name which is more descriptive. llvm-svn: 232301
-
Frederic Riss authored
The debug map embedded by ld64 in binaries conatins function sizes. These sizes are less precise than the ones given by the debug information (byte granularity vs linker atom granularity), but they might cover code that is referenced in the line table but not in the DIE tree (that might very well be a compiler bug that I need to investigate later). Anyway, extracting that information is necessary to be able to mimic dsymutil's behavior exactly. llvm-svn: 232300
-
Duncan P. N. Exon Smith authored
Change accessors to downcast to `MDLocalVariable` and `MDExpression`, now that we have -verify checks in place to confirm that it's safe. llvm-svn: 232299
-
David Blaikie authored
llvm-svn: 232298
-
David Blaikie authored
IntervalIterator: Add move semantics rather than relying on broken implicit copy ctor (found with -Wdeprecated) We were just getting lucky because the copy ctor would be elided by RVO. llvm-svn: 232297
-
Duncan P. N. Exon Smith authored
Verify that debug info intrinsic arguments are valid. (These checks will not recurse through the full debug info graph, so they don't need to be cordoned of in `DebugInfoVerifier`.) With those checks in place, changing the `DbgIntrinsicInst` accessors to downcast to `MDLocalVariable` and `MDExpression` is natural (added isa specializations in `Metadata.h` to support this). Added tests to `test/Verifier` for the new -verify checks, and fixed the debug info in all the in-tree tests. If you have out-of-tree testcases that have started to fail to -verify, hopefully the verify checks are helpful. The most likely problem is that the expression argument is `!{}` (instead of `!MDExpression()`). llvm-svn: 232296
-
Dmitri Gribenko authored
When if statement condition ended in a macro: if (ptr == NULL); the check used to consider the definition location of NULL, instead of the current line. Patch by Manasij Mukherjee. llvm-svn: 232295
-
David Blaikie authored
llvm-svn: 232294
-
George Burgess IV authored
So everyone's lives are easier in the future llvm-svn: 232293
-
Duncan P. N. Exon Smith authored
This is already assumed to be non-null above due to a dyn_cast<>. Also remove extraneous braces around statement. llvm-svn: 232292
-