Benjamin Kramer
d8e06611eb
Fix typo.
...
llvm-svn: 83246
2009-10-02 12:19:16 +00:00
Benjamin Kramer
80401b96c2
FileCheckize test case.
...
llvm-svn: 83244
2009-10-02 10:32:51 +00:00
Anders Carlsson
8a744ad8a6
Don't update the struct alignment when adding fields to a packed struct. Fixes PR5118.
...
llvm-svn: 83235
2009-10-02 04:52:12 +00:00
Mike Stump
581b9ad124
More magic pixie dust.
...
llvm-svn: 83232
2009-10-02 02:30:50 +00:00
Mike Stump
440af3d903
Fix up debug information for block pointers a bit more.
...
llvm-svn: 83231
2009-10-02 02:23:37 +00:00
Anders Carlsson
39e3eb12ae
When building constant structs, check if the resulting LLVM struct will be bigger than the record layout size and use a packed struct if that's the case. Fixes PR5108.
...
llvm-svn: 83230
2009-10-02 02:15:20 +00:00
Douglas Gregor
f343fd8929
Make sure to free the explicit template arguments provided for an
...
explicit instantiation. Also, tighten up reference-count checking to
help catch these issues earlier. Fixes PR5069.
llvm-svn: 83225
2009-10-01 23:51:25 +00:00
Steve Naroff
bb69c94798
- Remove Sema::FindMethodInNestedImplementations().
...
- Add ObjCInterfaceDecl::lookupPrivateInstanceMethod().
- Convert clients.
No functionality change - One less method in Sema:-)
llvm-svn: 83224
2009-10-01 23:46:04 +00:00
Douglas Gregor
78b691a458
When the return type of a function is dependent, don't perform any
...
of the flow-control checks for falling off the end of a function,
since the return type may instantiate to void. Similarly, if a
return statement has an expression and the return type of the function
is void, don't complain if the expression is type-dependent, since
that type could instantiate to void.
Fixes PR5071.
llvm-svn: 83222
2009-10-01 23:25:31 +00:00
Mike Stump
017460ab6c
Implement a FIXME. This improves codegen just a tad.
...
llvm-svn: 83221
2009-10-01 22:29:41 +00:00
Fariborz Jahanian
a0f91ad59c
enumerator value of 0 is not a null pointer constant for
...
deciding const of null pointer conversion. Fixes PR5086.
llvm-svn: 83217
2009-10-01 22:10:15 +00:00
Douglas Gregor
369acf9304
CodeGen may see out-of-line declarations of the various special member
...
functions when they are explicitly declared, e.g., via a function
template specialization or explicit template instantiation
declaration. Don't try to synthesize bodies for the special member
functions in this case; rather, check whether we have an implicit
declaration and, if so, synthesize the appropriate function
body. Fixes PR5084.
llvm-svn: 83212
2009-10-01 20:44:19 +00:00
Fariborz Jahanian
b3c44f9ee9
Patch to implement static casting which requires one
...
user-defined type conversion. Fixes PR5040.
llvm-svn: 83211
2009-10-01 20:39:51 +00:00
Fariborz Jahanian
e4b21aba44
Set __EXCEPTIONS by checking on darwin's triple.
...
Patch by Rafael Espindola.
llvm-svn: 83209
2009-10-01 20:30:46 +00:00
Ted Kremenek
5c22e110a1
Fix bad grammar in static analyzer diagnostic. Reported by Robert Purves!
...
llvm-svn: 83204
2009-10-01 17:31:50 +00:00
Rafael Espindola
00a665751d
Move the "needs exception support" logic to clang. This also fixes
...
-fno-exceptions in C++ code. We used to always define __EXCEPTIONS in
C++.
llvm-svn: 83199
2009-10-01 13:33:33 +00:00
Douglas Gregor
e364e7bc2b
Fix a lame regression in IR gen for C++ delete expressions. PR5102
...
llvm-svn: 83195
2009-10-01 05:49:51 +00:00
Steve Naroff
a6c56bb849
Add support for class and protocol references.
...
llvm-svn: 83186
2009-10-01 00:31:07 +00:00
Mike Stump
7d69911a1f
A couple of refinements for laying out debug information for
...
BlockDeclRefDecls.
llvm-svn: 83185
2009-10-01 00:27:30 +00:00
John McCall
4fa5342758
Anonymous namespaces, sema + codegen. A lot of semantics are still broken,
...
apparently because using directives aren't quite working correctly.
llvm-svn: 83184
2009-10-01 00:25:31 +00:00
Douglas Gregor
42909754f6
Improve template argument deduction in the case where the parameter
...
type is a template-id (e.g., basic_ostream<CharT, Traits>) and the
argument type is a class that has a derived class matching the
parameter type. Previously, we were giving up on template argument
deduction too early.
llvm-svn: 83177
2009-09-30 22:13:51 +00:00
Douglas Gregor
66950a32d9
When overload resolution fails for an overloaded operator, show the
...
overload candidates (but not the built-in ones). We still rely on the
underlying built-in semantic analysis to produce the initial
diagnostic, then print the candidates following that diagnostic.
One side advantage of this approach is that we can perform more validation
of C++'s operator overloading with built-in candidates vs. the
semantic analysis for those built-in operators: when there are no
viable candidates, we know to expect an error from the built-in
operator handling code. Otherwise, we are not modeling the built-in
semantics properly within operator overloading. This is checked as:
assert(Result.isInvalid() &&
"C++ binary operator overloading is missing
candidates!");
if (Result.isInvalid())
PrintOverloadCandidates(CandidateSet, /*OnlyViable=*/false);
The assert() catches cases where we're wrong in a +Asserts build. The
"if" makes sure that, if this happens in a production clang
(-Asserts), we still build the proper built-in operator and continue
on our merry way. This is effectively what happened before this
change, but we've added the assert() to catch more flies.
llvm-svn: 83175
2009-09-30 21:46:01 +00:00
Douglas Gregor
3dc959f88b
Tweak CHECK lines to eliminate a failure on i686-apple-darwin10
...
llvm-svn: 83173
2009-09-30 21:39:51 +00:00
Fariborz Jahanian
db82308633
Issue good diagnostics when initializing a refernce type with
...
a bad initializer. Fixes pr4274.
llvm-svn: 83169
2009-09-30 21:23:30 +00:00
Tanya Lattner
fd2dcba7f3
Add an error for function parameters that have a qualified address space since this is not allowed by the embedded c extension spec.
...
llvm-svn: 83165
2009-09-30 20:47:43 +00:00
Chris Lattner
b355495660
fix line #'s
...
llvm-svn: 83162
2009-09-30 20:20:06 +00:00
Chris Lattner
859f1b5b86
add some more popular examples, color code warning: and error: like the command line.
...
llvm-svn: 83161
2009-09-30 20:19:10 +00:00
Chris Lattner
24440102aa
Convert from nonportable grep to filecheck, patch by John Thompson
...
llvm-svn: 83158
2009-09-30 19:55:07 +00:00
Douglas Gregor
49663d2a23
Update C++ status page
...
llvm-svn: 83157
2009-09-30 18:32:57 +00:00
Fariborz Jahanian
ac3005cecc
Note location of operators caused the circularity.
...
llvm-svn: 83153
2009-09-30 17:46:20 +00:00
Fariborz Jahanian
e01e434aef
<rdar://problem/7263113> Make clang produce gcc's objc_assign_StrongCast as a result of type-cast of an ivar in assignment.
...
llvm-svn: 83150
2009-09-30 17:10:29 +00:00
Chris Lattner
e0527b2de1
update copyright.
...
llvm-svn: 83149
2009-09-30 15:59:45 +00:00
Mike Stump
2e722b915c
Improve debugging information for BlockDeclRefExpr. WIP. Given this
...
scheme, we can switch the previous scheme over to using this code
path. There's a bit of simplifications yet to do as well.
llvm-svn: 83138
2009-09-30 02:43:10 +00:00
John McCall
bd0465bbd2
Spare the processors of those poor wretches who have no choice but to write
...
unbounded chains of operator-> delegations.
llvm-svn: 83134
2009-09-30 01:30:54 +00:00
John McCall
c1538c08d7
Detect operator-> chains of arbitrary length. Use a terrible data structure
...
to strike fear into the hearts of CPUs everywhere.
llvm-svn: 83133
2009-09-30 01:01:30 +00:00
Fariborz Jahanian
10ce958550
self-referecing operator '->' member function was causing
...
infinit recursion. This patch fixes it. [13.3.1.2]-p2
llvm-svn: 83124
2009-09-30 00:19:41 +00:00
Douglas Gregor
80a6cc5800
Find operators new/delete in base classes. FIXME -= 2;
...
llvm-svn: 83119
2009-09-30 00:03:47 +00:00
John McCall
a192536ebe
Desugaring optimizations. Add single-step desugaring methods to all
...
concrete types. Use unqualified desugaring for getAs<> and sundry.
Fix a few users to either not desugar or use qualified desugar, as seemed
appropriate. Removed Type's qualified desugar method, as it was easy
to accidentally use instead of QualType's.
llvm-svn: 83116
2009-09-29 23:03:30 +00:00
Douglas Gregor
98496dc3eb
The C++ delete expression strips cv-qualifiers from the pointed-to type. My previous fix eliminated this behavior, so bring it back again.
...
llvm-svn: 83113
2009-09-29 21:38:53 +00:00
Argyrios Kyrtzidis
8da9ce6328
Pull TypeLocVisitor into its own header file.
...
llvm-svn: 83112
2009-09-29 21:27:32 +00:00
Argyrios Kyrtzidis
4361bc1b43
Keep track of type references in DeclReferenceMap.
...
llvm-svn: 83111
2009-09-29 21:26:53 +00:00
Argyrios Kyrtzidis
9c28a3d13c
In ASTVisitor, call the correct base methods.
...
llvm-svn: 83110
2009-09-29 21:26:35 +00:00
Argyrios Kyrtzidis
edd1129c36
Fix Decl class hierarchy.
...
llvm-svn: 83109
2009-09-29 21:26:14 +00:00
Fariborz Jahanian
3a36ab08b7
13.1-p3 Overloadable declarations
...
Parameter declarations that differ only in the presence or absence of const and/or volatile are equivalent.
llvm-svn: 83104
2009-09-29 20:28:06 +00:00
Argyrios Kyrtzidis
f881301d3a
Resolve a source location inside the return type of a functon.
...
llvm-svn: 83101
2009-09-29 19:58:16 +00:00
Argyrios Kyrtzidis
419e38bbe2
When pointing at a type decl reference, ASTLocation is a NamedDeclRef.
...
llvm-svn: 83099
2009-09-29 19:45:58 +00:00
Argyrios Kyrtzidis
05677cae08
Resolve a source location that is inside a type declarator.
...
llvm-svn: 83098
2009-09-29 19:45:41 +00:00
Argyrios Kyrtzidis
0643e333a3
Introduce ObjCInterfaceLoc which provides type source information for ObjC interfaces.
...
llvm-svn: 83097
2009-09-29 19:45:22 +00:00
Argyrios Kyrtzidis
d4bcfaf351
Introduce TypedefLoc::getTypedefDecl().
...
llvm-svn: 83096
2009-09-29 19:44:47 +00:00
Argyrios Kyrtzidis
4cbe85904c
Modify ASTLocation and apart from being a Decl or Stmt, allow it to also be:
...
-A NamedDecl reference
-A TypeLoc
llvm-svn: 83095
2009-09-29 19:44:27 +00:00
Argyrios Kyrtzidis
73360e1bbb
Introduce ObjCProtocolListLoc for keeping source location information for protocol references.
...
llvm-svn: 83094
2009-09-29 19:43:35 +00:00
Argyrios Kyrtzidis
a7a36dfdb6
Introduce ObjCProtocolListType type subclass.
...
This is used only for keeping detailed type source information for protocol references,
it should not participate in the semantics of the type system.
Its protocol list is not canonicalized.
llvm-svn: 83093
2009-09-29 19:42:55 +00:00
Argyrios Kyrtzidis
5ec645b494
Move DeclSpec::setProtocolQualifiers() out of line.
...
llvm-svn: 83092
2009-09-29 19:42:11 +00:00
Argyrios Kyrtzidis
fc1f9e4945
Keep protocol source locations when parsing protocol references.
...
llvm-svn: 83091
2009-09-29 19:41:44 +00:00
Argyrios Kyrtzidis
1632b142b6
Introduce Type::getTypeClassName() that returns the string associated with the TypeClass enum.
...
llvm-svn: 83090
2009-09-29 19:41:13 +00:00
Argyrios Kyrtzidis
402e1dcf6f
Introduce TypeLoc::getSourceRange().
...
llvm-svn: 83089
2009-09-29 19:40:46 +00:00
Argyrios Kyrtzidis
1b7c4ca37d
-Introduce TypeLoc::getOpaqueData()
...
-Make TypeLoc's constructor public.
llvm-svn: 83088
2009-09-29 19:40:20 +00:00
Argyrios Kyrtzidis
81aba1fe53
Add more const-goodness to ASTLocation.
...
llvm-svn: 83087
2009-09-29 19:39:53 +00:00
Daniel Dunbar
d71a03b164
Fix truck sized thinko where Darwin/ARM toolchain didn't look for programs in
...
libexec, *blush*.
llvm-svn: 83086
2009-09-29 18:52:10 +00:00
Daniel Dunbar
88f2300d19
Add a test case demonstrating a situation where we get protocol type checking
...
right for multiple anonymous categories.
llvm-svn: 83085
2009-09-29 18:51:43 +00:00
Douglas Gregor
bb3e12fc0b
Handle C++ delete expressions when the overloaded delete operator is a
...
"usual deallocation function" with two arguments. CodeGen will have to
handle this case specifically, since the value for the second argument
(the size of the allocated object) may have to be computed at run
time.
Fixes the Sema part of PR4782.
llvm-svn: 83080
2009-09-29 18:16:17 +00:00
Fariborz Jahanian
91ae9fd9e8
Fixes a nasty bug which only turned up in 32bit build of clang and
...
had to do with an initialized field when multiple type conversions
are ambiguous but must be treated as user defined conversion for
overload resolution purposes.
llvm-svn: 83079
2009-09-29 17:31:54 +00:00
Ted Kremenek
73583083f7
Update checker build.
...
llvm-svn: 83074
2009-09-29 17:08:03 +00:00
Ted Kremenek
228539f015
Fix: <rdar://problem/7261075> [RegionStore] crash when handling load: '*((unsigned int *)"????")'
...
This issue was originally reported via personal email by Thomas Clement!
llvm-svn: 83069
2009-09-29 16:36:48 +00:00
Douglas Gregor
78f0fa518c
Make sure to flush raw_string_ostream, from John Thompson
...
llvm-svn: 83066
2009-09-29 15:13:39 +00:00
Douglas Gregor
6b603c9ec5
Allow the PYTHON make variable to override the default Python when running Clang tests, from Ken Dyck.
...
llvm-svn: 83065
2009-09-29 14:54:28 +00:00
Douglas Gregor
63b3556c9c
Set GNUMode only for the "gnu" language standard options, from Ken Dyck!
...
llvm-svn: 83064
2009-09-29 14:42:43 +00:00
Douglas Gregor
a49cb4e494
Slightly improve the semantics of extern templates for member functions of class templates
...
llvm-svn: 83063
2009-09-29 14:38:03 +00:00
Ted Kremenek
cc22424c87
Fix really insidious bug in RegionStoreManager::RemoveDeadBindings()
...
identified with a false positive reported by Thomas Clement. This
involved doing another rewrite of
RegionStoreManager::RemoveDeadBindings(), which phrases the entire
problem of scanning for dead regions as a graph exploration problem.
It is more methodic than the previous implementation.
llvm-svn: 83053
2009-09-29 06:35:00 +00:00
Anders Carlsson
025893300c
Remove PR5061 workaround.
...
llvm-svn: 83046
2009-09-29 05:36:21 +00:00
Anders Carlsson
8f4fd60c47
Handle CXXMemberCallExprs that point to a static method. Fixes PR5093.
...
llvm-svn: 83045
2009-09-29 03:54:11 +00:00
Anders Carlsson
33c6a7a12e
Forgot test.
...
llvm-svn: 83044
2009-09-29 03:38:56 +00:00
Ted Kremenek
5daec8a834
Reapply most of r82939, but add a guard that FieldRegions and friends
...
are only specially treated by RegionStore::InvalidateRegion() when
their super region is also invalidated. When this isn't the case,
conjure a new symbol for a FieldRegion. Thanks to Zhongxing Xu and
Daniel Dunbar for pointing out this issue.
llvm-svn: 83043
2009-09-29 03:34:03 +00:00
Douglas Gregor
4d46522df1
Add an input file that includes all standard C++ headers
...
llvm-svn: 83042
2009-09-29 03:26:11 +00:00
Anders Carlsson
9150a2a8c0
Handle CK_BaseToDerivedMemberPointer for member function pointers. Fixes PR5091.
...
llvm-svn: 83041
2009-09-29 03:13:20 +00:00
Ted Kremenek
1cbdf6e850
Revert r82939. We can only not special case FieldRegions when the super region has also been invalidated.
...
llvm-svn: 83040
2009-09-29 03:12:50 +00:00
Anders Carlsson
b05a3e551b
Improve support for member function pointers.
...
llvm-svn: 83039
2009-09-29 02:09:01 +00:00
Anders Carlsson
1fb7ae9e3c
Use a switch statement in VisitCastExpr.
...
llvm-svn: 83038
2009-09-29 01:23:39 +00:00
Anders Carlsson
d30d820dc4
Make hasAggregateLLVMType use positive checks.
...
llvm-svn: 83037
2009-09-29 01:15:29 +00:00
Mike Stump
e7a2b48572
Fix http://llvm.org/PR5090 .
...
llvm-svn: 83035
2009-09-29 00:50:50 +00:00
Ted Kremenek
196d2a0095
Remove test case's dependency on platform headers.
...
llvm-svn: 83030
2009-09-28 23:54:40 +00:00
Fariborz Jahanian
78cfcb56a1
Define and use a helper method to call a type conversion
...
function.
llvm-svn: 83027
2009-09-28 23:23:40 +00:00
Fariborz Jahanian
9021fc7026
Minor API change. No change in functionality.
...
llvm-svn: 83022
2009-09-28 22:03:07 +00:00
Douglas Gregor
40ef7c580b
Add all of the C99 complex builtins prefixed with __builtin_
...
llvm-svn: 83020
2009-09-28 21:45:01 +00:00
Rafael Espindola
26e69ac5cb
Add -Wbuiltin-macro-redefined/-Wno-builtin-macro-redefined.
...
llvm-svn: 83017
2009-09-28 21:24:34 +00:00
Douglas Gregor
56fbc37bbb
Provide a custom diagnostic when code tries to use an unknown builtin
...
llvm-svn: 83014
2009-09-28 21:14:19 +00:00
Fariborz Jahanian
c9c3917a86
Multiple conversions to the same type are ambiguous but for the
...
purpose of overload resolution is to be treated as a uner-defined
conversion.
llvm-svn: 83004
2009-09-28 19:06:58 +00:00
Douglas Gregor
5ad7c54bb9
Make sure that out-of-line function and variable definitions are not
...
pushed into scope. Fixes PR5056.
llvm-svn: 83003
2009-09-28 18:41:37 +00:00
Fariborz Jahanian
774cf79987
Patch for AST representation for the implicit conversion to a function
...
reference/pointer. And a test case for code gen.
llvm-svn: 83000
2009-09-28 18:35:46 +00:00
Douglas Gregor
e185b4dd82
Add __builtin_vsnprintf. Thanks to Anders Johnsen
...
llvm-svn: 82998
2009-09-28 18:08:57 +00:00
Douglas Gregor
c5790dfeb4
Parse a C++ scope specifier followed by a "typename" annotation token as a type name within the declaration specifiers. Fixes PR5061.
...
llvm-svn: 82974
2009-09-28 07:26:33 +00:00
Douglas Gregor
14d1bf4361
Properly match instantiations of member function templates to the function templates from which they were instantiated
...
llvm-svn: 82969
2009-09-28 06:34:35 +00:00
Douglas Gregor
5b0f2a2fbe
Don't allow the same function to enter the overload candidate set
...
multiple times. This requires to be more careful about re-adding
candidates cached from the function template definition.
llvm-svn: 82967
2009-09-28 04:47:19 +00:00
Douglas Gregor
e6688e653f
Determinism is for wimps. <Wimper>
...
llvm-svn: 82962
2009-09-28 03:51:44 +00:00
Douglas Gregor
505ad49a09
Teach Sema::isDeclInScope to handle overload sets constructed from
...
functions that occur in multiple declaration contexts, e.g., because
some were found via using declarations. Now, isDeclInScope will build
a new overload set (when needed) containing only those declarations
that are actually in scope. This eliminates a problem found with
libstdc++'s <iostream>, where the presence of using
In the longer term, I'd like to eliminate Sema::isDeclInScope in favor
of better handling of the RedeclarationOnly flag in the name-lookup
routines. That way, name lookup only returns the entities that matter,
rather than taking the current two-pass approach of producing too many
results and then filtering our the wrong results. It's not efficient,
and I'm sure that we aren't filtering everywhere we should be.
llvm-svn: 82954
2009-09-28 00:47:05 +00:00
Douglas Gregor
a29a3ffd18
Improve handling of friend function templates somewhat
...
llvm-svn: 82950
2009-09-28 00:08:27 +00:00
Ted Kremenek
df5f681525
Specially handle fields, elements, and ivars in
...
RegionStoreManager::InvalidateRegion() by only removing their old
binding, not conjuring a new symbol.
llvm-svn: 82939
2009-09-27 22:39:07 +00:00
Ted Kremenek
67b216a1d9
Add FIXME comment.
...
llvm-svn: 82924
2009-09-27 20:50:04 +00:00
Ted Kremenek
e41b81e9ab
Fix:
...
<rdar://problem/6914474> checker doesn't realize that variable might
have been assigned if a pointer to that variable was passed to another
function via a structure
The problem here was the RegionStoreManager::InvalidateRegion didn't
invalidate the bindings of invalidated regions. This required a
rewrite of this method using a worklist.
As part of this fix, changed ValueManager::getConjuredSymbolVal() to
require a 'void*' SymbolTag argument. This tag is used to
differentiate two different symbols created at the same location.
llvm-svn: 82920
2009-09-27 20:45:21 +00:00
Anders Carlsson
02bca738b4
Mangle dependent name expressions. Fixes PR5063.
...
llvm-svn: 82915
2009-09-27 20:11:34 +00:00
Anders Carlsson
d122de5f32
Use mangleTemplatePrefix when we know that we're mangling a nested template name.
...
llvm-svn: 82912
2009-09-27 19:53:49 +00:00
Anders Carlsson
52d78a518a
CodeGen for try statements. (We just emit the body for now).
...
llvm-svn: 82910
2009-09-27 18:58:34 +00:00
Cedric Venet
67f09df0db
CMake generate VS2008 project and CLang and LLVM compile without problem on VS2008. Remove obsolete remark
...
llvm-svn: 82895
2009-09-27 10:34:36 +00:00
Cedric Venet
bc8d0dec5d
Handle Eli remark on mingw __declspec macro definition
...
llvm-svn: 82894
2009-09-27 10:09:11 +00:00
Anders Carlsson
9bf787ad1f
Look for substitutions when mangling TypenameTypes.
...
llvm-svn: 82885
2009-09-27 01:06:07 +00:00
Anders Carlsson
e00745b285
Better template parameter type mangling.
...
llvm-svn: 82883
2009-09-27 00:38:53 +00:00
Anders Carlsson
2e5935241a
Mangle std::basic_string<char, std::char_traits<char>, std::allocator<char> > as Ss.
...
llvm-svn: 82882
2009-09-27 00:12:57 +00:00
Anders Carlsson
853bb50382
Mangle ::std::basic_string as Sb.
...
llvm-svn: 82881
2009-09-26 23:14:39 +00:00
Anders Carlsson
872ce0dc31
Mangle ::std::allocator as Sa.
...
llvm-svn: 82880
2009-09-26 23:10:05 +00:00
Anders Carlsson
3e83c30c4c
Handle substitutions in mangleTemplatePrefix.
...
llvm-svn: 82879
2009-09-26 22:18:22 +00:00
Anders Carlsson
46f87dcad4
Make Decl::dump const.
...
llvm-svn: 82878
2009-09-26 21:58:53 +00:00
Chris Lattner
a26b471f1d
builtin_trap should be noreturn, this fixes PR5062, patch by
...
Roman Divacky!
llvm-svn: 82876
2009-09-26 21:16:00 +00:00
Douglas Gregor
2208a2912c
Simplify the handling of non-dependent friend class template
...
specializations such as:
friend class std::vector<int>;
by using the same code path as explicit specializations, customized to
reference an existing ClassTemplateSpecializationDecl (or build a new
"undeclared" one).
llvm-svn: 82875
2009-09-26 20:57:03 +00:00
Anders Carlsson
aa9e3c8793
Substitute "::std::" as "St".
...
llvm-svn: 82874
2009-09-26 20:53:44 +00:00
Anders Carlsson
49232b9f42
Don't crash when trying to mangle function templates.
...
llvm-svn: 82872
2009-09-26 20:13:56 +00:00
Anders Carlsson
26e67afd1e
mangleTemplatePrefix and mangleUnscopedTemplateName should take a TemplateDecl.
...
llvm-svn: 82871
2009-09-26 19:45:45 +00:00
Anders Carlsson
677475206c
Use the qualified name for tag types.
...
llvm-svn: 82870
2009-09-26 19:03:24 +00:00
Anders Carlsson
e33eed5c1e
Set alignment on static function level decls and VLAs. Fixes PR5060.
...
llvm-svn: 82868
2009-09-26 18:16:06 +00:00
Ted Kremenek
2f5198b022
Added test case for <rdar://problem/7152418>.
...
llvm-svn: 82866
2009-09-26 17:18:44 +00:00
Anders Carlsson
534b0639db
Address comment from Daniel.
...
llvm-svn: 82865
2009-09-26 16:55:29 +00:00
Dan Gohman
0b3cfab288
Pass the formatted_raw_ostream to createPrintModulePass and
...
createBitcodeWriterPass instead of the underlying raw_ostream. This
avoids trouble with formatted_raw_ostream's behavior of setting the
underlying stream to be unbuffered, which resulted in
clang -emit-llvm -S using unbuffered output.
llvm-svn: 82857
2009-09-26 15:06:14 +00:00
Daniel Dunbar
bb6ac47ea1
Revert "Force triple in test.", this wasn't the problem.
...
llvm-svn: 82855
2009-09-26 07:43:49 +00:00
Ted Kremenek
cdd3be5cc6
Update checker build.
...
llvm-svn: 82854
2009-09-26 07:39:39 +00:00
Daniel Dunbar
a87097a6ac
Add the lib path to LD_LIBRARY_PATH, so finding .so works (more) portably.
...
llvm-svn: 82853
2009-09-26 07:36:09 +00:00
Daniel Dunbar
1b436d6950
Force triple in test.
...
llvm-svn: 82850
2009-09-26 07:06:36 +00:00
Douglas Gregor
9acb690827
Fix name lookup for friend class templates to consider anything in a
...
scope *up to and including* the innermost namespace scope, rather than
just searching in the innermost namespace scope.
llvm-svn: 82849
2009-09-26 07:05:09 +00:00
Douglas Gregor
3dad842b35
Rework the Parse-Sema interaction for friends to better support friend
...
class templates. We now treat friend class templates much more like
normal class templates, except that they still get special name lookup
rules. Fixes PR5057 and eliminates a bunch of spurious diagnostics in
<iostream>.
llvm-svn: 82848
2009-09-26 06:47:28 +00:00
Ted Kremenek
9a4e5663d2
Hoist some branches in AnalysisManager::HandleTranslationUnit so we
...
avoid scanning for an "entry point" FunctionDecl if we (a) have no
translation unit actions and (b) no entry point function has been
specified.
llvm-svn: 82846
2009-09-26 04:15:09 +00:00
Anders Carlsson
0374742326
Use ABIArgInfo::getDirect() for all types that have a pointer representation.
...
llvm-svn: 82845
2009-09-26 03:56:53 +00:00
Douglas Gregor
fae1d71592
Yet another simplifying use of Sema::getMostSpecialized
...
llvm-svn: 82844
2009-09-26 03:56:17 +00:00
Anders Carlsson
296f8dc52f
Mangle record types as decls.
...
llvm-svn: 82843
2009-09-26 03:55:37 +00:00
Ted Kremenek
7226af69cb
Add a "positive" matching test case for attribute 'noreturn' that involves a nested infinite loop.
...
llvm-svn: 82842
2009-09-26 03:54:06 +00:00
Ted Kremenek
9fa2eefa4c
Add two more test cases for attribute 'noreturn'.
...
llvm-svn: 82841
2009-09-26 03:48:56 +00:00
Douglas Gregor
5de279ccab
Use Sema::getMostSpecialized to eliminate a redundant implementation of the most-specialized function template
...
llvm-svn: 82840
2009-09-26 03:41:46 +00:00
Anders Carlsson
9f8e3d1929
Change isTemplate to return the actual template declaration.
...
llvm-svn: 82839
2009-09-26 03:24:57 +00:00
Anders Carlsson
bdaaab4671
Improve mangling of typename types.
...
llvm-svn: 82833
2009-09-26 02:26:02 +00:00
Anders Carlsson
47680d8040
Rename NextOffset to DataSize.
...
llvm-svn: 82832
2009-09-26 01:34:51 +00:00
Anders Carlsson
7f78d85be4
Start at NextOffset when laying out bases as well.
...
llvm-svn: 82831
2009-09-26 01:29:10 +00:00
Daniel Dunbar
73b6b4e1a3
Disable c-index-test on MSVC until someone figures out the real problem.
...
llvm-svn: 82830
2009-09-26 01:21:38 +00:00
Anders Carlsson
a6d95b5a3e
Use NextOffset when laying out a field.
...
llvm-svn: 82828
2009-09-26 01:09:35 +00:00
Anders Carlsson
294616a74c
Don't try to dump invalid decls or forward decls.
...
llvm-svn: 82827
2009-09-26 01:02:04 +00:00
Anders Carlsson
9d1b34ba81
Cast cleanup.
...
llvm-svn: 82826
2009-09-26 00:12:34 +00:00
Douglas Gregor
0e876e0180
Use explicitly-specified template argument lists to help naming
...
explicit template specializations, when available.
llvm-svn: 82824
2009-09-25 23:53:26 +00:00
Steve Naroff
43b118fc2c
Fix cut/paste error resulting in bad column info.
...
llvm-svn: 82810
2009-09-25 22:15:54 +00:00
Steve Naroff
2676089407
Add clang_getDeclSource().
...
llvm-svn: 82807
2009-09-25 21:45:39 +00:00
Douglas Gregor
d90fd526d3
Declarators can now properly represent template-ids, e.g., for
...
template void f<int>(int);
~~~~~~
Previously, we silently dropped the template arguments. With this
change, we now use the template arguments (when available) as the
explicitly-specified template arguments used to aid template argument
deduction for explicit template instantiations.
llvm-svn: 82806
2009-09-25 21:45:23 +00:00
Steve Naroff
63f475a212
Add clang_getDeclLine and clang_getDeclColumn
...
Fix clang_getCursorDecl to do the right thing for expr refs
Fixup test file to accommodate new output (which includes the line/column for the referenced decl)
llvm-svn: 82798
2009-09-25 21:32:34 +00:00
Fariborz Jahanian
49850dfc4e
Refixed pr5050 per Anders comment. Test case enhanced
...
per Doug's comment.
llvm-svn: 82791
2009-09-25 18:59:21 +00:00
Douglas Gregor
450f0084a2
WIP implementation of explicit instantiation of function templates,
...
member functions of class template specializations, and static data
members. The mechanics are (mostly) present, but the semantic analysis
is very weak.
llvm-svn: 82789
2009-09-25 18:43:00 +00:00
Fariborz Jahanian
5aec1b54bc
Fix the AST tree so ir-gen can do the conversion via copy construction.
...
Fixed pr5050.
llvm-svn: 82783
2009-09-25 18:11:25 +00:00
Mike Stump
1dbb8f78a3
Fix 80-col violation.
...
llvm-svn: 82782
2009-09-25 18:11:00 +00:00
Chris Lattner
880d2d5788
pcc supports some c99
...
llvm-svn: 82774
2009-09-25 16:45:10 +00:00
Anders Carlsson
d7d358a65e
Even more work on empty classes.
...
llvm-svn: 82770
2009-09-25 15:39:00 +00:00
Benjamin Kramer
07fec3bbf5
Fix MSVC build by renaming a variable. PR5043
...
llvm-svn: 82762
2009-09-25 11:47:22 +00:00
Douglas Gregor
25a3967ebb
Sigh. Be *really* careful when copying a default function argument during template instantiation
...
llvm-svn: 82761
2009-09-25 07:03:22 +00:00
Douglas Gregor
c103ccd855
Be careful about copying uninstantiated default arguments during template instantiation
...
llvm-svn: 82760
2009-09-25 06:56:31 +00:00
Douglas Gregor
dc880d67f7
Don't look for __builtin_va_list; it isn't present for all targets
...
llvm-svn: 82757
2009-09-25 06:44:41 +00:00
Douglas Gregor
43bc1a7483
CMake build support for libCIndex and c-index-test. The indexing tests
...
are now running properly from within CMake.
llvm-svn: 82755
2009-09-25 06:35:15 +00:00
Ted Kremenek
05e6f5b6e9
Turn on 'RegionStore' as the default store manager both for 'clang --analyze' and 'scan-build'. Leave 'BasicStore' as the default store manager in 'clang-cc'. While there are still known warts with RegionStore, it's ready to be tested by general users.
...
llvm-svn: 82752
2009-09-25 05:55:59 +00:00
Douglas Gregor
9e84d88d27
Hide clang-wpa executable behind a CMake variable so it won't be built by default
...
llvm-svn: 82751
2009-09-25 05:41:21 +00:00
Ted Kremenek
1947a7a338
Update checker build.
...
llvm-svn: 82749
2009-09-25 05:03:45 +00:00
Douglas Gregor
56751b5981
Fix checking for a null pointer constant when the expression itself is
...
value-dependent. Audit (and fixed) all calls to
Expr::isNullPointerConstant() to provide the correct behavior with
value-dependent expressions. Fixes PR5041 and a crash in libstdc++
<locale>.
In the same vein, properly compute value- and type-dependence for
ChooseExpr. Fixes PR4996.
llvm-svn: 82748
2009-09-25 04:25:58 +00:00
John McCall
6cb02c1d7e
Add a reduced test case for the weak ivar infinite recursion.
...
llvm-svn: 82747
2009-09-25 02:18:37 +00:00
Anders Carlsson
e1883100a3
Who would have thought that empty classes were so tricky? Handle cases where an empty virtual base class needs to be moved aside because it conflicts with the first field.
...
llvm-svn: 82746
2009-09-25 01:54:38 +00:00
John McCall
0cf155174e
Fix an infinite loop arising when trying to generate debug information
...
for a ObjC class with an ivar of weak self type.
llvm-svn: 82745
2009-09-25 01:40:47 +00:00
Anders Carlsson
4bf82141e7
Handle array fields that contain empty structs.
...
llvm-svn: 82744
2009-09-25 01:23:32 +00:00
Ted Kremenek
f694f421e1
Fix <rdar://problem/7249327> by allowing silent conversions between signed and unsigned integer values for symbolic values. This is an intermediate solution (i.e. hack) until we support extension/truncation of symbolic integers.
...
llvm-svn: 82737
2009-09-25 00:18:15 +00:00
Anders Carlsson
6f95c705ea
More work on empty classes.
...
llvm-svn: 82736
2009-09-25 00:02:51 +00:00
Fariborz Jahanian
1f9ed58277
Fixed another code gen bug in objc's new write-barrier API.
...
llvm-svn: 82735
2009-09-25 00:00:20 +00:00
Anders Carlsson
6d2b6f49ce
Improve the record layout dumper.
...
llvm-svn: 82733
2009-09-24 23:50:42 +00:00
Douglas Gregor
5013a7e42d
When entering the scope of a declarator, make sure that the scope is
...
complete (or, possibly causing template instantiation).
Test this via some explicit specializations of member functions.
llvm-svn: 82732
2009-09-24 23:39:01 +00:00
John McCall
90d1c2df56
Make it really, really easy to change the alignment of Type (and ExtQuals).
...
llvm-svn: 82730
2009-09-24 23:30:46 +00:00
Douglas Gregor
3a923c2d37
WIP implementation of explicit function template specialization. This
...
first implementation recognizes when a function declaration is an
explicit function template specialization (based on the presence of a
template<> header), performs template argument deduction + ambiguity
resolution to determine which template is being specialized, and hooks
There are many caveats here:
- We completely and totally drop any explicitly-specified template
arguments on the floor
- We don't diagnose any of the extra semantic things that we should
diagnose.
- I haven't looked to see that we're getting the right linkage for
explicit specializations
On a happy note, this silences a bunch of errors that show up in
libstdc++'s <iostream>, although Clang still can't get through the
entire header.
llvm-svn: 82728
2009-09-24 23:14:47 +00:00
Douglas Gregor
9fb4bf4d57
Clean up the CodeCompletion testsuite's use of FileCheck
...
llvm-svn: 82726
2009-09-24 22:57:42 +00:00
Mike Stump
d2a3e61798
Fix 80-col violation.
...
llvm-svn: 82725
2009-09-24 22:31:14 +00:00
Fariborz Jahanian
7a95d72b10
Patch fixes a code gen. bug in generation of objc_assign_ivar
...
(objc GC's API).
llvm-svn: 82724
2009-09-24 22:25:38 +00:00
John McCall
86a69495a3
Update the PTH performance "script".
...
llvm-svn: 82718
2009-09-24 22:03:45 +00:00
Steve Naroff
a7753c492e
Add test for C-based indexing API, using FileCheck utility.
...
llvm-svn: 82706
2009-09-24 20:03:06 +00:00
John McCall
8ccfcb51ee
Refactor the representation of qualifiers to bring ExtQualType out of the
...
Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our
use of qualifiers and fix a few places that weren't dealing with qualifiers
quite right; many more remain.
llvm-svn: 82705
2009-09-24 19:53:00 +00:00
Chris Lattner
6d98ede7e8
wpa is an experiment, don't build it by default, it adds to build times due to everything it links in.
...
llvm-svn: 82704
2009-09-24 19:45:12 +00:00
Anders Carlsson
d934010557
Add a -dump-record-layouts argument to clang-cc.
...
llvm-svn: 82703
2009-09-24 18:54:49 +00:00
Ted Kremenek
0868eea3f0
When building CFGs, no longer reverse the statements in the CFGBlock. Instead
...
have the iterators and operator[] handle the traversal of statements, as they
are stored in reverse order. Tests show this has no real performance impact, but
it does simply the CFG construction logic and will make it slightly easier to
change the allocation strategy for CFGBlocks (as we have fewer copies).
llvm-svn: 82702
2009-09-24 18:45:41 +00:00
Daniel Dunbar
a5840dbcb5
cmake: Run tests with 'verbose' enabled by default, so that the failure is
...
visible in the log.
llvm-svn: 82688
2009-09-24 07:18:36 +00:00
Daniel Dunbar
c437eb831b
We no longer need anything from the llvm/test/Scripts dir.
...
llvm-svn: 82687
2009-09-24 06:31:08 +00:00
Ted Kremenek
1b40e5978f
Fix crash in RegionStoreManager::Bind() by using 'getAs<PointerType>()' instead of 'cast<PointerType>()' (to handle pointer typedefs).
...
llvm-svn: 82686
2009-09-24 06:24:32 +00:00
Anders Carlsson
bb66bc8e84
More improvements with laying out empty bases.
...
llvm-svn: 82682
2009-09-24 05:21:31 +00:00
Daniel Dunbar
b3b1e53d33
Darwin/x86-32: Enumerated types and block pointer types in structures were not
...
handled correctly.
- <rdar://problem/7247671> Function arguments incorrect when function returns a
struct on i386 w/ llvm-g++ and clang
llvm-svn: 82681
2009-09-24 05:12:36 +00:00
Ted Kremenek
267e45adab
Fix: <rdar://problem/7249340> [RegionStore] model stores to symbolic parameter regions
...
The issue was a discrepancy between how RegionStoreManager::Bind() and
RegionStoreManager::Retrieve() derived the "key" for the first element
of a symbolic region.
llvm-svn: 82680
2009-09-24 04:11:44 +00:00
Anders Carlsson
f24b18fb06
More work on empty classes.
...
llvm-svn: 82679
2009-09-24 03:22:10 +00:00
Anders Carlsson
6522b05db7
Scaffolding for supporting empty bases/fields.
...
llvm-svn: 82678
2009-09-24 03:13:30 +00:00
Ted Kremenek
d9120d3575
Shorten the static analyzer diagnostic for 'use of garbage value'.
...
llvm-svn: 82672
2009-09-24 00:44:26 +00:00
Fariborz Jahanian
20327b0422
Use Doug's DeclLoc to pinpoint location of the declaration
...
in a reference initialization diagnostic.
llvm-svn: 82671
2009-09-24 00:42:43 +00:00
Douglas Gregor
c809cc2efa
Improve diagnostic location information when checking the initialization of a reference
...
llvm-svn: 82666
2009-09-23 23:04:10 +00:00
Douglas Gregor
96ab942a69
Make C++ temporary-related expressions provide proper source-range information.
...
llvm-svn: 82665
2009-09-23 22:51:26 +00:00
Fariborz Jahanian
9ce90d13e3
patch to ir-gen conversion function call used in
...
initializing a reference class.
llvm-svn: 82664
2009-09-23 22:34:00 +00:00
Douglas Gregor
e412a5a8f7
For code completion, note that injected-class-names found as part of
...
lookup in a member access expression always start a
nested-name-specifier. Additionally, rank names that start
nested-name-specifiers after other names.
llvm-svn: 82663
2009-09-23 22:26:46 +00:00
Fariborz Jahanian
71130ca141
Remove the FIXME as I said.
...
llvm-svn: 82650
2009-09-23 20:56:34 +00:00
Fariborz Jahanian
af0262dccf
This patch addresses a few issues related to 8.5.3 [dcl.init.ref]
...
It uses a recent API to find inherited conversion functions to do
the initializer to reference lvalue conversion (and removes a FIXME).
It issues the ambiguity diagnostics when multiple conversions are found.
WIP.
llvm-svn: 82649
2009-09-23 20:55:32 +00:00
Steve Naroff
f99203abd0
Some minor cleanups...
...
llvm-svn: 82646
2009-09-23 20:00:53 +00:00
Anders Carlsson
649a17e861
Handle namespace aliases.
...
llvm-svn: 82644
2009-09-23 19:19:16 +00:00
Anders Carlsson
f771681e63
Emit new[] cookie when needed.
...
llvm-svn: 82642
2009-09-23 18:59:48 +00:00
Steve Naroff
76b8f13fcb
More work to enable more exhaustive testing of the indexing API.
...
Next step: Add actual some test cases:-)
llvm-svn: 82636
2009-09-23 17:52:52 +00:00
Anders Carlsson
b4bd0666d2
Basic support for new[].
...
llvm-svn: 82628
2009-09-23 16:07:23 +00:00
Douglas Gregor
2a920014d3
When code-completion after a "," is building an overload set, note
...
that there is one more argument (the one following the comma) and make
the candidate non-viable if the function cannot accept any argument in
that position.
llvm-svn: 82625
2009-09-23 14:56:09 +00:00
Torok Edwin
9c9630aa88
The test/ directory needs to be created always when building objdir != srcdir,
...
because the toplevel 'make check-all' needs the rule for test/lit.site.cfg,
and for that test/ must exist.
llvm-svn: 82624
2009-09-23 14:23:05 +00:00
Gabor Greif
a8f9374661
fix typo in file name
...
llvm-svn: 82623
2009-09-23 13:15:04 +00:00
Daniel Dunbar
3e7a723fef
Factor Windows target into VS, MinGW and Cygwin variants.
...
- Patch by John Thompson!
llvm-svn: 82621
2009-09-23 07:31:35 +00:00
Chris Lattner
d545ad1301
implement support for __builtin_eh_return_data_regno on x86-32 and x86-64.
...
This implements PR5034 and rdar://6836445.
llvm-svn: 82614
2009-09-23 06:06:36 +00:00
Chris Lattner
f47afd707e
return a bool value as a bool
...
llvm-svn: 82613
2009-09-23 05:39:46 +00:00
Anders Carlsson
d49844b715
Add a new variant of EmitCXXAggrConstructorCall that takes a Value that holds the number of elements to construct, to be used when implementing new[].
...
llvm-svn: 82602
2009-09-23 02:45:36 +00:00
Ted Kremenek
1624a4784a
Fix PR 4988 by removing an invalid assertion (a function can be referenced in
...
GRExprEngine::VisitDeclRefExpr without 'asLValue' being true).
llvm-svn: 82598
2009-09-23 01:30:01 +00:00
Fariborz Jahanian
21ccf06352
Produce detailed diagnostics when overload
...
resolution failed to select a candidate due to
ambiguity in type conversion function selection.
llvm-svn: 82596
2009-09-23 00:58:07 +00:00
Anders Carlsson
aa01b91f9b
Fix indentation in xcode project.
...
llvm-svn: 82595
2009-09-23 00:37:50 +00:00
Anders Carlsson
8ab20bb144
Cast the array size expr to a size_t
...
llvm-svn: 82594
2009-09-23 00:37:25 +00:00
Douglas Gregor
f0f51985a1
Print the results of code-completion for overloading by displaying the
...
signature of the function with the current parameter highlighted as a
placeholder.
llvm-svn: 82593
2009-09-23 00:34:09 +00:00
Douglas Gregor
05f477c177
Separate the code-completion results for call completion from the
...
results for other, textual completion. For call completion, we now
produce enough information to show the function call argument that we
are currently on.
llvm-svn: 82592
2009-09-23 00:16:58 +00:00
Douglas Gregor
64b12b5ee7
Make sure we don't try to add code-completion results without an
...
active shadow map.
llvm-svn: 82588
2009-09-22 23:31:26 +00:00
Douglas Gregor
2b3ee156fc
When code-completion finds a declaration only because it is usable as
...
the start of a nested-name-specifier, add the "::" after the
nested-name-specifier to the code-completion string.
llvm-svn: 82587
2009-09-22 23:22:24 +00:00
Douglas Gregor
5bf52697b0
Tweak the code-completion results ranking and formation, so that
...
members found in base classes have the same ranking as members found
in derived classes. However, we will introduce an informative note for
members found in base classes, showing (as a nested-name-specifier)
the qualification to name the base class, to make it clear which
members are from bases.
llvm-svn: 82586
2009-09-22 23:15:58 +00:00
Anders Carlsson
cc52f65500
Move codegen of new and delete to CGCXXExpr.cpp
...
llvm-svn: 82585
2009-09-22 22:53:17 +00:00
Mike Stump
17abe2a620
Remove now fixed FIXME.
...
llvm-svn: 82584
2009-09-22 22:31:44 +00:00
Daniel Dunbar
5564ba743f
Push "clang-is-production" logic up to tools/driver, and make it hittable by
...
defining the CLANG_IS_PRODUCTION Makefile variable.
llvm-svn: 82583
2009-09-22 22:31:13 +00:00
Daniel Dunbar
81fff1c358
Spell clang-cc correctly.
...
llvm-svn: 82582
2009-09-22 22:30:59 +00:00
Douglas Gregor
292b68699d
Add getDeclaration()/getKind() accessors to CodeCompleteConsumer::Result
...
llvm-svn: 82581
2009-09-22 22:11:38 +00:00
Anders Carlsson
8c978b4fc2
No need to null check implicit lvalue cast exprs.
...
llvm-svn: 82580
2009-09-22 22:00:46 +00:00
Anders Carlsson
8fef09cd80
When doing a derived-to-base class and the class offset is 0 we can just do a simple bitcast.
...
llvm-svn: 82579
2009-09-22 21:58:22 +00:00
Daniel Dunbar
03184798c3
Reconcile Clang/ARM target data string with llvm-gcc (module eabi weirdness).
...
llvm-svn: 82578
2009-09-22 21:44:58 +00:00
Douglas Gregor
ba4490399b
Teach code-completion to introduce a ", ..." placeholder for variadic functions
...
llvm-svn: 82577
2009-09-22 21:42:17 +00:00
Douglas Gregor
9bfc2e50a7
In C++, a variadic function does not need an ellipsis prior to the comma. Parse it in both C and C++, but diagnose it as an error in C with a fix-it hint to add the comma.
...
llvm-svn: 82576
2009-09-22 21:41:40 +00:00
Ted Kremenek
3003001a86
Fix: <rdar://problem/7242006> [RegionStore] compound literal assignment with floats not honored
...
llvm-svn: 82575
2009-09-22 21:19:14 +00:00
Douglas Gregor
ea9b03e6e2
Replace the -code-completion-dump option with
...
-code-completion-at=filename:line:column
which performs code completion at the specified location by truncating
the file at that position and enabling code completion. This approach
makes it possible to run multiple tests from a single test file, and
gives a more natural command-line interface.
llvm-svn: 82571
2009-09-22 21:11:38 +00:00
Anders Carlsson
1d3b6f62df
CXXMethodDecls should always be mangled, even if they are inside an extern "C" block. Fixes PR5017.
...
llvm-svn: 82567
2009-09-22 20:33:31 +00:00
Fariborz Jahanian
f0647a5fbc
Code refactoring and cleanup.
...
llvm-svn: 82566
2009-09-22 20:24:30 +00:00
Fariborz Jahanian
0b51c729c9
Issue good ambiguity diagnostic when convesion fails.
...
llvm-svn: 82565
2009-09-22 19:53:15 +00:00
Steve Naroff
66af1aecdb
- Implement support for various types of "refs" (initially to help test clang_getCursor()).
...
- Add missing prototypes for dispose functions.
llvm-svn: 82564
2009-09-22 19:25:29 +00:00
Anders Carlsson
55640546e4
If we already set a primary base, don't set it to the first nearly empty base class.
...
llvm-svn: 82563
2009-09-22 19:16:59 +00:00
Anders Carlsson
3dc237390f
Fix speling error.
...
llvm-svn: 82562
2009-09-22 19:15:56 +00:00
Anders Carlsson
96cff1fc10
Explicitly initialize the PrimaryBase and PrimaryBaseWasVirtual members.
...
llvm-svn: 82560
2009-09-22 18:21:58 +00:00
Mike Stump
865715442e
Yes.
...
llvm-svn: 82559
2009-09-22 17:38:02 +00:00
Anders Carlsson
e7ceb85b0d
(With Doug's help) fix a crash in the code completion code that lead to a test failure.
...
llvm-svn: 82558
2009-09-22 17:29:51 +00:00
Anders Carlsson
fc51cc968b
Don't assert that linkage decls are always C++, it's not true. Fixes PR5019.
...
llvm-svn: 82557
2009-09-22 17:23:30 +00:00
Fariborz Jahanian
e983d17570
Fix a regression in accessing class getter using the dot-syntax
...
notation. There is still an issue accessing field of a 'Class''s isa
in legacy code using dot field access notation (as noted in the test case)
but unrelated to this patch.
llvm-svn: 82555
2009-09-22 16:48:37 +00:00
Douglas Gregor
cabea40ea3
Implement code completion within a function call, triggered after the
...
opening parentheses and after each comma. We gather the set of visible
overloaded functions, perform "partial" overloading based on the set
of arguments that we have thus far, and return the still-viable
results sorted by the likelihood that they will be the best candidate.
Most of the changes in this patch are a refactoring of the overloading
routines for a function call, since we needed to separate out the
notion of building an overload set (common to code-completion and
normal semantic analysis) and then what to do with that overload
set. As part of this change, I've pushed explicit template arguments
into a few more subroutines.
There is still much more work to do in this area. Function templates
won't be handled well (unless we happen to deduce all of the template
arguments before we hit the completion point), nor will overloaded
function-call operators or calls to member functions.
llvm-svn: 82549
2009-09-22 15:41:20 +00:00
Daniel Dunbar
e22adaebf5
Spell function pointer correctly.
...
llvm-svn: 82543
2009-09-22 10:19:04 +00:00
Daniel Dunbar
79327b6efe
Always execute tests internally on Windows.
...
llvm-svn: 82542
2009-09-22 10:08:03 +00:00
Daniel Dunbar
3967fca364
CMake: Add a clang-c++tests target for running the experimental C++ header
...
-fsyntax-only'ing tests.
llvm-svn: 82541
2009-09-22 10:07:55 +00:00
Daniel Dunbar
95d5a1d240
Add safe part of previous (reverted) commit, necessary to update to LLVM API change.
...
llvm-svn: 82540
2009-09-22 10:06:21 +00:00
Daniel Dunbar
b879c3c125
Revert "Switch a few clients over to StringLiteral::getString.", this is breaking some projects, but I don't have a test case yet.
...
llvm-svn: 82539
2009-09-22 10:03:52 +00:00
Daniel Dunbar
b45012dcde
Update PCH serialization of FunctionDecl flags.
...
llvm-svn: 82526
2009-09-22 05:38:14 +00:00
Daniel Dunbar
2d925ebd0a
Allow PCH files to be read from stdin.
...
llvm-svn: 82525
2009-09-22 05:38:01 +00:00