John McCall
feb624a435
A few tweaks to the value-kind computation:
...
- Default argument expressions pick up the value kind of the incoming
expression, not the value kind of the parameter it initializes.
- When building a template argument for substitution, A::x is an rvalue
if x is an instance method.
- Anonymous struct/union paths pick up value kind the same way that
normal member accesses do; extract out a common code path for this.
Enable the value-kind assertion, now that it passes self-host.
llvm-svn: 120055
2010-11-23 20:48:44 +00:00
Peter Collingbourne
e57e9ef9b7
Remove static_casts from SemaDeclAttr.cpp
...
llvm-svn: 120053
2010-11-23 20:45:58 +00:00
Chris Lattner
966b25b938
tidy up code, add a comment about dir caching.
...
llvm-svn: 120048
2010-11-23 20:30:42 +00:00
Chris Lattner
ea61b32c4a
replicate a terrible hack to fix a build error on VC++
...
llvm-svn: 120039
2010-11-23 20:07:39 +00:00
Chris Lattner
8f0583daa2
simplify the cache miss handling code, eliminating CacheMissing.
...
llvm-svn: 120038
2010-11-23 20:05:15 +00:00
Chris Lattner
5769c3dffd
factor the "cache miss" handling code out of FM into a static
...
method in FileSystemStatCache.
llvm-svn: 120037
2010-11-23 19:56:39 +00:00
Chris Lattner
b3c814538b
r120013 dropped passing in the precomputed file size to
...
MemoryBuffer::getFile, causing us to pick up a fstat for
every file. Restore the optimization.
llvm-svn: 120032
2010-11-23 19:38:22 +00:00
Chris Lattner
2a6fa47b26
PCH files only cache successful stats. Remove the code that reads/writes
...
the result code of the stat to/from the PCH file since it is always 0.
llvm-svn: 120031
2010-11-23 19:28:12 +00:00
Chris Lattner
226efd356c
rework the stat cache, pulling it out of FileManager.h into
...
its own header and giving it some more structure. No
functionality change.
llvm-svn: 120030
2010-11-23 19:19:34 +00:00
John McCall
20c00e0e7b
This test does not need to test the alignment of pointers. Make it pass
...
on 64-bit systems.
llvm-svn: 120014
2010-11-23 10:15:48 +00:00
Chris Lattner
26b5c190f8
tidy up. Split FileManager::getBufferForFile into
...
two copies, since they are fundamentally different
operations and the StringRef one should go away
(it shouldn't be part of FileManager at least).
Remove some dead arguments.
llvm-svn: 120013
2010-11-23 09:19:42 +00:00
Chris Lattner
7219a5db6e
don't allow remapping PTH file paths with -fworking-directory, the
...
client should just pass in absolute paths.
llvm-svn: 120012
2010-11-23 09:01:31 +00:00
Chris Lattner
5631b052c3
reduce indentation and use early outs, to make it easier to read
...
this code. no functionality change.
llvm-svn: 120011
2010-11-23 08:50:03 +00:00
Chris Lattner
5159f6162e
now the FileManager has a FileSystemOpts ivar, stop threading
...
FileSystemOpts through a ton of apis, simplifying a lot of code.
This also fixes a latent bug in ASTUnit where it would invoke
methods on FileManager without creating one in some code paths
in cindextext.
llvm-svn: 120010
2010-11-23 08:35:12 +00:00
Chris Lattner
ec39c9d3d6
make this file be self contained.
...
llvm-svn: 120008
2010-11-23 08:05:27 +00:00
Chris Lattner
3f5a9efb2d
give FileManager a 'FileSystemOptions' ivar, which will be used
...
to simplify a bunch of code in it. It should ultimately get inlined
into FileManager.
llvm-svn: 120007
2010-11-23 07:51:02 +00:00
Francois Pichet
ce87a7e45c
long => int to make the test pass on system where sizeof(long) = 64.
...
llvm-svn: 120005
2010-11-23 07:15:13 +00:00
Zhanyong Wan
19ec4ee093
Fix a typo in a comment.
...
llvm-svn: 120004
2010-11-23 06:43:05 +00:00
Chris Lattner
4ac569b2c6
Partially revert Doug's PCH validation patch (r98585).
...
This patch completely defeated the "passing in a prestat'd size
to MemoryBuffer" optimization, leading to an extra fstat call for
every buffer opened, in order to find out if the datestamp and size
of the file on disk matches what is in the stat cache.
I fully admit that I don't completely understand what is going on here:
why punish code when a stat cache isn't in use? what is the point of a
stat cache if you have to turn around and stat stuff to validate it?
To resolve both these issues, just drop the modtime check and check the
file size, which is the important thing anyway. This should also resolve
PR6812, because presumably windows is stable when it comes to file sizes.
If the modtime is actually important, we should get it and keep it on the
first stat.
This eliminates 833 fstat syscalls when processing Cocoa.h, speeding up
system time on -Eonly Cocoa.h from 0.041 to 0.038s.
llvm-svn: 120001
2010-11-23 06:09:11 +00:00
Francois Pichet
0c71f6c5d3
Microsoft C anonymous struct implementation.
...
Documentation: http://msdn.microsoft.com/en-us/library/z2cx9y4f.aspx
llvm-svn: 120000
2010-11-23 06:07:27 +00:00
Chris Lattner
6e6409989f
stringref'ize API
...
llvm-svn: 119997
2010-11-23 04:45:28 +00:00
Chris Lattner
7c434b6937
tidy up
...
llvm-svn: 119996
2010-11-23 04:40:26 +00:00
Chris Lattner
5df6f8f55f
avoid creating sys::Path instances when -fworking-directory isn't being used.
...
llvm-svn: 119995
2010-11-23 04:33:43 +00:00
Zhanyong Wan
59f09c7483
Stylistic changes to CFG.cpp:
...
1. "no 'else' after 'return'" -- this is for conformance with the
coding standards.
2. move 'else' to the line of the previous '}' -- this is for consistency.
Reviewed by kremenek.
llvm-svn: 119983
2010-11-22 19:32:14 +00:00
Anders Carlsson
849ea413c6
Refactor the null-initialization for record types and make it handle bases that aren't i8 arrays.
...
llvm-svn: 119980
2010-11-22 18:42:14 +00:00
Nico Weber
ece562ed27
Remove the other FIXME I added. This is covered by the Index test and not testable via -ast-dump.
...
llvm-svn: 119971
2010-11-22 13:48:02 +00:00
Nico Weber
13c13d4da8
Remove one I just added, add a more focused test for why the current code is correct.
...
llvm-svn: 119969
2010-11-22 13:12:28 +00:00
Nico Weber
7f8bb368ea
Try to get the bots green after r119966.
...
llvm-svn: 119968
2010-11-22 12:50:03 +00:00
Nico Weber
774303425b
Fix the source range of CXXNewExprs. Fixes http://llvm.org/pr8661 .
...
llvm-svn: 119966
2010-11-22 10:30:56 +00:00
Nico Weber
1879bca4c9
Minor whitespace fix, no functionality change
...
llvm-svn: 119965
2010-11-22 10:26:41 +00:00
NAKAMURA Takumi
3c3b3a7d8b
test/Sema/x86-builtin-palignr.c: Now we can remove XFAIL:win32, according to r119958.
...
llvm-svn: 119961
2010-11-22 09:29:49 +00:00
Zhanyong Wan
6dace61730
Fix PR8419. Reviewed by kremenek and xuzhongxing.
...
llvm-svn: 119960
2010-11-22 08:45:56 +00:00
Chandler Carruth
45c2fb1e69
Undo part of my previous commit to mm_malloc.h, going back to the use of
...
stdlib.h. There were numerous problems with forward declaring 'malloc' and
'free', but the most important is that these are reserved by POSIX and may be
implemented via a function-like macro.
As suggested by Dale Johannesen, I'm instead guarding the only include of this
in our builtin headers with __STDC_HOSTED__, and I've removed the include of
the header from the test suite. I'll discuss with folks whether we want to have
a hosted section of the test suite or not, and add it (and perhaps other tests)
back there if that's the direction.
llvm-svn: 119958
2010-11-22 08:06:31 +00:00
Anders Carlsson
39a6b22023
Remove FIXME; we don't ever want to lay out empty bases.
...
llvm-svn: 119957
2010-11-22 00:03:08 +00:00
Anders Carlsson
a7dd96ce77
Rename BaseLLVMType to NonVirtualBaseLLVMType.
...
llvm-svn: 119956
2010-11-21 23:59:45 +00:00
Anders Carlsson
e64fbe2a6c
Add getCGRecordLayout helper function. No functionality change.
...
llvm-svn: 119955
2010-11-21 23:56:06 +00:00
Anders Carlsson
4b35e97e74
Update Xcode project.
...
llvm-svn: 119953
2010-11-21 23:25:35 +00:00
Anders Carlsson
a369f8dc3a
The 'X' printf type has a valid alternative form. Fixes PR8641.
...
llvm-svn: 119946
2010-11-21 18:34:21 +00:00
Anders Carlsson
7fb785d449
Update Xcode project.
...
llvm-svn: 119945
2010-11-21 18:33:34 +00:00
Benjamin Kramer
3959370c92
Fix a bunch of IndirectFieldDecl-related warnings.
...
- Negative ChainingSize doesn't make sense, make it unsigned.
llvm-svn: 119943
2010-11-21 14:11:41 +00:00
Benjamin Kramer
3cf715d22c
Filename.rfind("/\\") won't give us the position of the last directory seperator.
...
llvm-svn: 119939
2010-11-21 11:32:22 +00:00
Chris Lattner
8afa6deb1d
remove old compatibility APIs, use StringRef versions instead.
...
llvm-svn: 119935
2010-11-21 09:55:08 +00:00
Chris Lattner
0c0e80408a
change the various getFile routines to use StringRef as their implementation form.
...
llvm-svn: 119934
2010-11-21 09:50:16 +00:00
Francois Pichet
df946c3702
Fix warning: enumeration value 'IndirectField' not handled in switch.
...
llvm-svn: 119924
2010-11-21 06:49:41 +00:00
Francois Pichet
0565e5c455
Compilation error: remove extra comma.
...
llvm-svn: 119921
2010-11-21 06:22:53 +00:00
Francois Pichet
783dd6ece4
Major anonymous union/struct redesign.
...
A new AST node is introduced:
def IndirectField : DDecl<Value>;
IndirectFields are injected into the anonymous's parent scope and chain back to
the original field. Name lookup for anonymous entities now result in an
IndirectFieldDecl instead of a FieldDecl.
There is no functionality change, the code generated should be the same.
llvm-svn: 119919
2010-11-21 06:08:52 +00:00
Anders Carlsson
d470fef01d
Forward the -fno-elide-constructor argument to clang -cc1. Fixes PR8652.
...
llvm-svn: 119915
2010-11-21 00:09:52 +00:00
Zhongxing Xu
2cf9b135d4
Add comments.
...
llvm-svn: 119900
2010-11-20 08:17:16 +00:00
Zhanyong Wan
7426ea729c
Fix a typo in EnvironmentManager::bindExprAndLocation(). Reviewed by kremenek.
...
llvm-svn: 119899
2010-11-20 07:52:48 +00:00
Zhongxing Xu
2c966716ff
Handle CFGAutomaticObjDtor.
...
llvm-svn: 119897
2010-11-20 06:53:12 +00:00
Argyrios Kyrtzidis
de2bdf637e
Revert r119838 "Don't warn for empty 'if' body if there is a macro that expands to nothing"
...
and use a better and more general approach, where NullStmt has a flag to indicate whether it was preceded by an empty macro.
Thanks to Abramo Bagnara for the hint!
llvm-svn: 119887
2010-11-20 02:04:01 +00:00
Nick Lewycky
9331ed89f8
A bundle of whitespace changes, separated out from the functional changes.
...
llvm-svn: 119886
2010-11-20 01:29:55 +00:00
Douglas Gregor
06a3f30be9
Implement a simple hash function for libclang cursors
...
llvm-svn: 119876
2010-11-20 00:09:34 +00:00
Douglas Gregor
fec4dc9418
Implement clang_getCanonicalCursor() in libclang, which does the obvious thing.
...
llvm-svn: 119874
2010-11-19 23:44:15 +00:00
Craig Silverstein
1a9ca21881
Several PPCallbacks take an SourceLocation + IdentifierInfo, rather
...
than a Token that holds the same information all in one easy-to-use
package. There's no technical reason to prefer the former -- the
information comes from a Token originally -- and it's clumsier to use,
so I've changed the code to use tokens everywhere.
Approved by clattner
llvm-svn: 119845
2010-11-19 21:33:15 +00:00
Rafael Espindola
64fff2998d
Check for gcc 4.3.4.
...
llvm-svn: 119839
2010-11-19 21:02:06 +00:00
Argyrios Kyrtzidis
90ee2a4ecf
Don't warn for empty 'if' body if there is a macro that expands to nothing, e.g:
...
if (condition)
CALL(0); // empty macro but don't warn for empty body.
Fixes rdar://8436021.
llvm-svn: 119838
2010-11-19 20:54:25 +00:00
Douglas Gregor
8fc96fc555
Make sure to print cvr-qualifiers on function declarations
...
llvm-svn: 119817
2010-11-19 18:44:34 +00:00
Fariborz Jahanian
44a41d1c25
Minor cleanup. No change otherwise.
...
llvm-svn: 119814
2010-11-19 18:17:09 +00:00
Fariborz Jahanian
e7d62020a7
objc_msgSend is not a builtin type in non-objc mode.
...
Fixes //rdar://8686888
llvm-svn: 119813
2010-11-19 18:16:46 +00:00
Daniel Dunbar
6d776eb1e8
Driver/Darwin: Don't pass -demangle to an iOS linker, which may not understand
...
it.
llvm-svn: 119809
2010-11-19 17:51:40 +00:00
Benjamin Kramer
929bd68229
Initialize StoredDiagnostic's members in order.
...
llvm-svn: 119808
2010-11-19 17:36:51 +00:00
Nuno Lopes
eb156609fe
add support for the i686-pc-linux-gnu triple (used by Gentoo x86)
...
llvm-svn: 119807
2010-11-19 17:26:57 +00:00
Douglas Gregor
3a001f48e4
When parsing something that looks like an ill-formed
...
protocol-qualifier list without a leading type (e.g., <#blah#>), don't
complain about it being an archaic protocol-qualifier list unless it
actually parses as one.
llvm-svn: 119805
2010-11-19 17:10:50 +00:00
Daniel Dunbar
7c87433513
Driver: Ignore -force_cpusubtype_ALL.
...
llvm-svn: 119803
2010-11-19 16:23:35 +00:00
Douglas Gregor
a750e8e6d8
Extend the libclang diagnostic API to provide information about the
...
option name, category ID, and category name corresponding to a diagnostic.
llvm-svn: 119802
2010-11-19 16:18:16 +00:00
Argyrios Kyrtzidis
0f530099cb
Remove Diagnostic's get/setNumErrors() and getNumErrorsSuppressed().
...
Anyone wanting to use it should probably use DiagnosticClient's getNumErrors() instead.
llvm-svn: 119766
2010-11-19 00:19:20 +00:00
Argyrios Kyrtzidis
5c26cda273
getNumErrors() -> hasErrorOccurred()
...
llvm-svn: 119765
2010-11-19 00:19:18 +00:00
Argyrios Kyrtzidis
f51ec1d12b
Refactoring. Get FunctionScopeInfo to use DiagnosticErrorTrap.
...
llvm-svn: 119764
2010-11-19 00:19:15 +00:00
Argyrios Kyrtzidis
1865342442
Refactoring.
...
Move ErrorTrap from clang/Sema to clang/Basic as DiagnosticErrorTrap and use it in Scope.
llvm-svn: 119763
2010-11-19 00:19:12 +00:00
Fariborz Jahanian
148d113e55
Fix a bug where write-barriers for assignment through reference
...
types was not being generated for objc pointers.
// rdar://8681766.
llvm-svn: 119751
2010-11-18 22:39:16 +00:00
Bob Wilson
2acd1621f4
Use a signed vector type for the shift amount operand of unsigned shifts.
...
Neon shifts allow a mix of positive and negative shift amounts to shift
left or right, respectively, so the shift amount vector should always be
signed. PR8482 (Radar 8603521).
llvm-svn: 119748
2010-11-18 21:51:10 +00:00
Argyrios Kyrtzidis
31448a415e
Use hasErrorOccurred() instead of getNumErrors() where it makes sense.
...
llvm-svn: 119746
2010-11-18 21:47:07 +00:00
Argyrios Kyrtzidis
8d5038c1b3
Get the number of errors reported from the diagnostic client, in clang_parseTranslationUnit_Impl.
...
llvm-svn: 119745
2010-11-18 21:47:04 +00:00
Benjamin Kramer
fc305988b8
Update CMake build.
...
llvm-svn: 119741
2010-11-18 21:19:52 +00:00
Argyrios Kyrtzidis
bc4679335c
Remove the hack where, to get the return status, we had special case for VerifyDiagnosticsClient
...
and just check the number of errors from the DiagnosticClient.
llvm-svn: 119736
2010-11-18 21:13:57 +00:00
Argyrios Kyrtzidis
6d35b5a210
Keep track of errors/warnings in FixItRewriter.
...
llvm-svn: 119735
2010-11-18 21:13:54 +00:00
Argyrios Kyrtzidis
c79346a57c
Since multiple diagnostics can share one diagnostic client, have the client keeping track
...
of the total number of warnings/errors reported.
llvm-svn: 119731
2010-11-18 20:06:46 +00:00
Argyrios Kyrtzidis
d004064864
Refactoring of Diagnostic class.
...
-Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class.
-DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units.
-The rest of the state in Diagnostic object is considered related and tied to one translation unit.
-Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a
SourceLocation instead of a FullSourceLoc.
-Reflect the changes to various interfaces.
llvm-svn: 119730
2010-11-18 20:06:41 +00:00
Argyrios Kyrtzidis
4fadc5b20a
Copy the LangOptions in PrintingPolicy to avoid pointing to a LangOptions that is long gone.
...
llvm-svn: 119729
2010-11-18 20:06:30 +00:00
John McCall
4bc41aee2b
Add an assertion, fix a whole bunch of bugs, comment the assertion
...
out because there are still bugs left.
llvm-svn: 119722
2010-11-18 19:01:18 +00:00
Argyrios Kyrtzidis
745f9996d0
Remove the getDiagnosticLevel check since it doesn't buy us much.
...
llvm-svn: 119719
2010-11-18 18:51:03 +00:00
Benjamin Kramer
5a3f1cfafd
Fix a typo in the UTF-8 BOM (PR8645). Use a StringSwitch while at it.
...
llvm-svn: 119698
2010-11-18 12:46:39 +00:00
Craig Silverstein
9bc166ac86
In some situations, TemplateArgumentLoc wasn't setting TypeSourceLoc (see
...
http://llvm.org/bugs/show_bug.cgi?id=8558 ). This patch fixes it. Thanks to
rjmccall for all the coaching!
Approved by rjmccall
llvm-svn: 119697
2010-11-18 08:32:02 +00:00
John McCall
7decc9e4ea
Calculate the value kind of an expression when it's created and
...
store it on the expression node. Also store an "object kind",
which distinguishes ordinary "addressed" l-values (like
variable references and pointer dereferences) and bitfield,
@property, and vector-component l-values.
Currently we're not using these for much, but I aim to switch
pretty much everything calculating l-valueness over to them.
For now they shouldn't necessarily be trusted.
llvm-svn: 119685
2010-11-18 06:31:45 +00:00
Marcin Swiderski
e5a1e8ae12
Added method for handling CXXOperatorCallExpr differently from CallExpr if CXXOperatorCallExpr represents method call.
...
Also fixed returning ExpolodedNodeSet from VisitCXXMethodCallExpr.
llvm-svn: 119684
2010-11-18 06:29:23 +00:00
Anton Yartsev
3f8f2886c1
comparison of AltiVec vectors now gives bool result (fix for 7533)
...
llvm-svn: 119678
2010-11-18 03:19:30 +00:00
Ted Kremenek
5d304a34c6
CursorVisitor: switch remaining expressions over
...
to the data-recursion algorithm. CursorVisitor
now no longer subclasses StmtVisitor.
llvm-svn: 119596
2010-11-18 00:42:18 +00:00
Argyrios Kyrtzidis
ef6c8da50f
-Rename -Wargument-larger-than -> -Wlarge-by-value-copy
...
-Improve the diagnostic message
-Add some comments
Suggestions by Chris.
llvm-svn: 119594
2010-11-18 00:20:36 +00:00
Ted Kremenek
8390027a99
CursorVisitor: migrate handling of
...
'DependentScopeDeclRefExpr' and
'CXXDependentScopeMemberExpr' to the
data-recursion algorithm.
llvm-svn: 119591
2010-11-18 00:02:32 +00:00
Ted Kremenek
7df92ae92b
Make definition of CXTranslationUnitImpl private
...
to libclang.
llvm-svn: 119585
2010-11-17 23:24:11 +00:00
Argyrios Kyrtzidis
af84ec0a96
Introduce option -Wargument-larger-than[=N] which warns about function definitions if they take by-value
...
or return by-value any POD that is larger than some threshold (default is 64 bytes).
Implements rdar://8548050.
llvm-svn: 119583
2010-11-17 23:11:54 +00:00
Rafael Espindola
d47ac23154
Implement -pie.
...
llvm-svn: 119577
2010-11-17 22:26:15 +00:00
Rafael Espindola
cfaaddaee0
Don't warn about
...
clang -w -c foo.s
Helps with the gdb testsuite.
llvm-svn: 119574
2010-11-17 22:13:25 +00:00
Douglas Gregor
b4a7c0385d
Do not produce "purely informative" code completion results for
...
Objective-C message sends, which have only whitespace in their
TypedText chunk. Such results have no purpose.
llvm-svn: 119569
2010-11-17 21:36:08 +00:00
Marcin Swiderski
af56739355
In EvalArguments allow for evaluation of first argument always as a lvalue. Will be used for CXXOperatorCallExpr that represents method call.
...
llvm-svn: 119567
2010-11-17 21:27:36 +00:00
Rafael Espindola
f92614c578
Don't warn about -w not being used in a link. Necessary to get sane
...
results in the gdb testsuite.
llvm-svn: 119552
2010-11-17 20:37:10 +00:00
Fariborz Jahanian
8046af7d50
Warn if direct accessing synthesized ivar backing the property in
...
nonofragile-abi2. Fixes //rdar://8673791
llvm-svn: 119543
2010-11-17 19:41:23 +00:00
Argyrios Kyrtzidis
56e879d1da
Don't emit warn_logical_and_in_logical_or for cases like "a && b || 0".
...
llvm-svn: 119540
2010-11-17 19:18:19 +00:00
Argyrios Kyrtzidis
b94e5a33b3
Don't emit warn_logical_and_in_logical_or for macros. Fixes rdar://8678458
...
llvm-svn: 119537
2010-11-17 18:54:22 +00:00
Argyrios Kyrtzidis
14a96625b8
Don't warn for parentheses for the '&&' inside '||' for cases like:
...
assert(a || b && "bad");
since this is safe. This way we avoid a big source of such warnings which in this case are practically useless.
Note that we don't handle *all* cases where precedence wouldn't matter because of constants since
this is a bit costly to check, and IMO clarifying precedence with parentheses is good for
readability in general.
llvm-svn: 119533
2010-11-17 18:26:36 +00:00
Argyrios Kyrtzidis
f10c43c7f7
Put warn_logical_and_in_logical_or warning in new warning group "logical-op-parentheses" member of "parentheses".
...
llvm-svn: 119532
2010-11-17 18:26:33 +00:00
Dan Gohman
ff66a7c66d
Add a comment explaining why r117813 was needed.
...
llvm-svn: 119518
2010-11-17 17:23:53 +00:00
Dan Gohman
f41b525161
Drop the warning about __attribute__((may_alias)) being used
...
on a non-type declaration, as GCC permits it on variables too.
This fixes PR8635.
llvm-svn: 119517
2010-11-17 17:21:47 +00:00
Douglas Gregor
30313cbb80
When libclang is walking a member access expression, don't walk into
...
an implicit "this"; it causes clang_getCursor() to find the implicit
"this" expression (which isn't written in the source!) rather than the
actual member.
llvm-svn: 119516
2010-11-17 17:15:08 +00:00
Douglas Gregor
29ee422861
When comparing the source range of a declaration against the region of
...
interest (e.g., as used by clang_getCursor()), count the
decl-specifier-seq as part of the source range, as we do for
clang_annotateTokens(). Makes clang_getCursor() work properly for the
result types of functions, for example.
llvm-svn: 119514
2010-11-17 17:14:07 +00:00
Rafael Espindola
9b6fae5d6d
Silence warning for "clang -O2 -O0 -c foo.c -o foo.o.
...
Fixes PR8607.
llvm-svn: 119498
2010-11-17 15:16:14 +00:00
Zhongxing Xu
33d7ea9355
Add skeleton for handling various cfg dtors.
...
llvm-svn: 119491
2010-11-17 09:16:19 +00:00
Chris Lattner
11feaf5921
When forming the !srcloc mdnode for an inline asm, add the SourceLocations
...
of all the lines of the inline asm. With the refactoring and enhancement
of the backend, we can now reports errors on the correct source line when
an asm contains multiple lines of text. For something like this:
void foo() {
asm("push %rax\n"
".code32\n");
}
we used to get this: (note that the line 4 in t.c isn't helpful)
t.c:4:7: error: warning: ignoring directive for now
asm("push %rax\n"
^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^
now we get:
t.c:5:8: error: warning: ignoring directive for now
".code32\n"
^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^
Note that we're pointing to line 5 properly now. This implements
rdar://7839391 - inline asm errors should point to the right line in the asm
and makes the error message in PR8595 much less confusing.
llvm-svn: 119489
2010-11-17 08:25:26 +00:00
Chris Lattner
068f2ab10f
adjust for llvm mainline, yay type safety
...
llvm-svn: 119487
2010-11-17 08:13:04 +00:00
Chris Lattner
e925d61785
a metric ton of refactoring later, Sema::getLocationOfStringLiteralByte
...
no longer depends on Preprocessor, so we can move it out of Sema into
a nice new StringLiteral::getLocationOfByte method that can be used by
any AST client.
llvm-svn: 119481
2010-11-17 07:37:15 +00:00
Zhongxing Xu
35d023164c
do not do post checks. Because at this point we just enter the call.
...
llvm-svn: 119480
2010-11-17 07:31:08 +00:00
Chris Lattner
39720111e0
move getSpelling from Preprocessor to Lexer, which it is more conceptually related to.
...
llvm-svn: 119479
2010-11-17 07:26:20 +00:00
Zhongxing Xu
366340298e
Remove comments. We are already doing actual method call by inlining it.
...
llvm-svn: 119477
2010-11-17 07:21:49 +00:00
Chris Lattner
6bab435db6
propagate preprocessor out of StringLiteralParser. It is now
...
possible to create one without a preprocessor.
llvm-svn: 119476
2010-11-17 07:21:13 +00:00
Chris Lattner
2be8aa9611
push the preprocessor out of EncodeUCNEscape
...
llvm-svn: 119475
2010-11-17 07:12:42 +00:00
Chris Lattner
2a6ee91619
move AdvanceToTokenCharacter and getLocForEndOfToken from
...
Preprocessor to Lexer where they make more sense.
llvm-svn: 119474
2010-11-17 07:05:50 +00:00
Chris Lattner
b1ab2c2d3d
add a static version of PP::AdvanceToTokenCharacter.
...
llvm-svn: 119472
2010-11-17 06:55:10 +00:00
Chris Lattner
bde1b81eb8
push use of Preprocessor out farther.
...
llvm-svn: 119471
2010-11-17 06:46:14 +00:00
Chris Lattner
3a324d3232
push use of Preprocessor out of getOffsetOfStringByte
...
llvm-svn: 119470
2010-11-17 06:35:43 +00:00
Chris Lattner
30d4c928ac
add a static form of the efficient PP::getSpelling method.
...
llvm-svn: 119469
2010-11-17 06:31:48 +00:00
Chris Lattner
7a02bfdfce
refactor the interface to StringLiteralParser::getOffsetOfStringByte,
...
pushing the dependency on the preprocessor out a bit.
llvm-svn: 119468
2010-11-17 06:26:08 +00:00
Marcin Swiderski
2b2cd0e6b4
Added mapping from 'this' to it's SymbolicRegion in BasicStoreManager::getInitialStore.
...
llvm-svn: 119467
2010-11-17 06:22:54 +00:00
Chris Lattner
776a30ddfc
factor some code out to a helper function, no functionality change.
...
llvm-svn: 119464
2010-11-17 05:58:54 +00:00
Ted Kremenek
9f49b37f25
CursorVisitor: Migrate handling of
...
'SizeOfAlignOfExpr' and 'CXXSCalarValueInitExpr'
to data-recursion algorithm.
llvm-svn: 119452
2010-11-17 02:18:35 +00:00
Douglas Gregor
b1b71e50a0
For an Objective-C @synthesize statement, e.g.,
...
@synthesize foo = _foo;
keep track of the location of the ivar ("_foo"). Teach libclang to
visit the ivar as a member reference.
llvm-svn: 119447
2010-11-17 01:03:52 +00:00
Ted Kremenek
7003a50b77
CursorVisitor: migrate handling of CXXUuidofExpr to
...
data-recursion algorithm.
llvm-svn: 119444
2010-11-17 00:50:52 +00:00
Ted Kremenek
513cd579b6
CursorVisitor: migrate handling of UnaryTypeTraitExpr
...
to data-recursion algorithm.
llvm-svn: 119443
2010-11-17 00:50:50 +00:00
Ted Kremenek
8eaa165c7e
CursorVisitor: refactor visitation of
...
explicit template args within data-recursion
algorithm.
llvm-svn: 119442
2010-11-17 00:50:47 +00:00
Ted Kremenek
e48db8dfae
CursorVisitor: migrate handling of
...
AddrLabelExpr to data-recursion algorithm, and
unify that reasoning with GotoStmt.
llvm-svn: 119441
2010-11-17 00:50:45 +00:00
Ted Kremenek
c1c30cd329
CursorVisitor: migrate handling of
...
VAArgExpr to data-recursion algorithm.
llvm-svn: 119440
2010-11-17 00:50:43 +00:00
Ted Kremenek
a51cc43261
CursorVisitor: migrate handling of
...
CXXTypeidExpr to data-recursion algorithm.
llvm-svn: 119439
2010-11-17 00:50:41 +00:00
Ted Kremenek
dd0d4b4192
CursorVisitor: migrate handling of
...
TypesCompatibleExpr to data-recursion algorithm.
llvm-svn: 119438
2010-11-17 00:50:39 +00:00
Ted Kremenek
79ddc67caa
CursorVisitor: Migrate CXXUnresolvedConstructExpr over to data-recursive algorithm.
...
llvm-svn: 119437
2010-11-17 00:50:36 +00:00
Ted Kremenek
32195d9a58
Add comments.
...
llvm-svn: 119436
2010-11-17 00:50:34 +00:00
Bob Wilson
db04141f9a
Re-enable test with modifications for Neon vector changes in clang.
...
I mistakenly thought that this was checking for vector name mangling, but
it is not. Since we're no longer wrapping Neon vectors in structs, this
test can just return a vector directly. There are already other tests for
that, so just to make this interesting, change the test to return a struct
of two vectors.
llvm-svn: 119434
2010-11-17 00:44:53 +00:00
Rafael Espindola
2abb162631
Add support for distros that like x86_64-unknown-linux-gnu.
...
llvm-svn: 119425
2010-11-17 00:25:26 +00:00
Fariborz Jahanian
a00076cda5
Fixes synthesis of type for the object which holds info.
...
about a __block cxx object.
llvm-svn: 119411
2010-11-17 00:21:28 +00:00
Douglas Gregor
68dbaead7b
Fix source-range information for Objective-C properties. Previously,
...
we were just getting a range covering only the property name, which is
certainly not correct (and broke token annotation, among other
things).
Also, teach libclang about the relationship between
@synthesize/@dynamic and @property, so we get property name and
cursor-reference information for @synthesize and @dynamic.
llvm-svn: 119409
2010-11-17 00:13:31 +00:00
John McCall
5b26f65b3d
Reset the lifetime-managed flag between emission of the agg conditional
...
branches. Fixes PR8623.
llvm-svn: 119408
2010-11-17 00:07:33 +00:00
Dan Gohman
bbb7d62546
Front-end support for __attribute__((may_alias)). This is not
...
yet hooked up to anything yet.
llvm-svn: 119407
2010-11-17 00:03:07 +00:00
John McCall
4f29b49de1
Support compound complex operations as l-values in C++. Add a test
...
case based on CodeGen/volatile-1.c which tests the current C++
semantics, and note the many, many places we fall short of them.
llvm-svn: 119402
2010-11-16 23:07:28 +00:00
Argyrios Kyrtzidis
f89a56c74b
Warn about arg1 && arg2 || arg3, as GCC 4.3+ does. Fixes rdar://8659922
...
llvm-svn: 119381
2010-11-16 21:00:12 +00:00
Douglas Gregor
3edb16765d
Use an OwningPtr for the preamble buffer in ASTUnit. This plugs a leak
...
where we failed to free this buffer along one of the paths, and
detangles the code a little.
llvm-svn: 119379
2010-11-16 20:45:51 +00:00
Anton Yartsev
f2a1345a34
turned pointers into pointers to const in function parameters in all functions/builtins accepting pointers to a const-qualified type according to PIM and "Language Extensions for CBEA"
...
llvm-svn: 119376
2010-11-16 20:09:36 +00:00
Fariborz Jahanian
a3e54bd33e
Implements __block API for c++ objects. There is still
...
issue with runtime which I am discussing it with Blaine.
This is wip (so no test yet).
llvm-svn: 119368
2010-11-16 19:29:39 +00:00
Bob Wilson
849857445f
Temporarily disable this check for Neon vector type mangling.
...
I'll reenable it soon when I'm done reworking <arm_neon.h>.
llvm-svn: 119366
2010-11-16 19:08:19 +00:00
Ted Kremenek
0c27bcfd05
Static analyzer: Catch calls to malloc() with
...
allocation sizes of 0 bytes.
Fixes PR 2899.
llvm-svn: 119364
2010-11-16 18:47:04 +00:00
Argyrios Kyrtzidis
20ee5ae871
Emit a specific diagnostic when typedefing C++ bool, mirroring gcc.
...
Fixes rdar://8365458
llvm-svn: 119359
2010-11-16 18:18:13 +00:00
Benjamin Kramer
d1fb1f49a2
MSVC doesn't like the noinline attribute at the end of a declaration. Try the other side.
...
llvm-svn: 119349
2010-11-16 15:45:46 +00:00