summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Revert r111609, which is failing its new test.Douglas Gregor2010-08-203-15/+1
| | | | llvm-svn: 111611
* Eliminate some extraneous whitespace in the machine-parseable Fix-It output.Douglas Gregor2010-08-201-2/+2
| | | | llvm-svn: 111610
* Detect efforts to declare a template member friend and explicitly ignore them.John McCall2010-08-203-1/+15
| | | | | | Avoids a crash. llvm-svn: 111609
* Handle nested compound values in BindArray for multidimensional arrays. ↵Jordy Rose2010-08-201-0/+2
| | | | | | Fixes PR7945. llvm-svn: 111602
* When performing code-completion in the presence of a preamble, makeDouglas Gregor2010-08-201-8/+13
| | | | | | | | | sure to (1) actually use the remapped files we were given rather than old data, and (2) keep the remapped files alive until the code-completion results are destroyed. Big thanks to Daniel for the test case. llvm-svn: 111597
* Mangle explicit template arguments in dependent or overloaded names.John McCall2010-08-201-1/+20
| | | | llvm-svn: 111591
* When we decide not to reuse a precompiled preamble, clear out theDouglas Gregor2010-08-201-2/+18
| | | | | | previous precompiled preamble completely. Fixes <rdar://problem/8330950>. llvm-svn: 111590
* Regularize the API for accessing explicit template arguments.John McCall2010-08-196-20/+19
| | | | llvm-svn: 111584
* Correctly instantiate templates with non-type template arguments thatJohn McCall2010-08-191-1/+1
| | | | | | are local externs. Fixes <rdar://problem/8302138>. llvm-svn: 111570
* Fix the source range of an anonymous namespace, from Jan BierbaumDouglas Gregor2010-08-191-2/+3
| | | | llvm-svn: 111561
* Add machine-parseable Fix-It output as part of diagnostics, under theDouglas Gregor2010-08-193-0/+46
| | | | | | flag -fdiagnostics-parseable-fixits, from Eelis van der Weegen! llvm-svn: 111557
* Fix a loop overrun in ComputePreamble when the last remapped file was erased,Daniel Dunbar2010-08-191-0/+4
| | | | | | | | and reenable crash recovery test. - Reparsing is still very crashy / weird, so I had to sprinkle random code into the remapped input to get it to do what I want (i.e., crash!). llvm-svn: 111550
* Remove dead code. Patch by Jon Mulder!Jordy Rose2010-08-191-5/+0
| | | | llvm-svn: 111541
* We don't actually need to check the implicit object argument'sDouglas Gregor2010-08-191-15/+0
| | | | | | | | | conversion a second time for a conversion candidate (with the real acting context), because the only problems we would find are access or ambiguity issues that won't be diagnosed until we pick this candidate. Add a test case to prove it to myself. llvm-svn: 111526
* Properly implement the part of C++ [over.match.funcs]p4 that treatsDouglas Gregor2010-08-191-9/+29
| | | | | | | | | | | conversion functions as if their acting context were the class that we're converting from (the implicit object argument's type). Retroactively tweaking the implicit conversion sequence, as we were trying to do before, breaks the invariants of that implicit conversion sequence (e.g., the types and conversions don't match up). Fixes <rdar://problem/8018274>. llvm-svn: 111520
* Include a proper citation for the wacky hijinks involving conversion ↵Douglas Gregor2010-08-191-3/+5
| | | | | | functions and the implicit object parameter type. No functionality change. llvm-svn: 111519
* support for predicates with bool/pixel argumentsAnton Yartsev2010-08-191-0/+1164
| | | | llvm-svn: 111515
* Fix for PR7911 and PR7921: make isIntegralOrEnumerationType return falseEli Friedman2010-08-191-4/+7
| | | | | | | | | | | for incomplete enum types. An incomplete enum can't really be treated as an "integral or enumeration" type, and the incorrect treatment leads to bad behavior for many callers. This makes isIntegralOrEnumerationType equivalent to isIntegerType; I think we should globally replace the latter with the former; thoughts? llvm-svn: 111512
* support for the rest of AltiVec functions with bool/pixel arguments and ↵Anton Yartsev2010-08-191-84/+2186
| | | | | | return values (except predicates) llvm-svn: 111511
* support for vec_perm and all dependent functions (vec_mergeh, vec_mergel, ↵Anton Yartsev2010-08-191-25/+321
| | | | | | vec_pack, vec_sld, vec_splat) with bool/pixel arguments and return values llvm-svn: 111509
* Add some enum goodness as requested by Chris. Now instead of storing theCharles Davis2010-08-194-12/+18
| | | | | | | | | | active C++ ABI as a raw string, we store it as an enum. This should improve performance somewhat. And yes, this time, I started from a clean build directory, and all the tests passed. :) llvm-svn: 111507
* Plug a leak when precompiling the preamble in ASTUnit.Douglas Gregor2010-08-191-7/+21
| | | | llvm-svn: 111504
* Restore the buildJohn McCall2010-08-191-0/+1
| | | | llvm-svn: 111498
* On second thought, don't warn about reinterpret_casts under -Wcast-align.John McCall2010-08-191-2/+0
| | | | llvm-svn: 111497
* Add a special RecordLayoutBuilder for the Microsoft C++ ABI.Charles Davis2010-08-191-25/+73
| | | | | | | | | | All it does right now is add space for two vtable pointers instead of one when a class has both virtual methods and virtual bases. This is a requirement of the Microsoft ABI, since it has separate vtables for methods and bases. Other stuff will come up over time, but we'll cross those bridges when we get to them. llvm-svn: 111493
* Add warning for functions/blocks that have attribute 'noreturn' but return a ↵Ted Kremenek2010-08-191-1/+14
| | | | | | non-void result. (<rdar://problem/7562925>) llvm-svn: 111492
* HandleCommonNoReturnAttr() now only has a single caller. Move that logic to ↵Ted Kremenek2010-08-191-22/+19
| | | | | | HandleAnalyzerNoReturnAttr. llvm-svn: 111491
* Make sure to initialize ASTUnit::UnsafeToFreeDouglas Gregor2010-08-191-1/+2
| | | | llvm-svn: 111490
* Make sure to deallocate the identifier lookup tables and selector tablesDouglas Gregor2010-08-191-9/+15
| | | | | | when destroying an ASTReader. Plugs a leak that shows up in libclang. llvm-svn: 111488
* When deducing the element type of an array, ignore qualifiers ifJohn McCall2010-08-191-3/+7
| | | | | | the context allows us to ignore qualifiers on the array type itself. llvm-svn: 111486
* Rename pch namespace to serialization.Sebastian Redl2010-08-186-674/+677
| | | | llvm-svn: 111478
* Rename stuff in PCHBitCodes.hSebastian Redl2010-08-182-8/+8
| | | | llvm-svn: 111475
* Rename the ASTReader header files.Sebastian Redl2010-08-187-8/+8
| | | | llvm-svn: 111474
* Rename the ASTReader implementation files.Sebastian Redl2010-08-184-6/+6
| | | | llvm-svn: 111473
* More PCH -> AST renaming.Sebastian Redl2010-08-1815-171/+153
| | | | llvm-svn: 111472
* Rename various classes from PCH to AST.Sebastian Redl2010-08-185-14/+14
| | | | llvm-svn: 111471
* Rename PCHStmtReader -> ASTStmtReader.Sebastian Redl2010-08-181-129/+129
| | | | llvm-svn: 111470
* Rename PCHDeclReader -> ASTDeclReader.Sebastian Redl2010-08-182-74/+74
| | | | llvm-svn: 111469
* Rename PCHReader to ASTReader.Sebastian Redl2010-08-189-131/+131
| | | | llvm-svn: 111467
* Rename PCHWriter.h to ASTWriter.hSebastian Redl2010-08-186-6/+6
| | | | llvm-svn: 111466
* Rename the ASTWriter implementation filesSebastian Redl2010-08-184-6/+6
| | | | llvm-svn: 111465
* Do the PCH->AST rename for ASTWriter's implementation parts.Sebastian Redl2010-08-183-256/+256
| | | | llvm-svn: 111464
* Rename PCHWriter to ASTWriterSebastian Redl2010-08-185-94/+94
| | | | llvm-svn: 111463
* When creating an ASTUnit by parsing source code, set DisableFree toDouglas Gregor2010-08-181-1/+1
| | | | | | | | false (not true), so that the CompilerInstance will actually free data structures when it's done. This fixes a major leak with libclang's in-process code completion. llvm-svn: 111457
* Generate Attr subclasses with TableGen.Alexis Hunt2010-08-1820-800/+295
| | | | | | | | | | | | | | | | | | | | | | | | Now all classes derived from Attr are generated from TableGen. Additionally, Attr* is no longer its own linked list; SmallVectors or Attr* are used. The accompanying LLVM commit contains the updates to TableGen necessary for this. Some other notes about newly-generated attribute classes: - The constructor arguments are a SourceLocation and a Context&, followed by the attributes arguments in the order that they were defined in Attr.td - Every argument in Attr.td has an appropriate accessor named getFoo, and there are sometimes a few extra ones (such as to get the length of a variadic argument). Additionally, specific_attr_iterator has been introduced, which will iterate over an AttrVec, but only over attributes of a certain type. It can be accessed through either Decl::specific_attr_begin/end or the global functions of the same name. llvm-svn: 111455
* CrashRecovery: Add #pragma clang __debug handle_crash, useful when debuggingDaniel Dunbar2010-08-181-0/+5
| | | | | | | CrashRecovery since it avoids sending a signal which may be intercepted by the debugger. llvm-svn: 111449
* Fix crasher with IgnoringDiagClientDouglas Gregor2010-08-181-2/+1
| | | | llvm-svn: 111447
* Simplify the ownership model for DiagnosticClients, which was reallyDouglas Gregor2010-08-184-34/+27
| | | | | | | convoluted and a bit leaky. Now, the Diagnostic object owns its DiagnosticClient. llvm-svn: 111437
* There is no pointer conversion between to similar types (i.e., sameDouglas Gregor2010-08-181-0/+5
| | | | | | | type ignoring cv-qualifiers). These are qualification conversions. Fixes PR7934. llvm-svn: 111428
* Added psuedo-constant analysis and integrated it into the false positive ↵Tom Care2010-08-184-15/+165
| | | | | | | | | | | | | reduction stage in IdempotentOperationChecker. - Renamed IdempotentOperationChecker::isConstant to isConstantOrPseudoConstant to better reflect the function - Changed IdempotentOperationChecker::PreVisitBinaryOperator to only run 'CanVary' once on undefined assumptions - Created new PsuedoConstantAnalysis class and added it to AnalysisContext - Changed IdempotentOperationChecker to exploit the new analysis - Updated tests with psuedo-constants - Added check to IdempotentOperationChecker to see if a Decl is const qualified llvm-svn: 111426
OpenPOWER on IntegriCloud