- Oct 15, 2010
-
-
Devang Patel authored
Use root non-virtual primary base class, not just immediate primary base class, for AT_containing_type. This is tested by virtfunc.exp in gdb testsuite. llvm-svn: 116535
-
Dan Gohman authored
to CodeGenOption flags. llvm-svn: 116530
-
John McCall authored
llvm-svn: 116529
-
Douglas Gregor authored
identifiers to determine good typo-correction candidates. Once we've identified those candidates, we perform name lookup on each of them and the consider the results. This optimization makes typo correction > 2x faster on a benchmark example using a single typo (NSstring) in a tiny file that includes Cocoa.h from a precompiled header, since we are deserializing far less information now during typo correction. There is a semantic change here, which is interesting. The presence of a similarly-named entity that is not visible can now affect typo correction. This is both good (you won't get weird corrections if the thing you wanted isn't in scope) and bad (you won't get good corrections if there is a similarly-named-but-completely-unrelated thing). Time will tell whether it was a good choice or not. llvm-svn: 116528
-
Douglas Gregor authored
llvm-svn: 116527
-
- Oct 14, 2010
-
-
John McCall authored
llvm-svn: 116524
-
Fariborz Jahanian authored
llvm-svn: 116519
-
Douglas Gregor authored
solely based on the names it sees, rather than actual declarations it gets. In essence, we determine the set of names that are "close enough" to the typo'd name. Then, we perform name lookup for each of those names, filtering out those that aren't actually visible, and typo-correct from the remaining results. Overall, there isn't much of a change in the behavior of typo correction here. The only test-suite change comes from the fact that we make good on our promise to require that the user type 3 characters for each 1 character corrected. The real intent behind this change is to set the stage for an optimization to typo correction (so that we don't need to deserialize all declarations in a translation unit) and future work in finding missing qualification ("'vector' isn't in scope; did you mean 'std::vector'?). Plus, the code is cleaner this way. llvm-svn: 116511
-
Argyrios Kyrtzidis authored
Store in PCH the key function of C++ class to avoid deserializing the complete declaration context in order to compute it. Progress for rdar://7260160. llvm-svn: 116508
-
Argyrios Kyrtzidis authored
instead of deserializing the complete declaration context of the record. Iterating over the fields of a record is very common (e.g to determine the layout), unfortunately we needlessly deserialize every declaration that the declaration context of the record contains; this can be bad for large C++ classes that contain a lot of methods. Fix this by allow deserialization of just the fields when we want to iterate over them. Progress for rdar://7260160. llvm-svn: 116507
-
Argyrios Kyrtzidis authored
llvm-svn: 116506
-
Argyrios Kyrtzidis authored
and emits an error if a declaration with this name is deserialized from PCH. This is for testing, to make sure that we don't deserialize stuff needlessly. llvm-svn: 116505
-
Argyrios Kyrtzidis authored
Don't add the injected class name to the redeclarations chain; the chain should contain actual redeclarations, not implicits. As a bonus, now we don't deserialize it unless we need it. llvm-svn: 116504
-
Argyrios Kyrtzidis authored
Introduce command line option -dump-deserialized-decls which is used to print the PCH decls that got deserialized, for testing purposes. llvm-svn: 116503
-
Fariborz Jahanian authored
'super' as receiver of property or a setter/getter methods. //rdar: //8525788 llvm-svn: 116483
-
Anton Yartsev authored
llvm-svn: 116478
-
Zhongxing Xu authored
llvm-svn: 116473
-
John McCall authored
ObjCObjectType into Type. llvm-svn: 116472
-
John McCall authored
llvm-svn: 116470
-
John McCall authored
not a decl. llvm-svn: 116469
-
John McCall authored
llvm-svn: 116468
-
Chris Lattner authored
by Martin Vejnar! llvm-svn: 116460
-
Chris Lattner authored
into APInt. llvm-svn: 116453
-
Douglas Gregor authored
in a base class. Fixes PR8168. llvm-svn: 116448
-
Douglas Gregor authored
members. Provide a hard error when the qualification doesn't match the current class type, or a warning + Fix-it if it does match the current class type. Fixes PR8159. llvm-svn: 116445
-
- Oct 13, 2010
-
-
Douglas Gregor authored
llvm-svn: 116436
-
Douglas Gregor authored
that the class type into which the pointer points be complete, even though the standard requires it. GCC/EDG do not require a complete type here, so we're calling this a problem with the standard. Fixes PR8328. llvm-svn: 116429
-
Douglas Gregor authored
llvm-svn: 116422
-
Douglas Gregor authored
unnamed or local types within that type. This bit is cached along with the linkage of a type, so that it can be recomputed (e.g., when we see that a typedef has given a name to an anonymous declaration). Use this bit when checking C++03 [temp.arg.type]p2, so that we don't walk template argument types repeatedly. llvm-svn: 116413
-
Douglas Gregor authored
SFINAE context, where we weren't getting the right diagnostic argument count. I blame DiagnosticBuilder's weirdness. Fixes PR8372. llvm-svn: 116411
-
Douglas Gregor authored
rather than walking the type's structure every time we request this information. Performance optimization; no functionality change. llvm-svn: 116409
-
Fariborz Jahanian authored
llvm-svn: 116408
-
John McCall authored
declaration, because we'll need it later. Hopefully fixed self-host. llvm-svn: 116399
-
John McCall authored
Fixes a crash and diagnoses the error condition of an unqualified friend which doesn't resolve to something. I'm still not certain how this is useful. llvm-svn: 116393
-
Argyrios Kyrtzidis authored
Embrace C++ ABI 5.2.6 and consider that template instantiations don't have key functions (same as GCC). llvm-svn: 116391
-
Douglas Gregor authored
actually walk the template argument type to find any unnamed/local types within it. Fixes PR6784. llvm-svn: 116382
-
Douglas Gregor authored
that are suppressed during template argument deduction. This change queues diagnostics computed during template argument deduction. Then, if the resulting function template specialization or partial specialization is chosen by overload resolution or partial ordering (respectively), we will emit the queued diagnostics at that point. This addresses most of PR6784. However, the check for unnamed/local template arguments (which existed before this change) is still only skin-deep, and needs to be extended to look deeper into types. It must be improved to finish PR6784. llvm-svn: 116373
-
Devang Patel authored
This is tested by anon-union.exp. llvm-svn: 116372
-
Devang Patel authored
This is tested by anon-union.exp in gdb testsuite. llvm-svn: 116371
-
John McCall authored
of templated-scope friends by marking them invalid and white-listing all accesses until such time as we implement them. Fixes a crash, this time without a broken test case. llvm-svn: 116364
-