|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 104800 | 
| | 
| 
| 
| | llvm-svn: 104795 | 
| | 
| 
| 
| | llvm-svn: 104169 | 
| | 
| 
| 
| | llvm-svn: 104135 | 
| | 
| 
| 
| 
| 
| | entirely sure what this does, to be honest.
llvm-svn: 103895 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | ObjCObjectType, which is basically just a pair of
  one of {primitive-id, primitive-Class, user-defined @class}
with
  a list of protocols.
An ObjCObjectPointerType is therefore just a pointer which always points to
one of these types (possibly sugared).  ObjCInterfaceType is now just a kind
of ObjCObjectType which happens to not carry any protocols.
Alter a rather large number of use sites to use ObjCObjectType instead of
ObjCInterfaceType.  Store an ObjCInterfaceType as a pointer on the decl rather
than hashing them in a FoldingSet.  Remove some number of methods that are no
longer used, at least after this patch.
By simplifying ObjCObjectPointerType, we are now able to easily remove and apply
pointers to Objective-C types, which is crucial for a certain kind of ObjC++
metaprogramming common in WebKit.
llvm-svn: 103870 | 
| | 
| 
| 
| 
| 
| | types.", it is breaking Clang bootstrap.
llvm-svn: 103775 | 
| | 
| 
| 
| | llvm-svn: 103770 | 
| | 
| 
| 
| | llvm-svn: 103517 | 
| | 
| 
| 
| 
| 
| | CXXExprWithTemporaries.
llvm-svn: 103387 | 
| | 
| 
| 
| 
| 
| | Andrew Sutton!
llvm-svn: 103301 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | of a class template or class template partial specialization.  That is to
say, in
  template <class T> class A { ... };
or
  template <class T> class B<const T*> { ... };
make 'A<T>' and 'B<const T*>' sugar for the corresponding InjectedClassNameType
when written inside the appropriate context.  This allows us to track the
current instantiation appropriately even inside AST routines.  It also allows
us to compute a DeclContext for a type much more efficiently, at some extra
cost every time we write a template specialization (which can be optimized,
but I've left it simple in this patch).
llvm-svn: 102407 | 
| | 
| 
| 
| 
| 
| | NeXt's -fno-constant-cfstrings - wip.
llvm-svn: 102189 | 
| | 
| 
| 
| 
| 
| | in pch.
llvm-svn: 102130 | 
| | 
| 
| 
| 
| 
| 
| 
| | into ContentCache::getBuffer.  This allows it to produce 
diagnostics on the broken #include line instead of without a 
location.
llvm-svn: 101939 | 
| | 
| 
| 
| 
| 
| 
| 
| | implemented precisely the same as GCC, but the distinction GCC makes isn't
useful to represent. This allows parsing code which uses GCC-specific keywords
('asm', etc.) without parsing in a fully GNU mode.
llvm-svn: 101667 | 
| | 
| 
| 
| 
| 
| | refactoring work in this area.
llvm-svn: 100019 | 
| | 
| 
| 
| 
| 
| | Fixes PR3782.
llvm-svn: 99940 | 
| | 
| 
| 
| 
| 
| 
| 
| | This introduces FunctionType::ExtInfo to hold the calling convention and the
noreturn attribute. The next patch will extend it to include the regparm
attribute and fix the bug.
llvm-svn: 99920 | 
| | 
| 
| 
| 
| 
| 
| | entry in a precompiled header, so that we can detect modified files
even when we miss in the stat cache.
llvm-svn: 99149 | 
| | 
| 
| 
| 
| 
| 
| 
| | ranges as part of the ASTContext. This code is not and was never used,
but contributes ~250k to the size of the Cocoa.h precompiled
header.
llvm-svn: 99007 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | record (which includes all macro instantiations and definitions). As
with all lay deserialization, this introduces a new external source
(here, an external preprocessing record source) that loads all of the
preprocessed entities prior to iterating over the entities.
The preprocessing record is an optional part of the precompiled header
that is disabled by default (enabled with
-detailed-preprocessing-record). When the preprocessor given to the
PCH writer has a preprocessing record, that record is written into the
PCH file. When the PCH reader is given a PCH file that contains a
preprocessing record, it will be lazily loaded (which, effectively,
implicitly adds -detailed-preprocessing-record). This is the first
case where we have sections of the precompiled header that are
added/removed based on a compilation flag, which is
unfortunate. However, this data consumes ~550k in the PCH file for
Cocoa.h (out of ~9.9MB), and there is a non-trivial cost to gathering
this detailed preprocessing information, so it's too expensive to turn
on by default. In the future, we should investigate a better encoding
of this information.
llvm-svn: 99002 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | presence or absence of header map arguments when using the precompiled
header would cause Clang to get confused about which headers had
already been included/imported, along with their controlling
macros. The fundamental problem is that the serialization of the
header search information was relying on the UIDs of FileEntry objects
at PCH generation time and PCH load time to be equivalent, which
effectively means that we had to probe the same files in the same
order. Differing header map arguments caused an extra FileEntry
lookup, but it's easy to imagine other minor command-line arguments
triggering this problem.
Header-search information is now encoded along with the
source-location entry for a file, so that we register information
about a file's properties as a header at the same time we create the
FileEntry for that file.
Fixes <rdar://problem/7743243>.
llvm-svn: 98636 | 
| | 
| 
| 
| 
| 
| | simplifying the SourceManager interfaces somewhat.
llvm-svn: 98598 | 
| | 
| 
| 
| | llvm-svn: 98473 | 
| | 
| 
| 
| | llvm-svn: 98472 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | injected class name of a class template or class template partial specialization.
This is a non-canonical type;  the canonical type is still a template 
specialization type.  This becomes the TypeForDecl of the pattern declaration,
which cleans up some amount of code (and complicates some other parts, but
whatever).
Fixes PR6326 and probably a few others, primarily by re-establishing a few
invariants about TypeLoc sizes.     
llvm-svn: 98134 | 
| | 
| 
| 
| 
| 
| | llvm-gcc does, but are more strict on what uses of weakref we accept.
llvm-svn: 96992 | 
| | 
| 
| 
| | llvm-svn: 96536 | 
| | 
| 
| 
| 
| 
| 
| | match 'ns_returns_retained' and 'cf_returns_retained' respectively.  These
are not yet hooked up to the static analyzer.
llvm-svn: 96535 | 
| | 
| 
| 
| | llvm-svn: 96447 | 
| | 
| 
| 
| | llvm-svn: 95940 | 
| | 
| 
| 
| | llvm-svn: 95785 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | This is a non-fragile-abi feature only. Since it
breaks existing code, it is currently placed under
-fobjc-nonfragile-abi2 option for test purposes only
until further notice. WIP.
llvm-svn: 95685 | 
| | 
| 
| 
| | llvm-svn: 95515 | 
| | 
| 
| 
| | llvm-svn: 95514 | 
| | 
| 
| 
| | llvm-svn: 95513 | 
| | 
| 
| 
| | llvm-svn: 95335 | 
| | 
| 
| 
| 
| 
| | logic for when a variable declaration is a (possibly tentativ) definition. Add a few functions building on this, and shift C tentative definition handling over to this new functionality. This shift also kills the Sema::TentativeDefinitions map and instead simply stores all declarations in the renamed list. The correct handling for multiple tentative definitions is instead shifted to the final walk of the list.
llvm-svn: 94968 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | have it return a StringRef instead of an integer (to be more VCS
    agnostic).
(2) Add getClangFullRepositoryVersion(), which contains an
    amalgamation of the repository name and the revision.
(3) Change PCH to only emit the string returned by
    getClangFullRepositoryVersion() instead of also emitting the value
    of getClangSubversionRevision() (which has been removed).  This is
    functionally equivalent.
More cleanup to version string generation pending...
llvm-svn: 94231 | 
| | 
| 
| 
| | llvm-svn: 94214 | 
| | 
| 
| 
| 
| 
| | return a StringRef.
llvm-svn: 94213 | 
| | 
| 
| 
| | llvm-svn: 93966 | 
| | 
| 
| 
| 
| 
| | Zaffanella (with a couple of my tweaks).
llvm-svn: 93733 | 
| | 
| 
| 
| | llvm-svn: 93726 | 
| | 
| 
| 
| 
| 
| | Patch by Enea Zaffanella.
llvm-svn: 93344 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | 1. Add helper class for sema checks for target attributes
 2. Add helper class for codegen of target attributes
As a proof-of-concept - implement msp430's 'interrupt' attribute.
llvm-svn: 93118 | 
| | 
| 
| 
| 
| 
| 
| 
| | definitions from a precompiled header. This ensures that
code-completion with macro names behaves the same with or without
precompiled headers.
llvm-svn: 92497 | 
| | 
| 
| 
| | llvm-svn: 92246 | 
| | 
| 
| 
| | llvm-svn: 91911 |