Commit Graph

24932 Commits

Author SHA1 Message Date
Douglas Gregor 086cae6c1f Fix the source range of an anonymous namespace, from Jan Bierbaum
llvm-svn: 111561
2010-08-19 20:55:47 +00:00
Douglas Gregor fd329a86e3 Intialize all of the code-generation options
llvm-svn: 111560
2010-08-19 20:50:45 +00:00
Douglas Gregor 0e3da27c51 Fix a c-index-test leak with file remapping
llvm-svn: 111559
2010-08-19 20:50:29 +00:00
Douglas Gregor eec975ce5a Add machine-parseable Fix-It output as part of diagnostics, under the
flag -fdiagnostics-parseable-fixits, from Eelis van der Weegen!

llvm-svn: 111557
2010-08-19 20:24:43 +00:00
Daniel Dunbar 438c7724f9 Fix a loop overrun in ComputePreamble when the last remapped file was erased,
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
2010-08-19 19:40:40 +00:00
Eli Friedman 3c93e3dae7 Test for PR7888.
llvm-svn: 111545
2010-08-19 19:13:24 +00:00
Jordy Rose 1cd2472ac2 Remove dead code. Patch by Jon Mulder!
llvm-svn: 111541
2010-08-19 18:59:37 +00:00
Douglas Gregor c0afc67608 We don't actually need to check the implicit object argument's
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
2010-08-19 17:02:01 +00:00
Daniel Dunbar e6a39d33e5 CrashRecovery: Disable the reparse test for now while I investigate, it goes
bonkers sometimes.

llvm-svn: 111523
2010-08-19 16:40:14 +00:00
Douglas Gregor c9ed4681a8 Properly implement the part of C++ [over.match.funcs]p4 that treats
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
2010-08-19 15:57:50 +00:00
Douglas Gregor 6affc78f1b Include a proper citation for the wacky hijinks involving conversion functions and the implicit object parameter type. No functionality change.
llvm-svn: 111519
2010-08-19 15:37:02 +00:00
Anton Yartsev 583a1cf7b5 support for predicates with bool/pixel arguments
llvm-svn: 111515
2010-08-19 11:57:49 +00:00
Eli Friedman 19013d90e2 Remove default argument from operator delete; per report on cfe-dev, fixes
compilation with MSVC.  Note that on other platforms, the operator delete in
question is never used because we compile with -fno-exceptions.

llvm-svn: 111514
2010-08-19 06:13:01 +00:00
Eli Friedman 4202c34539 Fix for PR7911 and PR7921: make isIntegralOrEnumerationType return false
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
2010-08-19 04:39:37 +00:00
Anton Yartsev fc83c60755 support for the rest of AltiVec functions with bool/pixel arguments and return values (except predicates)
llvm-svn: 111511
2010-08-19 03:21:36 +00:00
Alexis Hunt 5ac173b69e Add a missing initializer.
llvm-svn: 111510
2010-08-19 03:06:50 +00:00
Anton Yartsev 9e96898032 support for vec_perm and all dependent functions (vec_mergeh, vec_mergel, vec_pack, vec_sld, vec_splat) with bool/pixel arguments and return values
llvm-svn: 111509
2010-08-19 03:00:09 +00:00
Charles Davis 6bcb07ad71 Add some enum goodness as requested by Chris. Now instead of storing the
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
2010-08-19 02:18:14 +00:00
Douglas Gregor a0734c5fbd Plug a leak when precompiling the preamble in ASTUnit.
llvm-svn: 111504
2010-08-19 01:33:06 +00:00
John McCall 1ed0182413 Restore the build
llvm-svn: 111498
2010-08-19 01:21:57 +00:00
John McCall 5cf48cd17c On second thought, don't warn about reinterpret_casts under -Wcast-align.
llvm-svn: 111497
2010-08-19 01:19:08 +00:00
Charles Davis c2c576a9e7 Add a special RecordLayoutBuilder for the Microsoft C++ ABI.
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
2010-08-19 00:55:19 +00:00
Ted Kremenek 50e0105f1c Add warning for functions/blocks that have attribute 'noreturn' but return a non-void result. (<rdar://problem/7562925>)
llvm-svn: 111492
2010-08-19 00:52:13 +00:00
Ted Kremenek 5295ce8120 HandleCommonNoReturnAttr() now only has a single caller. Move that logic to HandleAnalyzerNoReturnAttr.
llvm-svn: 111491
2010-08-19 00:51:58 +00:00
Douglas Gregor 4740c4501e Make sure to initialize ASTUnit::UnsafeToFree
llvm-svn: 111490
2010-08-19 00:45:44 +00:00
Douglas Gregor b473b07cff Make sure to deallocate the identifier lookup tables and selector tables
when destroying an ASTReader. Plugs a leak that shows up in libclang.

llvm-svn: 111488
2010-08-19 00:28:17 +00:00
John McCall f733268e7a When deducing the element type of an array, ignore qualifiers if
the context allows us to ignore qualifiers on the array type itself.

llvm-svn: 111486
2010-08-19 00:20:19 +00:00
Sebastian Redl 539c506152 Rename pch namespace to serialization.
llvm-svn: 111478
2010-08-18 23:57:32 +00:00
Sebastian Redl 47c369f4ed Rename PCHBitCodes.h -> ASTBitCodes.h
llvm-svn: 111476
2010-08-18 23:57:26 +00:00
Sebastian Redl f164204baa Rename stuff in PCHBitCodes.h
llvm-svn: 111475
2010-08-18 23:57:22 +00:00
Sebastian Redl f5b1346738 Rename the ASTReader header files.
llvm-svn: 111474
2010-08-18 23:57:17 +00:00
Sebastian Redl 3b3c874f68 Rename the ASTReader implementation files.
llvm-svn: 111473
2010-08-18 23:57:11 +00:00
Sebastian Redl d44cd6adba More PCH -> AST renaming.
llvm-svn: 111472
2010-08-18 23:57:06 +00:00
Sebastian Redl 3e31c72497 Rename various classes from PCH to AST.
llvm-svn: 111471
2010-08-18 23:56:56 +00:00
Sebastian Redl 70c751de76 Rename PCHStmtReader -> ASTStmtReader.
llvm-svn: 111470
2010-08-18 23:56:52 +00:00
Sebastian Redl b3298c3bb6 Rename PCHDeclReader -> ASTDeclReader.
llvm-svn: 111469
2010-08-18 23:56:48 +00:00
Sebastian Redl 2c499f6561 Rename PCHReader to ASTReader.
llvm-svn: 111467
2010-08-18 23:56:43 +00:00
Sebastian Redl 1914c6fef8 Rename PCHWriter.h to ASTWriter.h
llvm-svn: 111466
2010-08-18 23:56:37 +00:00
Sebastian Redl d6522cfc6d Rename the ASTWriter implementation files
llvm-svn: 111465
2010-08-18 23:56:31 +00:00
Sebastian Redl 42a0f6a7f2 Do the PCH->AST rename for ASTWriter's implementation parts.
llvm-svn: 111464
2010-08-18 23:56:27 +00:00
Sebastian Redl 55c0ad5772 Rename PCHWriter to ASTWriter
llvm-svn: 111463
2010-08-18 23:56:21 +00:00
Douglas Gregor 4c6ed904bf When creating an ASTUnit by parsing source code, set DisableFree to
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
2010-08-18 23:38:21 +00:00
Alexis Hunt dcfba7b35b Generate Attr subclasses with TableGen.
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
2010-08-18 23:23:40 +00:00
Daniel Dunbar 79acdd9402 libclang: Put clang_reparseTranslationUnit inside a crash recovery context.
llvm-svn: 111451
2010-08-18 23:09:31 +00:00
Daniel Dunbar 211a787eaf CrashRecovery: Add #pragma clang __debug handle_crash, useful when debugging
CrashRecovery since it avoids sending a signal which may be intercepted by the
debugger.

llvm-svn: 111449
2010-08-18 23:09:23 +00:00
Daniel Dunbar ec29d712d4 c-index-test: Change -test-load-source-repase to only use remapped files for the
reparse, to allow testing distinct inputs.

llvm-svn: 111448
2010-08-18 23:09:16 +00:00
Douglas Gregor f0708dee83 Fix crasher with IgnoringDiagClient
llvm-svn: 111447
2010-08-18 23:03:13 +00:00
Douglas Gregor 2dd19f1d5f Simplify the ownership model for DiagnosticClients, which was really
convoluted and a bit leaky. Now, the Diagnostic object owns its
DiagnosticClient.

llvm-svn: 111437
2010-08-18 22:29:43 +00:00
Douglas Gregor fb640869ed There is no pointer conversion between to similar types (i.e., same
type ignoring cv-qualifiers). These are qualification
conversions. Fixes PR7934.

llvm-svn: 111428
2010-08-18 21:25:30 +00:00
Dan Gohman b37af7de47 Call llvm::remove_fatal_error_handler before deallocating objects
which are used by the error handling functions.

llvm-svn: 111427
2010-08-18 21:23:17 +00:00