Sebastian Redl
7940e6fb1d
Fix CMake build
...
llvm-svn: 111284
2010-08-17 21:00:23 +00:00
Ted Kremenek
4f2ab5a549
Fix horrible CFG bug caused by a series of NullStmts appearing at the beginning of a do...while loop. This would cause
...
the body of the DoStmt to be disconnected from the preceding code.
llvm-svn: 111283
2010-08-17 21:00:06 +00:00
Ted Kremenek
110974dfa4
CFGBuilder: don't create the empty "loop back" block for DoStmts if the loop edge can never be taken.
...
llvm-svn: 111282
2010-08-17 20:59:56 +00:00
Sebastian Redl
135bcc791b
Reintroduce the serialization library, with fixed dependencies.
...
llvm-svn: 111279
2010-08-17 20:43:28 +00:00
Fariborz Jahanian
b5d59b66c2
Patch to add type parameter support for attribute iboutletcollection.
...
Radar 8308053.
llvm-svn: 111275
2010-08-17 20:23:12 +00:00
Douglas Gregor
600c4f6d84
Remove the last bit of the Clang Serialization library, for now
...
llvm-svn: 111267
2010-08-17 19:00:27 +00:00
Douglas Gregor
256a7282e4
Revert Sebastian's build-breaking patch.
...
llvm-svn: 111265
2010-08-17 18:31:01 +00:00
Dan Gohman
b1e20869a2
Add the clangSerialization library to libclang.
...
llvm-svn: 111261
2010-08-17 18:07:30 +00:00
Sebastian Redl
52ce9bb2fb
Create a new Serialization module that contains all the PCH code, and will contain all the module code in the future. Update the Makefiles, CMake projects and the Xcode project. I hope I did everything right for Xcode. No functionality change.
...
llvm-svn: 111258
2010-08-17 17:55:49 +00:00
Sebastian Redl
ea68af43e8
Fix a typo in a diag name.
...
llvm-svn: 111257
2010-08-17 17:55:38 +00:00
Daniel Dunbar
71323e66b6
Remove a gratuitous lie.
...
llvm-svn: 111253
2010-08-17 17:34:48 +00:00
Douglas Gregor
175ea046ee
A member function never has "C" linkage. Fixes <rdar://problem/8318976>.
...
llvm-svn: 111238
2010-08-17 16:09:23 +00:00
Douglas Gregor
7116a8c19a
When generating code completion patterns for method declarations, give
...
the resulting pattern the appropriate cursor kind of an instance or
class method declaration.
llvm-svn: 111237
2010-08-17 16:06:07 +00:00
Chris Lattner
b5050f3cd0
apparently msvc defines _STDCALL_SUPPORTED, so we should
...
too. Patch by Per Linden!
llvm-svn: 111236
2010-08-17 16:02:32 +00:00
Chris Lattner
d28e6cc554
Add a slightly better hack for microsoft style inline asm,
...
patch by Per Linden!
llvm-svn: 111235
2010-08-17 16:00:12 +00:00
Chris Lattner
c0a585d63c
Implement #pragma push_macro, patch by Francois Pichet!
...
llvm-svn: 111234
2010-08-17 15:55:45 +00:00
Douglas Gregor
b0ce9b79ba
1 != I. Fix the formulation of code-completion patterns for
...
Objective-C method declarations with > 2 parameters.
llvm-svn: 111233
2010-08-17 15:53:35 +00:00
Benjamin Kramer
35b077e674
Convert all uses of StringLiteral::getStrData() to StringLiteral::getString()
...
and remove getStrData(). Patch by Peter Davies (with some tweaks).
llvm-svn: 111229
2010-08-17 12:54:38 +00:00
John McCall
3696dcb171
Don't try to initialize a reference with a constructed temporary if either
...
of the classes is invalid. A class is invalid if a base is invalid.
llvm-svn: 111227
2010-08-17 07:23:57 +00:00
Douglas Gregor
2c8bd47a6a
When the # of top-level declarations changes after reparsing a
...
translation unit, refresh code-completion results because they've
probably changed. However, enforce a cooldown period between
refreshes, to avoid thrashing.
llvm-svn: 111218
2010-08-17 00:40:40 +00:00
Zhongxing Xu
a66d1694f4
Generate a node instead of a sink. A leak is not a fatal error.
...
llvm-svn: 111217
2010-08-17 00:36:37 +00:00
John McCall
2677e10732
A field of incomplete type is sufficiently disruptive that we should mark
...
the record invalid.
llvm-svn: 111211
2010-08-16 23:42:35 +00:00
Eli Friedman
c3e9df3cc0
Move a bunch of code out of the ComplexExprEvaluator class definition;
...
no functionality change.
llvm-svn: 111207
2010-08-16 23:27:44 +00:00
Jordy Rose
5ccde8593f
Allow the "size" of a buffer access check to be either signed or unsigned. Fixes PR7925.
...
llvm-svn: 111205
2010-08-16 23:25:19 +00:00
Douglas Gregor
40a5a7de1d
Move include to the proper place. No functionality change
...
llvm-svn: 111204
2010-08-16 23:08:34 +00:00
Douglas Gregor
59cab5564f
Implement support for cached code completions for
...
nested-name-specifiers. Also includes fixes to the generation of
nested-name-specifier result in the non-cached case; we were producing
lame results for namespaces and namespace aliases, which (1) didn't
always have nested-name-specifiers when we want them, and (2) did not
have the necessary "::" as part of the completion.
llvm-svn: 111203
2010-08-16 23:05:20 +00:00
Fariborz Jahanian
99311ba1a8
Diagnose assiging to an interface object in
...
non-fragile abi mode as sizes are not statically known.
Fixes radar 8315734.
llvm-svn: 111191
2010-08-16 21:51:12 +00:00
Tom Care
c129cc18f0
Added basic psuedoconstant checking in IdempotentOperationChecker and fixed some test cases.
...
llvm-svn: 111190
2010-08-16 21:43:52 +00:00
Douglas Gregor
df239670d4
Formatting fixes. No functionality change
...
llvm-svn: 111186
2010-08-16 21:23:13 +00:00
Douglas Gregor
6199f2d146
Implement name hiding of cached global code-completion results.
...
llvm-svn: 111184
2010-08-16 21:18:39 +00:00
Jordy Rose
63a38a1b94
Instead of using operator bool() for testing if a BindingKey is valid, use an explicit isValid() method.
...
llvm-svn: 111181
2010-08-16 20:53:01 +00:00
Jordy Rose
4a57ec86bb
Move GRState::AssumeInBound out of its header file -- it's not really inline-friendly anymore.
...
llvm-svn: 111179
2010-08-16 20:34:06 +00:00
Douglas Gregor
d46cf182a4
Move some code out-of-line which has long since grown too large to be
...
inlined. No functionality change.
llvm-svn: 111176
2010-08-16 20:01:48 +00:00
Sebastian Redl
6ebb51a41d
Add two options for playing with modules.
...
llvm-svn: 111166
2010-08-16 18:17:11 +00:00
Douglas Gregor
b61c07aca0
When caching code completions for global declarations, keep track of
...
the usage type of each declaration result, then compare those types to
the preferred type of the completion. This provides parity in the
priority calculation between the code-completion results produced
directly from Sema and those cached by ASTUnit.
For the standard Cocoa.h (+ others) example, there's a penalty of 3-4
hundredeths of a second when caching the global results (for ~31,000
results), because we need an ASTContext-agnostic representation of
types for the comparison, and therefore we use... strings. Eventually,
we'd like to implement a more efficient ASTContext-agnostic encoding
of types.
llvm-svn: 111165
2010-08-16 18:08:11 +00:00
Fariborz Jahanian
055068df4a
Fix a crash when parsing malformed out-of-line member function
...
definition. radar 8307865.
llvm-svn: 111163
2010-08-16 17:58:53 +00:00
Argyrios Kyrtzidis
a3ae3eb690
Fix initialization for members of anonymous struct in a union.
...
llvm-svn: 111159
2010-08-16 17:27:13 +00:00
Argyrios Kyrtzidis
33aee3934a
Emit diagnostic error when the field of an anonymous struct is non trivial.
...
llvm-svn: 111158
2010-08-16 17:27:08 +00:00
Douglas Gregor
247474085e
Dereferencing NULL pointers is such poor form.
...
llvm-svn: 111150
2010-08-16 16:46:30 +00:00
Anton Yartsev
2cc136d4e3
support for vec_add, vec_adds, vec_and, vec_andc with bool arguments
...
llvm-svn: 111141
2010-08-16 16:22:12 +00:00
Douglas Gregor
6e24033bd2
When caching global completion results, keep track of the simplified
...
type class, so that we can adjust priorities appropriately when the
preferred type for the context and the actual type of the completion
are similar.
This gets us one step closer to parity of the cached completion
results with the non-cached completion results.
llvm-svn: 111139
2010-08-16 16:18:59 +00:00
Abramo Bagnara
217e902b1d
Fixed typo in conj, conjf, conjl signature.
...
llvm-svn: 111134
2010-08-16 15:57:05 +00:00
Jordy Rose
722f558f07
Model the effects of strcpy() and stpcpy() in CStringChecker. Other changes:
...
- Fix memcpy() and friends to actually invalidate the destination buffer.
- Emit a different message for out-of-bounds buffer accesses if the buffer is being written to.
- When conjuring symbols, let ValueManager figure out the type.
llvm-svn: 111120
2010-08-16 07:51:42 +00:00
Charles Davis
ebab1ed5d3
Error out if reinterpret_casting between member pointers of two different
...
sizes.
llvm-svn: 111119
2010-08-16 05:30:44 +00:00
Charles Davis
2d3694297d
Err on incomplete class types in member pointers when compiling for the
...
Microsoft C++ ABI, for now.
llvm-svn: 111118
2010-08-16 04:01:50 +00:00
Charles Davis
53c59df2f7
Implement support for member pointers under the Microsoft C++ ABI in the
...
AST library.
This also adds infrastructure for supporting multiple C++ ABIs in the AST.
llvm-svn: 111117
2010-08-16 03:33:14 +00:00
Jordy Rose
df28e8ec41
- Allow making ElementRegions with complex offsets (expressions or symbols) for the purpose of bounds-checking.
...
- Rewrite GRState::AssumeInBound to actually do that checking, and to use the normal constraint path.
- Remove ConstraintManager::AssumeInBound.
- Teach RegionStore and FlatStore to ignore those regions for now.
llvm-svn: 111116
2010-08-16 01:15:17 +00:00
David Chisnall
589a494352
Pass some things to the linker that gcc passes. -r is the only one of these that I'm sure about, but the others seem to be listed on FreeBSD by gcc -dumpspecs, so I hope they're right. Apparently -r is also not passed on GNU/Linux (and should be), but I can't see where the toolchain definition for this platform live.
...
llvm-svn: 111114
2010-08-15 22:58:12 +00:00
Jordy Rose
d2b777a409
Move GRState's bind* methods out of its header file -- they're too big for inlining now.
...
llvm-svn: 111113
2010-08-15 22:19:33 +00:00
Argyrios Kyrtzidis
b482eb8b28
Call the base class in StmtProfiler::VisitOverloadExpr.
...
llvm-svn: 111110
2010-08-15 20:53:20 +00:00
Benjamin Kramer
340045b204
Open AST/PCH files in binary mode.
...
llvm-svn: 111106
2010-08-15 16:54:31 +00:00
Nick Lewycky
53f1042dc1
Make the FixItOptions object required instead of optional.
...
llvm-svn: 111105
2010-08-15 16:47:39 +00:00
Zhongxing Xu
ee770d40fd
StoreManager::RemoveDeadBindings() can take a Store instead of an entire GRState now.
...
llvm-svn: 111103
2010-08-15 12:45:09 +00:00
Argyrios Kyrtzidis
499e6e49e7
Remove ATTRIBUTE_UNUSED from the common pattern of disallowing copying.
...
llvm-svn: 111101
2010-08-15 10:17:39 +00:00
Argyrios Kyrtzidis
04c7fa09e4
Don't warn for the common pattern of disallowing copying:
...
class S {
S(const S&); // DO NOT IMPLEMENT
void operator=(const S&); // DO NOT IMPLEMENT
};
llvm-svn: 111100
2010-08-15 10:17:33 +00:00
Zhongxing Xu
0ba9fd6c47
Remove redundant method.
...
llvm-svn: 111099
2010-08-15 10:08:38 +00:00
Zhongxing Xu
bce831f7e0
Implement MallocChecker::EvalDeadSymbols() with the new API. This time we
...
iterate over symbols being tracked, instead of symbols being dead.
llvm-svn: 111097
2010-08-15 08:19:57 +00:00
Douglas Gregor
3998219789
Extend the code-completion caching infrastructure to include global
...
declarations (in addition to macros). Each kind of declaration maps to
a certain set of completion contexts, and the ASTUnit completion logic
introduces the completion strings for those declarations if the actual
code-completion occurs in one of the contexts where it matters.
There are a few new code-completion-context kinds. Without these,
certain completions (e.g., after "using namespace") would need to
suppress all global completions, which would be unfortunate.
Note that we don't get the priorities right for global completions,
because we don't have enough type information. We'll need a way to
compare types in an ASTContext-agnostic way before this can be
implemented.
llvm-svn: 111093
2010-08-15 06:18:01 +00:00
Eli Friedman
f8d9817f4b
Use Enumerators.data() instead of &Enumerators[0] to fix a potential
...
assertion failure.
llvm-svn: 111092
2010-08-15 02:27:09 +00:00
Argyrios Kyrtzidis
1cec2cc798
Remove dead code, caught by unused function warnings.
...
llvm-svn: 111091
2010-08-15 01:15:58 +00:00
Argyrios Kyrtzidis
c99bab034c
DependentTypeOfExprType and DependentDecltypeType are not seen by client code.
...
llvm-svn: 111090
2010-08-15 01:15:44 +00:00
Argyrios Kyrtzidis
f4505457f8
Call the correct base class in StmtProfiler::VisitUnresolvedLookupExpr.
...
llvm-svn: 111089
2010-08-15 01:15:38 +00:00
Argyrios Kyrtzidis
3080553b10
Some refactoring on StmtPrinter to avoid unused function warnings.
...
llvm-svn: 111088
2010-08-15 01:15:33 +00:00
Argyrios Kyrtzidis
0a33cb62a6
Add ATTRIBUTE_UNUSED to methods not supposed to be used.
...
llvm-svn: 111087
2010-08-15 01:15:27 +00:00
Argyrios Kyrtzidis
1b30d9c0f0
Commit improved version of 111026 & 111027.
...
Unused warnings for functions:
-static functions
-functions in anonymous namespace
-class methods in anonymous namespace
-class method specializations in anonymous namespace
-function specializations in anonymous namespace
Unused warnings for variables:
-static variables
-variables in anonymous namespace
-static data members in anonymous namespace
-static data members specializations in anonymous namespace
Reveals lots of opportunities for dead code removal in llvm codebase that will
interest my esteemed colleagues.
llvm-svn: 111086
2010-08-15 01:15:20 +00:00
Eli Friedman
1bb53d9cd6
Explicitly handle every case in the switch in RTTIBuilder::BuildTypeInfo.
...
llvm-svn: 111085
2010-08-15 00:24:31 +00:00
Nick Lewycky
0db53e433e
Remember that FixItOptions* is optional and don't crash when it's not provided.
...
llvm-svn: 111084
2010-08-14 23:03:19 +00:00
Jordy Rose
2a2e21c902
Update CStringChecker to take advantage of the new metadata symbols and region change callback. Now does basic tracking of string length for general regions. Currently this is still only used for modeling strlen().
...
llvm-svn: 111081
2010-08-14 21:02:52 +00:00
Eli Friedman
9571953f36
PR7884: Fix the implementations of __real__ and __imag__ on real floats.
...
llvm-svn: 111080
2010-08-14 20:52:13 +00:00
Jordy Rose
a797475712
Add a test for alloca region extents.
...
llvm-svn: 111079
2010-08-14 20:46:10 +00:00
Jordy Rose
ac0ab20e3b
Add a callback for when region changes occur. Still somewhat of a work-in-progress, but working! Effect on clients: all changes to a store now go through GRState.
...
llvm-svn: 111078
2010-08-14 20:44:32 +00:00
Jordy Rose
1f3a553b9b
Another metadata symbol change (missed a file)
...
llvm-svn: 111077
2010-08-14 20:22:12 +00:00
Jordy Rose
7fa9bf05bc
Add a new metadata symbol type for checkers to use. Metadata symbols must be associated with a region and will be collected if the region dies or its checker fails to mark it as in use.
...
llvm-svn: 111076
2010-08-14 20:18:45 +00:00
John McCall
32427785c0
More cleanup enabling.
...
llvm-svn: 111070
2010-08-14 07:46:19 +00:00
Eli Friedman
df2392572e
PR3344: Downgrade "too many braces around scalar initializer" to a warning.
...
llvm-svn: 111067
2010-08-14 03:14:53 +00:00
Ted Kremenek
aa01481d78
Always recurse into sub-cursors when annotating tokens, as this information is used for annotating macro arguments. This finishes up <rdar://problem/8044584>.
...
llvm-svn: 111066
2010-08-14 02:50:46 +00:00
Daniel Dunbar
26f898f64e
Driver: Increase flags to hold all necessary bits.
...
llvm-svn: 111065
2010-08-14 02:19:45 +00:00
Ted Kremenek
f4ade0ae3f
As a heuristic, annotate tokens (via clang_annotateTokens) that are the arguments of a macro instantiation using the closest cursor with the same spelling location. Because macro arguments can get token pasted in any arbitrary order, we use the annotation map to paper over the token -> cursor annotations during our post-processing stage. This fixes most of <rdar://problem/8044584>, but still doesn't work for assert().
...
llvm-svn: 111062
2010-08-14 01:14:06 +00:00
Douglas Gregor
b14904c4a8
Implement caching of code-completion results for macro definitions
...
when the CXTranslationUnit_CacheCompletionResults option is given to
clang_parseTranslationUnit(). Essentially, we compute code-completion
results for macro definitions after we have parsed the file, then
store an ASTContext-agnostic version of those results (completion
string, cursor kind, priority, and active contexts) in the
ASTUnit. When performing code completion in that ASTUnit, we splice
the macro definition results into the results provided by the actual
code-completion (which has had macros turned off) before libclang gets
those results. We use completion context information to only splice in
those results that make sense for that context.
With a completion involving all of the macros from Cocoa.h and a few other
system libraries (totally ~8500 macro definitions) living in a
precompiled header, we get about a 9% performance improvement from
code completion, since we no longer have to deserialize all of the
macro definitions from the precompiled header.
Note that macro definitions are merely the canary; the cache is
designed to also support other top-level declarations, which should be
a bigger performance win. That optimization will be next.
Note also that there is no mechanism for determining when to throw
away the cache and recompute its contents.
llvm-svn: 111051
2010-08-13 22:48:40 +00:00
John McCall
612942d65f
Sketch out a framework for delaying the activation of a cleanup.
...
Not yet complete or used.
llvm-svn: 111044
2010-08-13 21:20:51 +00:00
Argyrios Kyrtzidis
98703d3883
Revert 111026 & 111027, build breakage.
...
llvm-svn: 111036
2010-08-13 20:13:06 +00:00
Argyrios Kyrtzidis
1063a71e43
The unused warnings extravaganza continues. Warn for:
...
-static variables
-variables in anonymous namespace (fixes rdar://7794535)
-static data members in anonymous namespace
-static data members specializations in anonymous namespace
llvm-svn: 111027
2010-08-13 18:42:40 +00:00
Argyrios Kyrtzidis
540bc01f50
Expand the unused warnings for functions. Warn for:
...
-static function declarations
-functions in anonymous namespace
-class methods in anonymous namespace
-class method specializations in anonymous namespace
-function specializations in anonymous namespace
llvm-svn: 111026
2010-08-13 18:42:29 +00:00
Argyrios Kyrtzidis
35672e7852
Change Sema's UnusedStaticFuncs to UnusedFileScopedDecls to allow also keeping track of unused file scoped variables.
...
This is only preparation, currently only static function definitions are tracked, as before.
llvm-svn: 111025
2010-08-13 18:42:17 +00:00
Fariborz Jahanian
18d90a97df
When issuing warning for future conflict resolution,
...
(nonfragile-abi2), do not consider 'ivar' access
in class methods. Also, improve on diagnostics.
Radar 8304561.
llvm-svn: 111023
2010-08-13 18:09:39 +00:00
Nick Lewycky
078a5e26fd
Add a new cc1 option -fix-what-you-can which when combined with the fix-it mode
...
will apply all fixes even when there were other errors in the file.
llvm-svn: 111020
2010-08-13 17:31:00 +00:00
Douglas Gregor
6bb92ecc0a
Add an options parameter to clang_saveTranslationUnit, because we'll want it later
...
llvm-svn: 111016
2010-08-13 15:35:05 +00:00
Abramo Bagnara
c852cef1f2
Fixed NNS insertion in MemberPointerType.
...
llvm-svn: 111013
2010-08-13 12:56:25 +00:00
John McCall
8823c65abd
Properly give unique-external linkage to members of member templates
...
instantiated with unique-external parameters.
llvm-svn: 111012
2010-08-13 08:35:10 +00:00
John McCall
249eed98bc
Fix the help text on -Wwrite-strings.
...
llvm-svn: 111011
2010-08-13 07:05:45 +00:00
John McCall
bd8062dff1
Work around a crash when checking access to injected class names
...
qua templates. The current fix suppresses the access check entirely
in this case; to do better, we'd need to be able to say that a
particular lookup result came from a particular injected class name,
which is not easy to do with the current representation of LookupResult.
This is on my known-problems list.
llvm-svn: 111009
2010-08-13 07:02:08 +00:00
Douglas Gregor
e938668003
Implement clang_saveTranslationUnit(), which saves a translation unit
...
into a PCH/AST file.
llvm-svn: 111006
2010-08-13 05:36:37 +00:00
Daniel Dunbar
568b7500fe
Driver/OptParser: Add a NoForward flag to prevent forwarding certain options to
...
GCC.
- Mark -Xclang and -mlinker-version= with it for now, although I am sure there
are more.
llvm-svn: 111005
2010-08-13 04:44:20 +00:00
Douglas Gregor
6fd55e06d3
Teach ASTUnit to hold on to the Sema object and ASTConsumer that are
...
used when parsing (or re-parsing) a file. Also, when loading a
precompiled header into ASTUnit, create a Sema object that holds onto
semantic-analysis information.
llvm-svn: 111003
2010-08-13 03:15:25 +00:00
John McCall
d89e349f06
Make two methods have compatible signatures with the methods they override.
...
llvm-svn: 111002
2010-08-13 03:01:11 +00:00
John McCall
dcc7140f86
Perform access control when template lookup finds a class template.
...
This is *really* hacky.
llvm-svn: 110997
2010-08-13 02:23:42 +00:00
Eli Friedman
a2622dd266
Zap unused UnaryOperator::OffsetOf.
...
llvm-svn: 110996
2010-08-13 01:36:11 +00:00
Douglas Gregor
e525b4e2d9
The Sema object will get destroyed before all of the others anyway. We don't need to force it
...
llvm-svn: 110993
2010-08-13 00:52:31 +00:00
Sebastian Redl
e7c1fe6ab7
Instead of modifying the ObjC AST to not modify existing declarations, teach chained PCH to overwrite declarations from earlier PCH files in dependent ones. Tell Sema to note when it changes AST nodes so that they have to be reserialized. Finally, the ObjCProtocolDecls created in forward decls, like the ObjCInterfaceDecls in @class forward decls, are not lexically part of the decl context; only the definition is.
...
llvm-svn: 110989
2010-08-13 00:28:03 +00:00
Fariborz Jahanian
f7f020bb2a
Make use of __func__ in a block actually refer to
...
block's helper function. Fixes radar 7860965.
llvm-svn: 110988
2010-08-13 00:19:55 +00:00
John McCall
b3732bb3b7
Just disable the hidden-visibility optimization for now by hiding it behind
...
a -cc1 option. The Darwin linker complains about mixed visibility when linking
gcc-built objects with clang-built objects, and the optimization isn't really
that valuable. Platforms with less ornery linkers can feel free to enable this.
llvm-svn: 110979
2010-08-12 23:36:15 +00:00
Douglas Gregor
0e93f017e5
Teach CompilerInstance to create and hold on to the Sema object used
...
for parsing, so that it can persist beyond the lifetime of the parsing
call.
llvm-svn: 110978
2010-08-12 23:31:19 +00:00
Tom Care
af9bbad718
Small changes to UnreachableCodeChecker
...
- Added detection of Empty CFGBlocks (artificial blocks)
- Relaxed an assertion based on an incorrect assumption until further investigation
llvm-svn: 110974
2010-08-12 23:01:06 +00:00
Douglas Gregor
5c6f10b54c
Add a ParseAST overload that takes a Sema object, so that the caller
...
can create (and hold on to) the Sema object. Also, move Sema-related
initialization/finalization with its various consumers and external
sources into the Sema constructor and destructor, rather than placing
it in ParseAST.
llvm-svn: 110973
2010-08-12 22:51:45 +00:00
Tom Care
f8a9863df9
Improved IdempotentOperationChecker false positives and false negatives.
...
- Unfinished analysis may still report valid warnings if the path was completely analyzed
- New 'CanVary' heuristic to recursively determine if a subexpression has a varying element
- Updated test cases, including one known bug
- Exposed GRCoreEngine through GRExprEngine
llvm-svn: 110970
2010-08-12 22:45:47 +00:00
Fariborz Jahanian
b5a6246b91
Typo.
...
llvm-svn: 110965
2010-08-12 22:33:42 +00:00
Fariborz Jahanian
68e69ca9f9
Patch to issue warning when colllection expresion's type
...
does not implement 'countByEnumeratingWithState' API.
Implements radar 7634669.
llvm-svn: 110964
2010-08-12 22:25:42 +00:00
John McCall
2b5c1b2516
Implement -Wcast-align. The initial design of this diagnostic diverges
...
from GCC's in that we warn on *any* increase in alignment requirements, not
just those that are enforced by hardware. Please let us know if this causes
major problems for you (which it shouldn't, since it's an optional warning).
llvm-svn: 110959
2010-08-12 21:44:57 +00:00
John McCall
112fd083fa
Fixing the build isn't good enough; back out r110956 and r110953.
...
llvm-svn: 110958
2010-08-12 21:39:05 +00:00
John McCall
0af2b7c93e
dgregor should write code that compiles.
...
llvm-svn: 110956
2010-08-12 21:23:27 +00:00
Douglas Gregor
a776ed182f
Update Xcode project
...
llvm-svn: 110953
2010-08-12 20:53:33 +00:00
Douglas Gregor
ad814e224f
Add a ParseAST overload that takes a Sema object, so that the caller
...
can create (and hold on to) the Sema object. Also, move Sema-related
initialization/finalization with its various consumers and external
sources into the Sema constructor and destructor, rather than placing
it in ParseAST.
llvm-svn: 110952
2010-08-12 20:50:39 +00:00
Fariborz Jahanian
753783a062
Fixes block type matching bug. Radar 8302845.
...
llvm-svn: 110950
2010-08-12 20:46:12 +00:00
Douglas Gregor
c3a6ade0bb
Move Sema's headers into include/clang/Sema, renaming a few along the way.
...
llvm-svn: 110945
2010-08-12 20:07:10 +00:00
Dan Gohman
c702acc81f
Revert r110936; this fails on clang-i686-darwin10 too.
...
llvm-svn: 110942
2010-08-12 18:57:17 +00:00
Anton Yartsev
bfd0f96e79
first test commit
...
llvm-svn: 110941
2010-08-12 18:51:55 +00:00
Douglas Gregor
62157e5342
Downgrade error about nonnull attribute bbeing applied to a function without point arguments to a warning
...
llvm-svn: 110939
2010-08-12 18:48:43 +00:00
Devang Patel
16e465bc5f
Make this test darwin only.
...
llvm-svn: 110936
2010-08-12 17:42:42 +00:00
Douglas Gregor
02690ba643
Don't emit end-of-file diagnostics like "unterminated conditional" or
...
"unterminated string" when we're performing code completion.
llvm-svn: 110933
2010-08-12 17:04:55 +00:00
Dan Gohman
ca4930b445
Temporarily disable this failing test, until it can be properly
...
investigated.
llvm-svn: 110917
2010-08-12 15:19:46 +00:00
Argyrios Kyrtzidis
cd404f1def
Add a comment.
...
llvm-svn: 110913
2010-08-12 12:31:25 +00:00
Abramo Bagnara
8de74e9c81
Added locations and type source info for DeclarationName inside UsingDecl.
...
llvm-svn: 110912
2010-08-12 11:46:03 +00:00
Jordy Rose
5af0e3cbba
Remove OwnershipAttr::Kind, since it's essentially redundant with attr::Kind the way it's being used. Also fix isa<OwnershipAttr> support, break more-than-80-char lines, and other miscellaneous ownership attr cleanup.
...
llvm-svn: 110908
2010-08-12 08:54:03 +00:00
John McCall
7e9e2b47b9
Test for rdar://problem/8073696.
...
llvm-svn: 110907
2010-08-12 07:31:42 +00:00
John McCall
8246e350be
Handle the obvious case for diagnosing redeclarations of extern "C" functions.
...
Fixes PR7859.
llvm-svn: 110906
2010-08-12 07:09:11 +00:00
Jordy Rose
2f7ee3ca40
Actually use reduced set of checkers in EvalAssume.
...
llvm-svn: 110904
2010-08-12 04:05:07 +00:00
Daniel Dunbar
e9e91b0597
Frontend: Move the bulk of the cc1_main() processing into
...
ExecuteCompilerInvocation in libFrontend.
llvm-svn: 110903
2010-08-12 02:53:12 +00:00
Daniel Dunbar
1cdf04c193
clang -cc1: Move real diagnostics client initialization to earlier.
...
llvm-svn: 110902
2010-08-12 02:53:07 +00:00
John McCall
bdb989eca4
Bail out of MaybeBindToTemporary if the record type is invalid. Test case
...
is 8.5MB, sorry.
llvm-svn: 110901
2010-08-12 02:40:37 +00:00
John McCall
398dc37d1f
Implement RTTI generation for Objective C types. Fixes PR7864.
...
llvm-svn: 110900
2010-08-12 02:17:33 +00:00
John McCall
12d53da8cb
Fix a crash on invalid when declaring an implicit member of a class with an
...
invalid destructor.
llvm-svn: 110891
2010-08-12 00:57:17 +00:00
Daniel Dunbar
628fcf4e3b
Driver: Use the compile time linker version as the default for -mlinker-version,
...
if detected.
- This is a hack, we really want the linker version at execution time, but we
don't have any infrastructure for getting that. Yet.
llvm-svn: 110886
2010-08-12 00:05:12 +00:00
Devang Patel
caa23f0708
Emit debug info for static const class member.
...
llvm-svn: 110885
2010-08-12 00:02:44 +00:00
Devang Patel
a3025fcd45
update test to reflect r110876 change.
...
llvm-svn: 110884
2010-08-12 00:00:41 +00:00
John McCall
2ded5d25a9
Don't try to implicitly declare special members of an invalid class.
...
Fixes a crash in a rather large and difficult-to-reduce test case.
llvm-svn: 110882
2010-08-11 23:52:36 +00:00
Tom Care
ec389da6f2
Fix a bug where child statements could not be identified as being in a CFGBlock in CFGStmtMap::getBlock.
...
llvm-svn: 110881
2010-08-11 23:36:58 +00:00
Argyrios Kyrtzidis
90bdfbbdf7
Switch on PCH for C++. C++ fans all over the world rejoice.
...
llvm-svn: 110879
2010-08-11 23:27:58 +00:00
Daniel Dunbar
cacb0e2d45
Driver/Darwin: Pass -demangle when linking, if the linker supports it.
...
llvm-svn: 110873
2010-08-11 23:07:50 +00:00
Daniel Dunbar
976a2f54fa
Driver: Add -mlinker-version=, which forwards to -target-linker-version.
...
llvm-svn: 110872
2010-08-11 23:07:47 +00:00
Daniel Dunbar
a1d107cb46
Frontend: Add -target-linker-version, for specifying the version string of the
...
linker in use.
llvm-svn: 110871
2010-08-11 23:07:42 +00:00
Eli Friedman
854f110834
Fix oversight with symbolic names in TargetInfo::validateInputConstraint.
...
llvm-svn: 110870
2010-08-11 23:03:37 +00:00
Argyrios Kyrtzidis
3084a61e98
-Make TokenID of IdentifierInfo read-only, remove setTokenID().
...
-There are 2 instances that change the TokenID for GNU libstdc++ 4.2 compatibility.
To handler those cases introduce a RevertedTokenID bitfield, RevertTokenIDToIdentifier() and hasRevertedTokenIDToIdentifier() methods.
Store the bitfield in PCH.
llvm-svn: 110868
2010-08-11 22:55:12 +00:00
John McCall
5996699834
Revise r110163: don't mark weak functions nounwind, because the optimizer
...
treats that as a contract to be fulfilled by any replacements.
llvm-svn: 110864
2010-08-11 22:38:33 +00:00
Abramo Bagnara
d6d2f18905
Added locations and type source info for DeclarationName.
...
llvm-svn: 110860
2010-08-11 22:01:17 +00:00
Douglas Gregor
00c37ef021
Once code completion has completed, pass a "completion context" on to
...
the code-completion consumer. The consumer can use this information to
augument, filter, or display the code-completion results.
llvm-svn: 110858
2010-08-11 21:23:17 +00:00
Fariborz Jahanian
0bce17e572
Change text of diagnostics on user request.
...
radar 7948654.
llvm-svn: 110857
2010-08-11 21:22:15 +00:00
Devang Patel
d76c1dbe39
Emit a stop point for delegate constructor call. This gives user a chance to step into constructor body.
...
llvm-svn: 110853
2010-08-11 21:04:37 +00:00
John McCall
ffe4630f3d
When re-raising an exception after a cleanup, we need to call _Unwind_Resume_or_Rethrow
...
instead of _Unwind_Resume. With SJLJ exceptions, this is spelled
"_Unwind_SjLj_Resume_or_Rethrow", not "_Unwind_SjLj_Resume", which has
significantly different semantics.
We should actually never be generating a call to _Unwind_SjLj_Resume directly;
even if we were generating true cleanups (which we aren't because of the
horrible hack), we should be calling __cxa_end_cleanup() on ARM. I
haven't implemented this because there's little point as long as the HH is
present.
I believe this fixes <rdar://problem/8281377>.
llvm-svn: 110851
2010-08-11 20:59:53 +00:00
Eli Friedman
961fc05418
Work in progress for PR7864. Someone more familiar with ObjC++ needs to fill
...
in the code after the "FIXME: Needs to be written".
llvm-svn: 110849
2010-08-11 20:41:51 +00:00
Bruno Cardoso Lopes
762e401911
Remove rsqrtps_nr256 and sqrtps_nr256 builtins, at least until we need them
...
llvm-svn: 110844
2010-08-11 19:18:36 +00:00
Fariborz Jahanian
0150367c27
Update documentation regarding use of 'class' in
...
property-dot syntax.
llvm-svn: 110841
2010-08-11 18:57:26 +00:00
Sebastian Redl
eaa4ade80e
Reintroduce the ASTConsumer/ASTUnit fix from r110610, it has nothing to do with the breakage.
...
llvm-svn: 110840
2010-08-11 18:52:41 +00:00
Bruno Cardoso Lopes
8c333153e0
Fix define inserting a comma :)
...
llvm-svn: 110839
2010-08-11 18:45:43 +00:00
Fariborz Jahanian
d539d098a4
IRGen support for functions returning objc object
...
types. Fixes PR7865.
llvm-svn: 110832
2010-08-11 17:37:35 +00:00
Douglas Gregor
de05118c84
Add a (currently unused) "options" parameter to
...
clang_reparseTranslationUnit(), along with a function to retrieve the
default recommended reparsing options for a translation unit.
Also, add the CXTranslationUnit_CacheCompletionResults flag, which is
also currently unused.
llvm-svn: 110811
2010-08-11 15:58:42 +00:00
Daniel Dunbar
468f5cb8ea
Remove wpa 'example', it isn't being maintained.
...
llvm-svn: 110809
2010-08-11 15:21:41 +00:00
Benjamin Kramer
e8394df11b
Random temporary string cleanup.
...
llvm-svn: 110807
2010-08-11 14:47:12 +00:00
Douglas Gregor
13e6587313
If name lookup finds different type declarations in different scopes
...
that actually refer to the same underlying type, it is not an
ambiguity; add uniquing support based on the canonical type of type
declarations. Fixes <rdar://problem/8296180>.
llvm-svn: 110806
2010-08-11 14:45:53 +00:00
Douglas Gregor
20975b25c3
Fix a thinko in the creation of temporary files for the precompiled preamble
...
llvm-svn: 110804
2010-08-11 13:06:56 +00:00
Douglas Gregor
1c28331b57
Speculatively revert r110610 " Make ObjCInterfaceDecl redeclarable,
...
and create separate decl nodes for forward declarations and the
definition," which appears to be causing significant Objective-C
breakage.
llvm-svn: 110803
2010-08-11 12:19:30 +00:00
Zhongxing Xu
8de0a3d8c3
MemRegion can refer to ASTContext without external help.
...
llvm-svn: 110784
2010-08-11 06:10:55 +00:00
Daniel Dunbar
00012c869f
tests: Add a missing -Xclang.
...
llvm-svn: 110776
2010-08-11 02:32:03 +00:00
Daniel Dunbar
9034aa36c7
ARM: Recognize single precision float register names.
...
- We don't recognize double or NEON register names yet -- we don't have the
infrastructure to generate the right clobbers for them.
llvm-svn: 110775
2010-08-11 02:17:20 +00:00
Daniel Dunbar
256e1f3ad0
ARM: Swap which registers we consider real / aliases to match LLVM and llvm-gcc.
...
llvm-svn: 110774
2010-08-11 02:17:11 +00:00
Douglas Gregor
836a7e8468
Improve our handling of user-defined conversions when computing
...
implicit conversion sequences. In particular, model the "standard
conversion" from a class to its own type (or a base type) directly as
a standard conversion in the normal path *without* trying to determine
if there is a valid copy constructor. This appears to match the intent
of C++ [over.best.ics]p6 and more closely matches GCC and EDG.
As part of this, model non-lvalue reference initialization via
user-defined conversion in overloading the same way we handle it in
InitializationSequence, separating the "general user-defined
conversion" and "conversion to compatible class type" cases.
The churn in the overload-call-copycon.cpp test case is because the
test case was originally wrong; it assumed that we should do more
checking for copy constructors that we actually should, which affected
overload resolution.
Fixes PR7055. Bootstrapped okay.
llvm-svn: 110773
2010-08-11 02:15:33 +00:00
Bruno Cardoso Lopes
65954ffc69
Remove 256-bit cast built-ins and make the AVX intrinsic call llvm __builtin_shufflevector with the appropriate arguments
...
llvm-svn: 110771
2010-08-11 02:14:38 +00:00
John McCall
ca7993f572
Make this test a little less dependent on exact optimizer results.
...
llvm-svn: 110770
2010-08-11 02:06:44 +00:00
Bruno Cardoso Lopes
a4f1930b75
Remove 256-bit unpack built-ins and make the AVX intrinsic call llvm __builtin_shufflevector with the appropriate arguments
...
llvm-svn: 110768
2010-08-11 01:43:24 +00:00
Bruno Cardoso Lopes
e712a135b7
Remove 256-bit shuffle built-ins and make the AVX intrinsic call llvm __builtin_shufflevector with the appropriate arguments
...
llvm-svn: 110766
2010-08-11 01:17:34 +00:00
John Thompson
46667afccd
Fix for pr7869, inline asm mult-alt constraints.
...
llvm-svn: 110764
2010-08-11 00:58:20 +00:00
John McCall
cebe0ca75e
Fix a bug in @finally emission in both the fragile and non-fragile EH schemes
...
where we weren't accounting for the possibility that a @finally block might
have internal cleanups and therefore might write to the cleanup destination slot.
Fixes <rdar://problem/8293901>.
llvm-svn: 110760
2010-08-11 00:16:14 +00:00
Ted Kremenek
2b4adffa16
Have GRCoreEngine record the blocks where analysis was aborted because we visited a block too many times along a given path. This is to support the unreachable code analysis.
...
llvm-svn: 110755
2010-08-11 00:03:02 +00:00
Ted Kremenek
19183acd1f
Add test case for <rdar://problem/8288645>. While this is fixed in trunk, we previously were getting the following assertion failure not too long ago:
...
Assertion failed: (getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one.")
llvm-svn: 110740
2010-08-10 22:30:29 +00:00
John Thompson
307c2729fd
Something's wrong with this test on other platforms. I'll probably need to simplify it later. For now revert.
...
llvm-svn: 110738
2010-08-10 22:04:00 +00:00
Fariborz Jahanian
6fdc171414
Fix test to not depend on objc.h header.
...
llvm-svn: 110729
2010-08-10 20:59:58 +00:00
Devang Patel
8166571a25
Simplify
...
llvm-svn: 110716
2010-08-10 20:16:57 +00:00
Devang Patel
bb9106b395
Test case for llvm r110712.
...
llvm-svn: 110713
2010-08-10 20:01:51 +00:00
Daniel Dunbar
4c60857426
tests: Avoid unnecessary redirection.
...
llvm-svn: 110709
2010-08-10 19:33:56 +00:00
Daniel Dunbar
656f3bd3e2
tests: Tests which include system headers must use the driver, not -cc1.
...
llvm-svn: 110708
2010-08-10 19:32:44 +00:00
John Thompson
a5c7d706b8
Slightly revised handling of mult-alt constraints, to avoid an assert, until we have the full fix.
...
llvm-svn: 110706
2010-08-10 19:20:14 +00:00
John McCall
62eb9a8e84
When initializing a static local, pop the guard-abort EH cleanup after
...
the variable is fully initialized.
llvm-svn: 110704
2010-08-10 18:51:44 +00:00
Fariborz Jahanian
d52543ee22
an objective-c++ test for -Wstrict-selector-match
...
(radar 8127244).
llvm-svn: 110702
2010-08-10 18:32:37 +00:00
Devang Patel
76e3b53541
Do not use DIGlobalVariable to emit debugging information for enums.
...
llvm-svn: 110697
2010-08-10 18:27:15 +00:00
Fariborz Jahanian
32e59ba01d
Fix a spurious warning when message sent to qualified-id
...
type receiver (pr7861).
llvm-svn: 110696
2010-08-10 18:10:50 +00:00
Ted Kremenek
0476899b20
Turn on idempotent operations checker when using --analyze.
...
llvm-svn: 110695
2010-08-10 18:03:13 +00:00
Devang Patel
dc866e119c
Simplify code and add comments, in code that generate debug info for constant integer globals, based on Chris's feedback.
...
llvm-svn: 110694
2010-08-10 17:53:33 +00:00
Daniel Dunbar
ce25f33e2a
Driver/FreeBSD: Infer the right arch name in the presence of -m32,-m64, for the
...
cases we care about.
- This is eventually going to be unified outside the host specific code.
llvm-svn: 110693
2010-08-10 17:39:05 +00:00
Douglas Gregor
e68aaca766
Teach the libclang cursor visitor to walk into the type information
...
provided by __builtin_types_compatible_p and __builtin_va_arg
expressions, now that Abramo has added proper type-source information
to those expressions.
llvm-svn: 110681
2010-08-10 15:02:34 +00:00
Douglas Gregor
7058c265f5
Eliminate unnecessary uses of TemporaryBase in TreeTransform;
...
transforming TypeSourceInfos already gives us proper (and better)
source-location information.
llvm-svn: 110678
2010-08-10 14:27:00 +00:00
Abramo Bagnara
f9985b4560
Fixed redundant NNS loading.
...
llvm-svn: 110677
2010-08-10 13:46:45 +00:00
Abramo Bagnara
27db23948c
Added TypeLocs to VAArgExpr node.
...
llvm-svn: 110666
2010-08-10 10:06:15 +00:00
Abramo Bagnara
092990ac68
Added TypeLocs to TypesCompatibleExpr node.
...
llvm-svn: 110663
2010-08-10 08:50:03 +00:00
Devang Patel
e03edfd3e7
Even if a constant's evaluated value is used, emit debug info for the constant variable.
...
llvm-svn: 110660
2010-08-10 07:24:25 +00:00
Eli Friedman
88f4ed9011
Fix redefinition of typedefs of fixable variably-modified array types; should
...
fix an issue compiling <windows.h>.
llvm-svn: 110651
2010-08-10 03:13:15 +00:00
Bruno Cardoso Lopes
3d3fc1d075
Make replicate intrinsics use shufflevector instead of dup builtins, also remove the dup builtins
...
llvm-svn: 110646
2010-08-10 02:23:54 +00:00
Bruno Cardoso Lopes
8de4f98161
Use i32 instead of i8 for AVX dot product intrinsic
...
llvm-svn: 110644
2010-08-10 01:41:40 +00:00
Devang Patel
2210aa2eca
There is no need to pubish file static variable's name. Do not rely on this code gen bug to check whether debug info is generated for such variables or not.
...
llvm-svn: 110640
2010-08-10 01:36:24 +00:00
Rafael Espindola
92b0093112
Run the assembler instead of gcc on Linux.
...
llvm-svn: 110635
2010-08-10 00:25:48 +00:00
Bruno Cardoso Lopes
7880126768
Consider the last argument of vblend builtin to be i32 instead of i8
...
llvm-svn: 110629
2010-08-10 00:01:23 +00:00
Fariborz Jahanian
3337b2e8dd
Implements gcc's -Wstrict-selector-match.
...
(radar 8127244).
llvm-svn: 110622
2010-08-09 23:27:58 +00:00
Douglas Gregor
86b8d9ff87
When attempting to recover from a failed unqualified name lookup, make
...
sure to clear out the LookupResult structure after looking into each class.
llvm-svn: 110615
2010-08-09 22:38:14 +00:00
Douglas Gregor
4a47bca47d
Instead of having a specific CXTranslationUnit_* option flag for
...
"editing" mode, introduce a separate function
clang_defaultEditingTranslationUnitOptions() that retrieves the set of
options. No functionality change.
llvm-svn: 110613
2010-08-09 22:28:58 +00:00
Sebastian Redl
ab6a088314
- Make ObjCInterfaceDecl redeclarable, and create separate decl nodes for forward declarations and the definition.
...
- Eagerly create ObjCInterfaceTypes for declarations.
- The two above changes lead to a 0.5% increase in memory use and no speed regression when parsing Cocoa.h. On the other hand, now chained PCH works when there's a forward declaration in one PCH and the interface definition in another.
- Add HandleInterestingDecl to ASTConsumer. PCHReader passes the "interesting" decls it finds to this function instead of HandleTopLevelDecl. The default implementation forwards to HandleTopLevelDecl, but ASTUnit's handler for example ignores them. This fixes a potential crash when lazy loading of PCH data would cause ASTUnit's "top level" declaration collection to change while being iterated.
llvm-svn: 110610
2010-08-09 21:55:28 +00:00
John Thompson
cdb847ba16
Added vecreturn attribute parsing.
...
llvm-svn: 110609
2010-08-09 21:53:52 +00:00
Argyrios Kyrtzidis
c0dc36b213
Change warning about incomplete parsing of C++ default arg to error and provide a test case; thanks Doug!
...
llvm-svn: 110603
2010-08-09 21:08:13 +00:00
Daniel Dunbar
8a37147ce2
Fix mixed declarations and code warning.
...
llvm-svn: 110602
2010-08-09 21:06:06 +00:00
Douglas Gregor
8ef4c807a1
Minor libclang tweaks
...
llvm-svn: 110599
2010-08-09 21:00:09 +00:00
Douglas Gregor
028d3e4d0f
Use precompiled preambles for in-process code completion.
...
llvm-svn: 110596
2010-08-09 20:45:32 +00:00
Jordy Rose
c6c0fc9164
Allow EvalBinOpNN to handle expressions of the form $a+$b if $b can be reduced to a constant.
...
llvm-svn: 110592
2010-08-09 20:31:57 +00:00
Fariborz Jahanian
ec43022b99
Warn if class object does not implement qualified
...
id's protocols. Fixes radar 8154220.
llvm-svn: 110583
2010-08-09 18:21:43 +00:00
Argyrios Kyrtzidis
f355e0cacd
Remove a FIXME.
...
llvm-svn: 110571
2010-08-09 10:59:17 +00:00
Argyrios Kyrtzidis
a8607779a4
Complete PCH support for ObjCPropertyImplDecl.
...
llvm-svn: 110570
2010-08-09 10:54:37 +00:00
Argyrios Kyrtzidis
c049f7547b
Revert the dump functions to send output to llvm::errs(), matching the LLVM convention; suggestion by Daniel.
...
'-ast-print' / '-ast-dump' command line options still send output to llvm::outs().
llvm-svn: 110569
2010-08-09 10:54:31 +00:00
Argyrios Kyrtzidis
773894ccec
Replace a parser assertion with a warning, suggestion by Doug.
...
llvm-svn: 110568
2010-08-09 10:54:26 +00:00
Argyrios Kyrtzidis
13257c5527
Support ObjC implementation decls for PCH.
...
Strictly speaking, implementations don't go in headers but there's no law against it.
llvm-svn: 110567
2010-08-09 10:54:20 +00:00
Argyrios Kyrtzidis
5b6a03f490
Refactor into functions PCH reading/writing the CXXBaseOrMemberInitializers. No functionality change.
...
llvm-svn: 110566
2010-08-09 10:54:12 +00:00
Alexis Hunt
9350d51518
Remove C++0x concept keyword tokens since concepts were removed from C++0x.
...
llvm-svn: 110553
2010-08-08 21:19:33 +00:00
Chandler Carruth
42cf818be1
Fix a few more typos. Amusingly, GCC made the same mistake around version 3.2.
...
llvm-svn: 110546
2010-08-08 08:44:32 +00:00
Chandler Carruth
7579c008ec
Fix some typos I made when adding alternate intrinsic names.
...
llvm-svn: 110545
2010-08-08 08:30:05 +00:00
Douglas Gregor
618e64a23b
Revert r110440, the fix for PR4897. Chris claims to have a better way.
...
llvm-svn: 110544
2010-08-08 07:49:23 +00:00
Chandler Carruth
9b41823177
Fix a crash on template delete operators.
...
llvm-svn: 110542
2010-08-08 07:04:00 +00:00
Eli Friedman
9129b00c5f
Make this test check a few more cases which didn't work correctly before
...
r110526.
llvm-svn: 110540
2010-08-08 05:07:06 +00:00
Chandler Carruth
9c524c1d53
Silence GCC warning about && and || without explicit grouping.
...
llvm-svn: 110537
2010-08-08 05:02:51 +00:00
Eric Christopher
6ff7161d51
Thread local variables aren't considered common linkage.
...
llvm-svn: 110530
2010-08-08 01:37:14 +00:00
Eli Friedman
aab1fda91f
PR7800: both virtual and non-virtual bases must be marked as used for VTTs.
...
llvm-svn: 110526
2010-08-07 23:11:44 +00:00
Eric Christopher
f387dbde81
Make -funroll-loops turn on loop unrolling in the optimizer instead
...
of just ignoring it.
llvm-svn: 110525
2010-08-07 23:08:14 +00:00
Benjamin Kramer
d05f31d059
Push location through the MacroUndefined PPCallback and use it to print #undefs in -dD mode. (PR7818)
...
llvm-svn: 110523
2010-08-07 22:27:00 +00:00
Douglas Gregor
f58ff32c16
Integral-to-pointer conversions are not always null -> member pointer
...
conversions. Fixes PR7443.
llvm-svn: 110519
2010-08-07 13:36:37 +00:00
Douglas Gregor
114e55df5b
Fix an Objective-C crasher, PR7839.
...
llvm-svn: 110515
2010-08-07 12:29:18 +00:00
Douglas Gregor
22da8ebafc
Add some more tests for reference binding of Objective-C objects
...
llvm-svn: 110514
2010-08-07 11:56:45 +00:00
Douglas Gregor
8b2d2fe234
Allow reference binding of a reference of Objective-C object type to
...
an lvalue of another, compatible Objective-C object type (e.g., a
subclass). Introduce a new initialization sequence step kind to
describe this binding, along with a new cast kind. Fixes PR7741.
llvm-svn: 110513
2010-08-07 11:51:51 +00:00
John McCall
7cd1d97e33
Inline a special case of EmitAggregateCopy into EmitNullInitialization
...
to avoid the awesome-but-wrong-in-this-case assertion in the canon EAC.
Fixes PR7834.
Also fix a subtle address-space bug in the memset path.
llvm-svn: 110511
2010-08-07 08:21:30 +00:00
John McCall
853700437b
Note that a CXXConstructExpr is zeroing when dumping it.
...
llvm-svn: 110510
2010-08-07 06:38:55 +00:00
John McCall
cf14216509
Store inheritance paths after CastExprs instead of inside them.
...
This takes some trickery since CastExpr has subclasses (and indeed,
is abstract).
Also, smoosh the CastKind into the bitfield from Expr.
Drops two words of storage from Expr in the common case of expressions
which don't need inheritance paths. Avoids a separate allocation and
another word of overhead in cases needing inheritance paths. Also has
the advantage of not leaking memory, since destructors for AST nodes are
never run.
llvm-svn: 110507
2010-08-07 06:22:56 +00:00
Chris Lattner
8139c98cf9
Correct -ftrapv to trap on errors, instead of calling the
...
__overflow_handler entrypoint that David Chisnall made up.
Calling __overflow_handler is not part of the contract of
-ftrapv provided by GCC, and should never have been checked
in in the first place.
According to:
http://permalink.gmane.org/gmane.comp.compilers.clang.devel/8699
David is using this for some of arbitrary precision integer stuff
or something, which is not an appropriate thing to implement on
this.
llvm-svn: 110490
2010-08-07 00:20:46 +00:00
Eli Friedman
964dbda0e9
PR7837: For qualified id's, make sure the decl context is complete if not
...
dependent in ActOnIdExpression. (This issue only shows up with member
operators because an operator is never a type.)
llvm-svn: 110486
2010-08-06 23:41:47 +00:00
Tom Care
925501c548
Removed IdempotentOperationChecker from default analysis and returned back to a flag (-analyzer-check-idempotent-operations)
...
- Added IdempotentOperationChecker to experimental analyses for testing purposes
- Updated test cases to explictly call the checker
llvm-svn: 110482
2010-08-06 22:23:07 +00:00
Ted Kremenek
e08cd386b0
Fix leaks of ExplicitSpecializationInfo objects by allocating them with 'new (ASTContext)' instead of 'new'.
...
llvm-svn: 110474
2010-08-06 21:12:58 +00:00
Ted Kremenek
0bbf24d579
Fix 80 col. violations.
...
llvm-svn: 110473
2010-08-06 21:12:55 +00:00
Ted Kremenek
63dc1f4694
Nest variable declaration into into 'if' condition, thus restricting the scope of the variable and condensing the code.
...
llvm-svn: 110472
2010-08-06 21:12:53 +00:00
Ted Kremenek
b0c67c85db
Use 'GenerateNode()' instead of 'GenerateSink()' when reporting a leak. A leak is not a hard enough bug to stop analyzing a path.
...
llvm-svn: 110471
2010-08-06 21:12:49 +00:00
Eli Friedman
165301d38d
Initialize variable to work around warning; unfortunately, there isn't any
...
way to tell gcc "really, values outside the enum aren't valid".
llvm-svn: 110450
2010-08-06 16:37:05 +00:00
Fariborz Jahanian
f95e358004
Finishing up block variable layout API by supporting
...
union type variables and their nesting inside other
aggregate types.
llvm-svn: 110448
2010-08-06 16:28:55 +00:00
Douglas Gregor
a49ccfeeb2
The pre-increment/pre-decrement grammar in C++ differs from that in C,
...
but we were parsing the C grammar. Handle the C++ grammar
appropriately. Fixes PR7794.
llvm-svn: 110445
2010-08-06 14:50:36 +00:00
Douglas Gregor
229c281d37
Remove some incorrect assertions when deduction template arguments in
...
a template-argument-list. When template template parameters are
involved, we won't already have checked the template-argument-list (it
may not be known yet!). Fixes PR7807.
llvm-svn: 110444
2010-08-06 14:15:26 +00:00
Douglas Gregor
7260905918
Make sure that we diagnose attribute((overloadable)) functions without
...
prototypes. Fixes PR7738.
llvm-svn: 110443
2010-08-06 13:50:58 +00:00
Douglas Gregor
7617cb8440
Define _INTEGRAL_MAX_BITS for the win32 and win64 targets, from Per Lindén!
...
llvm-svn: 110442
2010-08-06 12:37:52 +00:00
Abramo Bagnara
7c5dee4280
Template keyword should not be ignored building a QualifiedTemplateName.
...
llvm-svn: 110441
2010-08-06 12:11:11 +00:00
Douglas Gregor
d26129a98a
Fix the #include search path when reading from stdin, from Jon Simons!
...
Fixes PR4897.
llvm-svn: 110440
2010-08-06 12:06:13 +00:00
Douglas Gregor
2588691a69
Diagnose the use of "inline" on block-scope function declarations in
...
C++, from Andrea Nall!
llvm-svn: 110439
2010-08-06 11:44:10 +00:00