- Jun 16, 2012
-
-
Jordan Rose authored
llvm-svn: 158588
-
Jordan Rose authored
This happens in C++ mode right at the declaration of a struct VLA; MallocChecker sees a bind and tries to get see if it's an escaping bind. It's likely that our handling of this is still incomplete, but it fixes a crash on valid without disturbing anything else for now. llvm-svn: 158587
-
Chandler Carruth authored
rather than the base class. Add a pile of boilerplate to indirect around this. This is pretty ugly, but it allows the super class to change the representation of these values, which will be key for doing a SmallDenseMap. Suggestions on better method structuring / naming are welcome, but keep in mind that SmallDenseMap won't have an 'unsigned' member to expose a reference to... =/ llvm-svn: 158586
-
Chandler Carruth authored
and a derived class that provides the allocation and growth strategy. This is the first (and biggest) step toward building a SmallDenseMap that actually behaves exactly the same as DenseMap, and supports all the same types and interface points with the same semantics. llvm-svn: 158585
-
Nick Kledzik authored
llvm-svn: 158584
-
Argyrios Kyrtzidis authored
method definition that has its '{' attached to the method name without a space. With a method like: -(id)meth{ ..... } the logic in ObjCMethodDecl that determined the selector locations got confused because it was initialized based on an end location for '{' but that end location changed to '}' after the method was finished. Fix this by having an immutable end location for the declarator and for getLocEnd() get the end location from the body itself. Fixes rdar://11659739. llvm-svn: 158583
-
Chandler Carruth authored
the address of it. Found by a checking STL implementation used on a dragonegg builder. Sorry about this one. =/ llvm-svn: 158582
-
Anna Zaks authored
on controlling diagnostics. llvm-svn: 158581
-
Chandler Carruth authored
This is likely only the tip of the ice berg, but this particular bug caused any double-free on a glibc system to turn into a deadlock! It is not generally safe to either allocate or release heap memory from within the signal handler. The 'pop_back()' in RemoveFilesToRemove was deleting memory and causing the deadlock. What's worse, eraseFromDisk in PathV1 has lots of allocation and deallocation paths. We even passed 'true' in a place that would have caused the *signal handler* to try to run the 'system' system call and shell out to 'rm -rf'. That was never going to work... This patch switches the file removal to use a vector of strings so that the exact text needed for the 'unlink' system call can be stored there. It switches the loop to be a boring indexed loop, and directly calls unlink without looking at the error. It also works quite hard to ensure that calling 'c_str()' is safe, by ensuring that the non-signal-handling code path that manipulates the vector always leaves it in a state where every element has already had 'c_str()' called at least once. I dunno exactly how overkill this is, but it fixes the deadlock-on-double free issue, and seems likely to prevent any other issues from sneaking up. Sorry for not having a test case, but I *really* don't know how to test signal handling code easily.... llvm-svn: 158580
-
Jordan Rose authored
Specifically, although the bitmap context does not take ownership of the buffer (unlike CGBitmapContextCreateWithData), the data buffer can be extracted out of the created CGContextRef. Thus the buffer is not leaked even if its original pointer goes out of scope, as long as - the context escapes, or - it is retrieved via CGBitmapContextGetData and freed. Actually implementing that logic is beyond the current scope of MallocChecker, so for now CGBitmapContextCreate goes on our system function exception list. llvm-svn: 158579
-
Eli Friedman authored
Make the ".*" operator work correctly when the base is a prvalue and the field has a non-trivial copy constructor. PR13097. llvm-svn: 158578
-
Jakob Stoklund Olesen authored
We now have a proper machine code verifier pass between register allocation and rewriting. llvm-svn: 158577
-
Jakob Stoklund Olesen authored
llvm-svn: 158575
-
Kaelyn Uhrain authored
llvm-svn: 158573
-
Kaelyn Uhrain authored
llvm-svn: 158572
-
Jordan Rose authored
1. Teach Lexer that pragma lexers are like macro expansions at EOF. 2. Treat pragmas like #define/#undef when printing. 3. If we just printed a directive, add a newline before any more tokens. (4. Miscellaneous cleanup in PrintPreprocessedOutput.cpp) PR10594 and <rdar://problem/11562490> (two separate related problems) llvm-svn: 158571
-
Andrew Trick authored
llvm-svn: 158570
-
James Dennett authored
llvm-svn: 158569
-
James Dennett authored
llvm-svn: 158568
-
James Dennett authored
llvm-svn: 158567
-
James Dennett authored
llvm-svn: 158566
-
James Dennett authored
llvm-svn: 158565
-
James Dennett authored
llvm-svn: 158564
-
Jakob Stoklund Olesen authored
Calling checkRegMaskInterference(VirtReg) checks if VirtReg crosses any regmask operands, regardless of the registers they clobber. llvm-svn: 158563
-
James Dennett authored
* Escaped "::" and "<" as needed in Doxygen comments; * Marked up code examples with \code...\endcode; * Documented a \param that is current, instead of a few that aren't; * Fixed up some \file and \brief comments. llvm-svn: 158562
-
Michael J. Spencer authored
llvm-svn: 158561
-
Kevin Enderby authored
iaspr, espr and xpsr which also needed to have 0b10 in their mask encoding bits. llvm-svn: 158560
-
James Dennett authored
* Escaped Objective-C @keywords in Doxygen comments; * Documented more accurate \params; * Exposed some more summaries using \brief. llvm-svn: 158559
-
Dmitri Gribenko authored
llvm-svn: 158558
-
- Jun 15, 2012
-
-
James Dennett authored
* Escaped # characters in Doxygen comments; * Added Doxygen markup (\brief, \code, \file, \namespace). llvm-svn: 158557
-
Howard Hinnant authored
llvm-svn: 158556
-
James Dennett authored
llvm-svn: 158555
-
James Dennett authored
llvm-svn: 158554
-
James Dennett authored
* Escaped the # of #define in Doxygen comments; * Formatting: Annotated __VA_ARGS__ with \c; * Converted docs to use \brief to provide summaries; * Fixed a typo: disbles -> disables. llvm-svn: 158553
-
James Dennett authored
llvm-svn: 158552
-
Manman Ren authored
This patch will optimize abs(x-y) FROM sub, movs, rsbmi TO subs, rsbmi For abs, we will use cmp instead of movs. This is necessary because we already have an existing peephole pass which optimizes away cmp following sub. rdar: 11633193 llvm-svn: 158551
-
James Dennett authored
broken duplicates of comments that are in the corresponding header files. llvm-svn: 158550
-
James Dennett authored
llvm-svn: 158549
-
James Dennett authored
llvm-svn: 158548
-
Nick Kledzik authored
Add 'invalid' as a Reference Kind so that unknown/invalid kind strings can return that fact to the caller for use in constructing an error message, rather that triggering an assertion. llvm-svn: 158547
-