Commit Graph

9070 Commits

Author SHA1 Message Date
Ted Kremenek 89e53fddb8 Add FIXME.
llvm-svn: 84696
2009-10-20 23:48:29 +00:00
Ted Kremenek 8aed49000d Use llvm::OwningPtr in CFGBuilder, fixing a leak on an error path.
llvm-svn: 84695
2009-10-20 23:46:25 +00:00
Fariborz Jahanian e4d94cee05 Code-gen for CXXZeroInitValueExpr AST passed
as argument to a function call. Removes a FIXME.

llvm-svn: 84694
2009-10-20 23:29:04 +00:00
Anders Carlsson b68b028a02 Change ResolveAddressOfOverloadedFunction to support TemplateIdRefExpr. No testcase yet because FixOverloadedFunctionReference needs to be updated too. Doug, plz review.
llvm-svn: 84693
2009-10-20 22:53:47 +00:00
Anders Carlsson 5789c497a0 Fix the 32-bit ABI to return structures with non-trivial copy ctors or dtors indirectly.
llvm-svn: 84686
2009-10-20 22:07:59 +00:00
Ted Kremenek d45ff6cced Add destructor and cleanup code to LocationContext (fixing some leaks). Along the way, have
AnalysisManager periodically cleanup its AnalysisContextManager and LocationContextManager objects,
as they don't need to forever retain all the CFGs ever created when analyzing a file.

llvm-svn: 84684
2009-10-20 21:39:41 +00:00
Mike Stump 38382028c7 For now, we need to have the llvm type of the block pointer remain as
it was.  Fixes codegen bug introduced yesterday.

llvm-svn: 84668
2009-10-20 20:30:01 +00:00
Fariborz Jahanian ac741ffd44 Moved comment to its proper place in my last patch.
llvm-svn: 84662
2009-10-20 20:07:35 +00:00
Fariborz Jahanian 9a587b0111 Patch implements ranking conversions between member pointers [over.ics.rank]
llvm-svn: 84660
2009-10-20 20:04:46 +00:00
Devang Patel e21912d1ae Do not eagerly cache DITypes because it allows real struct type to be shadowed by forward declared struct type.
llvm-svn: 84659
2009-10-20 19:55:01 +00:00
Daniel Dunbar f4534ee0a3 Driver: If unable to find the gcc tool chain, try the next OS rev.
llvm-svn: 84656
2009-10-20 19:25:43 +00:00
Devang Patel e4f2b2a8ac Encode global variable name in debug info.
llvm-svn: 84653
2009-10-20 18:26:30 +00:00
Daniel Dunbar 710a80d3ba Add missing semi-colon.
llvm-svn: 84650
2009-10-20 18:07:06 +00:00
Edward O'Callaghan 462e4ab4ac Bring Darwin into the switch-case statement instead of its own if for readability.
llvm-svn: 84646
2009-10-20 17:22:50 +00:00
Fariborz Jahanian 040d75d9b6 Issue warning if method body starts with a semicolon.
Fixes 
<rdar://problem/7308503> clang should disallow the trailing semicolon in method definitions

llvm-svn: 84645
2009-10-20 16:39:13 +00:00
Eli Friedman 06ed2a5c94 Remove default argument for ImpCastExprToType. Add appropriate argument
to all callers.  Switch a few other users of CK_Unknown to proper cast 
kinds.

Note that there are still some situations where we end up with 
CK_Unknown; they're pretty easy to find with grep. There 
are still a few missing conversion kinds, specifically 
pointer/int/float->bool and the various combinations of real/complex 
float/int->real/complex float/int.

llvm-svn: 84623
2009-10-20 08:27:19 +00:00
Ted Kremenek 2e385f9319 Call 'clear()' in ~RopePieceBTreeLeaf(), decrementing the reference
counts of the bufffers referened by the RopePieces in
RopePieceBTreeLeaf.  This (I believe) corrently fixes the leak I meant
to fix in r84601 (which ended up causing an overrelease).

llvm-svn: 84615
2009-10-20 06:31:34 +00:00
Douglas Gregor a5cb6da0cd Handle substitutions into the "first qualifier in scope" of a
qualified member access expression (e.g., t->U::member) when that
first qualifier refers to a template parameters.

llvm-svn: 84612
2009-10-20 05:58:46 +00:00
Ted Kremenek 988c5811ee Revert 84601. Looks like it was causing failures on some systems.
llvm-svn: 84610
2009-10-20 05:53:05 +00:00
Chris Lattner bd19b18100 Implement PR5242: don't desugar a type more than once in a diagnostic. This
implements a framework that allows us to use information about previously
substituted values to simplify subsequent ones.  Maybe this would be useful
for C++'y stuff, who knows.  We now get:

t.c:4:21: error: invalid operands to binary expression ('size_t' (aka 'unsigned long *') and 'size_t')
  return (size_t) 0 + (size_t) 0;
         ~~~~~~~~~~ ^ ~~~~~~~~~~

on the testcase.  Note that size_t is only aka'd once.

llvm-svn: 84604
2009-10-20 05:36:05 +00:00
Chris Lattner c243f299ce teach FormatDiagnostic to aggregate previously formatted arguments and
pass them down into the ArgToStringFn implementation.  This allows 
redundancy across operands to a diagnostic to be eliminated.

This isn't used yet, so no functionality change.

llvm-svn: 84602
2009-10-20 05:25:22 +00:00
Ted Kremenek 2f9876cf7c Fix a reference count imbalance in RewriteRope::MakeRopeString().
This was causing a ton of memory to be leaked when using HTML
diagnostics with the static analyzer (on large files with many errors).

llvm-svn: 84601
2009-10-20 05:25:11 +00:00
Chris Lattner dac91470d7 code cleanup, convert if tree to switch etc.
llvm-svn: 84599
2009-10-20 05:12:36 +00:00
Mike Stump d015328f15 Refine the type of the first parameter to block invoke functions.
WIP.  I have yet to find the magic incantation to get the structure
type to be defined.  If someone has a pointer, love to hear it.

llvm-svn: 84590
2009-10-20 02:12:22 +00:00
Ted Kremenek 481c121ab5 RegionStore: Use the *default* binding (instead of the *direct* binding) of an Objective-C object
region when doing lazy value retrieval of an ivar.

This fixes: <rdar://problem/7312221>

llvm-svn: 84584
2009-10-20 01:20:57 +00:00
Ted Kremenek 90c953e98f retain/release checker: allow 'new', 'copy', 'alloc', 'init' prefix to start before '_' when determining Cocoa fundamental rule.
Fixes: <rdar://problem/7265711>
llvm-svn: 84569
2009-10-20 00:13:00 +00:00
Fariborz Jahanian a4a9334a50 Builtin candidate minimization for
<<=, >>= and the rest.

llvm-svn: 84568
2009-10-20 00:04:40 +00:00
Douglas Gregor c59e56190e Parse a simple-template-id following a '~' when calling a destructor, e.g.,
t->~T<A0, A1>()

Fixes PR5213.

llvm-svn: 84545
2009-10-19 22:04:39 +00:00
Ted Kremenek 428c637ada The constructor for ASTUnit now takes a DiagnosticClient*, allowing uses of ASTUnit to specify
alternate DiagnosticClients. To match this API, ASTUnit::LoadFromPCHFile() now takes a corresponding
DiagnosticClient* argument as well. The DiagnosticClient object is destroyed when the ASTUnit object
is destroyed.

The CIndex library now uses this API to create a 'IgnoreDiagnosticsClient' that simply silences
diagnostics when using the clang_createTranslationUnitFromSourceFile() function. This fixes
<rdar://problem/7312058>. This API can change in the future as we add more flexibility for clients.

llvm-svn: 84539
2009-10-19 21:44:57 +00:00
Fariborz Jahanian b9e8c42ee6 Add the built-in candidate set reduction hueristic
to '+=', '-=', '*=' and '/=' builtin operators and
fixes a logic bug exposed by doing this.

llvm-svn: 84538
2009-10-19 21:30:45 +00:00
Fariborz Jahanian 996a6aa3f1 Copy conversion of an expression to its base class
is a standard convesion and not a user-defined
conversion.

llvm-svn: 84525
2009-10-19 19:18:20 +00:00
Anders Carlsson 0999aafda5 Handle emitting the assignment operator when the lhs is a reference. Fixes PR5227.
llvm-svn: 84518
2009-10-19 18:28:22 +00:00
Anders Carlsson 027732b5b9 Set the cast kind to CK_NoOp for C-style casts that are really const casts. Fixes PR5248.
llvm-svn: 84514
2009-10-19 18:14:28 +00:00
Steve Naroff 505fb84ed9 Move Diagnostic/DiagClient/FileManager from Indexer => ASTUnit.
Removing this shared data should enable clang_createTranslationUnit/clang_createTranslationUnitFromSourceFile to be run from multiple threads (related to <rdar://problem/7303432>).

llvm-svn: 84499
2009-10-19 14:34:22 +00:00
Daniel Dunbar 28a24fdbbc Workaround a bug exposed by the FileCheckify of message-length.c, the caret end
column computation isn't correct and could exceed the line length, which
resulted in a buffer overflow later.
 - Chris, is there a better way for this code to compute the final column used
   by the caret?

llvm-svn: 84475
2009-10-19 09:11:21 +00:00
Edward O'Callaghan f208b55825 AuroraUX toolchain should call GNU assembler not the Solaris assembler.
llvm-svn: 84469
2009-10-19 07:02:08 +00:00
Daniel Dunbar d238681113 Avoid std::string concatenation.
llvm-svn: 84458
2009-10-19 01:21:19 +00:00
Daniel Dunbar b5aacc282c Twinify CodeGenFunction::CreateTempAlloca
llvm-svn: 84456
2009-10-19 01:21:05 +00:00
Daniel Dunbar 3d6f651652 Suppress build warning.
llvm-svn: 84453
2009-10-19 01:20:42 +00:00
Anders Carlsson 69c2c4becc When binding a reference to a temporary, it's important that other temporaries created as on the RHS are destroyed before emitting the dtor for the temporary.
llvm-svn: 84451
2009-10-18 23:09:21 +00:00
Anders Carlsson 8f741bfad7 When building a cast argument, make sure to bind the result to a temporary.
llvm-svn: 84448
2009-10-18 21:20:14 +00:00
Daniel Dunbar 07d0785dbb PR5218: Replace IdentifierInfo::getName with StringRef version, now that clients
are updated.

llvm-svn: 84447
2009-10-18 21:17:35 +00:00
Daniel Dunbar 349e6fbfce Twinify CGObjCMac, this simplifies the code and should reduce std::string
trashing.

llvm-svn: 84439
2009-10-18 20:48:59 +00:00
Anders Carlsson 9500ad13b0 Use CK_BitCast for member function pointer casts. Fixes PR5138.
llvm-svn: 84438
2009-10-18 20:31:03 +00:00
Daniel Dunbar 70e7eadd15 Move misc clients to IdentifierInfo StringRef API.
- strcmp -> ==
 - OS.write(II->getName() ...) -> OS << II->getNameStr()
 - Avoid std::string concatenation
 - Use getNameStr().str() when an std::string is really needed.

llvm-svn: 84437
2009-10-18 20:26:27 +00:00
Daniel Dunbar 2c422dc9ca Move clients to use IdentifierInfo::getNameStart() instead of getName()
llvm-svn: 84436
2009-10-18 20:26:12 +00:00
Nate Begeman 19351639fb Support IRgen of OpenCL vector initializers, ensuring the resulting IR is in a
form that LLVM code generators can turn into efficient code.  For example,
int4 a, b, c;
a = (int4)(b.yzw, a.x)

llvm-svn: 84434
2009-10-18 20:10:40 +00:00
Anders Carlsson 7001794302 It's OK for a pure virtual function to override another pure virtual function. Fixes PR5222.
llvm-svn: 84428
2009-10-18 19:34:08 +00:00
Benjamin Kramer beb873d84a Add FloatingCast to getCastKindName's list.
llvm-svn: 84427
2009-10-18 19:02:15 +00:00
Anders Carlsson 094c459525 Add some more cast kinds.
llvm-svn: 84423
2009-10-18 18:12:03 +00:00