David Chisnall
e8431a7766
Some fixes for synthesized ivar metadata (GNU runtime).
...
llvm-svn: 118172
2010-11-03 16:12:44 +00:00
David Chisnall
b2aa0ef310
Added cursor visitor that takes a block as an argument. Tested compiling
...
libclang with both clang -fblocks and gcc (no blocks support). Only exposed in
the header to compilers that do have blocks support.
llvm-svn: 118170
2010-11-03 14:12:26 +00:00
Zhongxing Xu
0806da8f28
fix test case.
...
llvm-svn: 118166
2010-11-03 11:24:56 +00:00
Zhongxing Xu
fb2f8164ae
Do not add elidable CXXConstructExpr as block-level expr.
...
llvm-svn: 118165
2010-11-03 11:14:06 +00:00
Marcin Swiderski
3ab17ad8ec
Added generating destructors for temporary objects. Two cases I know of, that are not handled properly:
...
1. For statement: const C& c = C(0) ?: C(1) destructors generated for condition will not differ from those generated for case without prolonged lifetime of temporary,
2. There will be no destructor for constant reference member bound to temporary at the exit from constructor.
llvm-svn: 118158
2010-11-03 06:19:35 +00:00
Rafael Espindola
b2cbd85be8
Revert while I debug test failures :-(
...
llvm-svn: 118150
2010-11-03 04:43:56 +00:00
Rafael Espindola
c5dfb607f5
Switch clang to run ld directly on linux. I tested this on all the linux
...
distros listed by running
gcc main.o -o main
g++ main.o -o main
gcc main.o -o main -static
g++ main.o -o main -static
gcc f.o -o f.so -shared
g++ f.o -o f.so -shared
and comparing the ld line with the one created by clang. I also added
-m32/m64 in distros that support it.
While I tested many distros, there will always be more. If you are hit by this
it should be somewhat easy to add your distro. If you are in a hurry, do
revert this, but please inform how to detect you distro and the ld command
lines produced by the above gcc invocations. Most distros have some patches
on gcc :-(
llvm-svn: 118149
2010-11-03 04:37:51 +00:00
Anders Carlsson
2d5f8b4201
When setting a tied check if it's already tied. If it's tied to another constraint it's invalid. Fixes PR3905.
...
llvm-svn: 118146
2010-11-03 02:54:51 +00:00
Anders Carlsson
da1f5fc881
A number in an input constraint can't point to a read-write ('+') constraint. Fixes PR3904.
...
llvm-svn: 118145
2010-11-03 02:22:29 +00:00
Alexis Hunt
a56cbccfc4
Provide an error when a non-identifier name (such as an operator) is used as a
...
parameter name.
Fixes PR8012.
llvm-svn: 118138
2010-11-03 01:07:06 +00:00
Douglas Gregor
15417cfa56
Improve source-location information for CXXConstructExpr nodes, by
...
ensuring that they cover all of their child nodes. There's still a
clang_getCursor()-related issue with CXXFunctionalCastExprs with
CXXConstructExprs as children (see FIXME in the test case); I'll look
at that separately.
llvm-svn: 118132
2010-11-03 00:35:38 +00:00
Ted Kremenek
4bd4d75b9a
Don't add Decls with an invalid location to DeclsInContainer.
...
llvm-svn: 118111
2010-11-02 23:17:51 +00:00
Ted Kremenek
d40a439067
Hack to workaround deficiency in ObjC ASTs. Functions and variables may be declared
...
within an @implementation, but we have no way to record that information in the AST.
This may cause CursorVisitor to miss these Decls when doing a AST walk.
Fixes <rdar://problem/8595462>.
llvm-svn: 118109
2010-11-02 23:10:24 +00:00
John Thompson
6c2afc8d5d
Tests for inline asm constraints, generic and x86.
...
llvm-svn: 118108
2010-11-02 23:03:52 +00:00
Daniel Dunbar
6b83538ac8
Add link to LLVM releases page.
...
llvm-svn: 118095
2010-11-02 22:34:04 +00:00
Fariborz Jahanian
dba351df64
Fixes an assertion violation when bind to temporary
...
expression is a dependent expression.
// rdar: // 8620524 and PR7851
llvm-svn: 118066
2010-11-02 21:05:53 +00:00
John McCall
8e7cb6dcfa
Ensure that static local variables in function templates inherit the
...
visibility of their function.
llvm-svn: 118065
2010-11-02 21:04:24 +00:00
Douglas Gregor
05fcf84d14
Teach code completion to provide property results when the property
...
can be used to automatically synthesize an ivar.
llvm-svn: 118052
2010-11-02 20:36:02 +00:00
Daniel Dunbar
3ada2b7996
Driver: Silently ignore -fasm-blocks for now instead of error'ing, this cause
...
some unexpected fallout.
llvm-svn: 118037
2010-11-02 19:42:04 +00:00
Rafael Espindola
d79d31204c
Add support for Fedora 14. Patch by Daniel Kozlowski.
...
llvm-svn: 118035
2010-11-02 18:39:34 +00:00
John McCall
23032653d7
Unbreak private_extern, which apparently we had zero tests for.
...
llvm-svn: 118034
2010-11-02 18:38:13 +00:00
Fariborz Jahanian
dc9bc5aeb8
Fix a crash mangling decayed val argument-typed function.
...
// rdar: //8620510 and PR7666
llvm-svn: 118019
2010-11-02 16:54:00 +00:00
Argyrios Kyrtzidis
3050d9bdb8
Properly handle temporaries that are created in a AsmStmt.
...
Previously the temporaries would get destroyed before the asm call.
llvm-svn: 118001
2010-11-02 02:33:08 +00:00
John McCall
07072664c4
Ignore attributes on classes when calculating visibility for members
...
with their own explicit visibility attributes. Basically we only want to
apply a single visibility attribute from any particular ancestry.
llvm-svn: 117998
2010-11-02 01:45:15 +00:00
Fariborz Jahanian
d4c5348a55
Diagnose a coherant message when @interface
...
does not terminate with @end .
// rdar: //7824372
llvm-svn: 117991
2010-11-02 00:44:43 +00:00
Douglas Gregor
75f26d6c75
Teach SourceManager::getPresumedLoc() how to fail gracefully if getLineNumber/getColumnNumber fail
...
llvm-svn: 117990
2010-11-02 00:39:22 +00:00
Douglas Gregor
e0f7a8ace9
When performing template argument deduction against a template-id,
...
only keep deduction results for successful deductions, so that they
can be compared against each other. Fixes PR8462, from Richard Smith!
llvm-svn: 117983
2010-11-02 00:02:34 +00:00
Douglas Gregor
e5a6fed7dc
Make my test case test what it meant to
...
llvm-svn: 117974
2010-11-01 23:33:11 +00:00
Ted Kremenek
818e5c1839
Encapsulate within CXCursor the notion of whether a VarDecl* is the first Decl in a DeclGroup. We use this
...
to recover some context that is currently not modeled directly in the AST. Currently VarDecl's cannot
properly determine their source range because they have no context on whether or not they appear in a DeclGroup.
For the meantime, this bandaid suffices in libclang since that is where the correct SourceRange is directly needed.
Fixes <rdar://problem/8595749>.
llvm-svn: 117973
2010-11-01 23:26:51 +00:00
Douglas Gregor
4b8eca88b0
Teach the CStringChecker and PthreadLockChecker about non-identifier
...
declaration names, from Jim Goodnow II!
llvm-svn: 117970
2010-11-01 23:16:05 +00:00
Douglas Gregor
1d745543e2
Eliminate an unused local variable
...
llvm-svn: 117963
2010-11-01 21:56:54 +00:00
Argyrios Kyrtzidis
375584c7eb
Clean up temporaries created by an asm statement. Fixes rdar://8540491
...
llvm-svn: 117961
2010-11-01 21:51:42 +00:00
Douglas Gregor
298087bc25
Harden Sema::MaybeBindTotemporary.
...
llvm-svn: 117954
2010-11-01 21:10:29 +00:00
Fariborz Jahanian
eb7714c290
Restore patch for PR8453 which was undone in r117829
...
(was project bugs).
llvm-svn: 117951
2010-11-01 20:47:16 +00:00
Douglas Gregor
9aaf7f66fc
Do not compare invalid source locations
...
llvm-svn: 117946
2010-11-01 20:13:04 +00:00
Argyrios Kyrtzidis
ca76629618
Emit error when using a bound member function for something other than calling it.
...
Also avoids IRGen crashes due to accepting invalid code.
llvm-svn: 117943
2010-11-01 18:49:26 +00:00
Douglas Gregor
b524d906fe
Require that the types of the parameters of a block literal are complete.
...
llvm-svn: 117942
2010-11-01 18:37:59 +00:00
Devang Patel
86f30f5a1d
Simplify. Builtin types' context is always implied.
...
llvm-svn: 117928
2010-11-01 16:52:40 +00:00
Anders Carlsson
09814d3f3a
Don't update empty field subobjects for bitfields. Fixes PR8519.
...
llvm-svn: 117921
2010-11-01 15:14:51 +00:00
Douglas Gregor
f09b6c9c85
Plug a leak in the preprocessing record's handling of inclusion
...
directives. We had a std::string in an object that was allocated via a
BumpPtrAllocator.
llvm-svn: 117912
2010-11-01 15:03:47 +00:00
Douglas Gregor
1cbdd951e8
Disable some timing code
...
llvm-svn: 117910
2010-11-01 13:48:43 +00:00
Zhongxing Xu
e1dbeb28da
Explicitly handle CXXBindTemporaryExpr, CXXFunctionalCastExpr,
...
and ImplicitCastExpr to propagate asLValue AddStmtChoice property.
But do not propagate AlwaysAdd property.
llvm-svn: 117909
2010-11-01 13:04:58 +00:00
Zhongxing Xu
627a1868d2
Now initializer of C++ record type is visited as block-level expr.
...
Let the destination of AggExprVisitor be an explicit MemRegion.
Reenable the test case.
llvm-svn: 117908
2010-11-01 09:09:44 +00:00
Zhongxing Xu
0b51d4db8c
Make all CXXConstructExpr's block-level expressions. This is required by
...
method inlining. Temporarily fail a test case.
llvm-svn: 117907
2010-11-01 06:46:05 +00:00
John McCall
e6e622e789
Only apply -fvisibility-inlines-hidden to definitions. Apparently
...
isInlined() just gives meaningless results for non-definitions.
Fixes rdar://problem/8614470
llvm-svn: 117887
2010-11-01 01:29:57 +00:00
Anders Carlsson
0a14ee9ed8
Get rid of more calls to getBaseClassOffsetInBits.
...
llvm-svn: 117883
2010-11-01 00:21:58 +00:00
Anders Carlsson
3f01871647
Port over a couple of getVBaseClassOffsetInBits call sites to use getVBaseClassOffset instead.
...
llvm-svn: 117882
2010-10-31 23:45:59 +00:00
Anders Carlsson
fd88a6160d
Rename getBaseClassOffset to getBaseClassOffsetInBits and introduce a getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset.
...
llvm-svn: 117881
2010-10-31 23:22:37 +00:00
Anders Carlsson
a2f8e41a0a
Start converting over the RecordLayoutBuilder next.
...
llvm-svn: 117878
2010-10-31 22:20:42 +00:00
Anders Carlsson
28466ab8f4
EmptyObjectMap now uses CharUnits wherever possible.
...
llvm-svn: 117877
2010-10-31 22:13:23 +00:00