Chris Lattner
445fcabff7
Alternate address spaces work:
...
rename QualType::getQualifiers to getCVRQualifiers.
Add some fixme's and clean up some code relevant to qualifiers.
Change ASQualType to contain a Type* instead of a QualType.
Any CVR qualifiers should be on the outer qual type.
llvm-svn: 47398
2008-02-20 20:55:12 +00:00
Anders Carlsson
6b5b42be41
More bitfield improvements.
...
llvm-svn: 47260
2008-02-18 07:13:09 +00:00
Anders Carlsson
6e3ace5205
Better handling of the aligned attribute.
...
llvm-svn: 47216
2008-02-16 19:51:27 +00:00
Anders Carlsson
3ea23a45d9
Make sizeof and __alignof work correctly with packed structs.
...
llvm-svn: 47202
2008-02-16 01:20:23 +00:00
Eli Friedman
bd258284e0
Split out incomplete arrays from VariableArrayType into
...
IncompleteArrayType. This should make code dealing with both incomplete
and variable length arrays much more readable, plus it allows properly
making the distinction between isVariableArrayType() and
isVariablyModifiedType(). The patch is a little big, but it's
strightforward. so I don't think there should be any issues.
llvm-svn: 47165
2008-02-15 18:16:39 +00:00
Eli Friedman
a01cfa75eb
Partial fix for struct compatibility; there's still something messy
...
going on with mixing scopes, though.
llvm-svn: 47152
2008-02-15 06:03:44 +00:00
Eli Friedman
a7bf7ed476
Make typechecking for enum+int compatibility stricter.
...
llvm-svn: 47005
2008-02-12 08:46:17 +00:00
Eli Friedman
2b90b0d09e
Add wchar_t type to ASTContext. Will be needed for wide strings, since
...
they are of type wchar_t[].
llvm-svn: 47004
2008-02-12 08:29:21 +00:00
Eli Friedman
16f909670e
Fix type compatibility between constant and variable arrays.
...
llvm-svn: 47003
2008-02-12 08:23:06 +00:00
Eli Friedman
220ee41011
Fix the codegen of structs with flexible array members.
...
llvm-svn: 46806
2008-02-06 05:33:51 +00:00
Eli Friedman
d49a720d52
Be a bit stricter about array type compatibility.
...
llvm-svn: 46799
2008-02-06 04:53:22 +00:00
Christopher Lamb
025b5fb883
Add experimental support for address space qualified types. Address space
...
qualifiers use the __attribute__((address_space(id))) syntax.
llvm-svn: 46691
2008-02-04 02:31:56 +00:00
Steve Naroff
7b3579b8de
Abolish a bunch of Xcode inserted tabs.
...
llvm-svn: 46566
2008-01-30 19:17:43 +00:00
Steve Naroff
ddb1dd8c5f
Tighten up ASTContext::typesAreCompatible()...it needs to make sure the qualifiers match. The comment and C99 citation for this routine were correct...the code needed to conform to the comment/spec. This fixes the test added below.
...
Tightening up this routine forced tweaks to Sema::CheckSubtractionOperands() and Sema::CheckCompareOperands(). For example, they both need to operate on the unqualified pointee...
llvm-svn: 46522
2008-01-29 18:58:14 +00:00
Steve Naroff
f06b5ba047
Fix bz1950. ASTContext::functionTypesAreCompatible() needs to operate on the unqualified parameter types (per C99 6.7.5.3p15).
...
llvm-svn: 46472
2008-01-29 00:15:50 +00:00
Fariborz Jahanian
0a71ad2e07
Problem with ObjC's type-encoding of nested structs causing infinit recursion.
...
llvm-svn: 46260
2008-01-22 22:44:46 +00:00
Chris Lattner
fd65291aa3
Fix ASTContext::typesAreCompatible when analyzing a function type with
...
proto and function type without proto. It would never call
'functionTypesAreCompatible' because they have different type classes.
llvm-svn: 45952
2008-01-14 05:45:46 +00:00
Steve Naroff
a385fb8c2e
Add a FIXME to commit r45784. Thanks mrs!
...
llvm-svn: 45790
2008-01-09 23:44:05 +00:00
Steve Naroff
c6edcbdb5d
Fix ASTContext::typesAreCompatible to allow for int/enum compatibility (C99 6.7.2.2p4).
...
Fix Sema::MergeFunctionDecl to allow for function type compatibility (by using the predicate on ASTContext). Function types don't have to be identical to be compatible...
llvm-svn: 45784
2008-01-09 22:43:08 +00:00
Fariborz Jahanian
6917870be5
Verify/add code to make sure types passed to interfaceTypesAreCompatible
...
are canonical. Asst in interfaceTypesAreCompatible if they are not.
llvm-svn: 45717
2008-01-07 20:12:21 +00:00
Ted Kremenek
1b0ea82459
Substituted all instances of the string "Objc" for "ObjC". This fixes
...
some naming inconsistencies in the names of classes pertaining to Objective-C
support in clang.
llvm-svn: 45715
2008-01-07 19:49:32 +00:00
Fariborz Jahanian
c89ea091a2
Couple more uninitialized before use warning elimination.
...
llvm-svn: 45547
2008-01-03 20:04:58 +00:00
Fariborz Jahanian
243c611a05
Remove cause of misc. "variable might be used uninitialized in this function" warnings.
...
llvm-svn: 45546
2008-01-03 20:01:35 +00:00
Chris Lattner
5b12ab8c93
Don't attribute in file headers anymore. See llvmdev for the
...
discussion of this change.
llvm-svn: 45410
2007-12-29 19:59:25 +00:00
Christopher Lamb
c5fafa211a
Fix OCUVector case in struct layout code.
...
llvm-svn: 45396
2007-12-29 05:10:55 +00:00
Fariborz Jahanian
a7c705ddca
This patch implements some of the more obscure type-checking involving
...
'id' quallified with protocols and static types which have categories and
inheritance which implement these protocols.
llvm-svn: 45294
2007-12-21 22:22:33 +00:00
Fariborz Jahanian
56b5c96ef7
Patch to compare to objective-c static types where one or the other
...
(but not both) may be a protocol qualified static type.
llvm-svn: 45283
2007-12-21 17:34:43 +00:00
Fariborz Jahanian
ff7d2bf255
More objective-c type analysis. This time involving objective types
...
of conforming protocols (or not).
llvm-svn: 45276
2007-12-21 00:33:59 +00:00
Fariborz Jahanian
4368af07a7
More objective-c type checking. This time comparing objective-c known objects.
...
llvm-svn: 45269
2007-12-20 22:37:58 +00:00
Fariborz Jahanian
63b19f1b6e
Patch to do type-checking for objctive-c's object types.
...
More is yet to come.
llvm-svn: 45263
2007-12-20 19:24:10 +00:00
Chris Lattner
6a4f74593c
fix some crazy indentation
...
llvm-svn: 45210
2007-12-19 19:23:28 +00:00
Fariborz Jahanian
a1e3420c49
This patch concludes implementation of dynamic objective-c type qualified by
...
protocol list.
llvm-svn: 45203
2007-12-19 17:45:58 +00:00
Fariborz Jahanian
9f0e310861
Refactoring work. ObjcQualifiedIdType is now derived from 'Type'.
...
llvm-svn: 45174
2007-12-18 21:33:44 +00:00
Fariborz Jahanian
9b482ba9ec
Fixed a comment describing a function
...
llvm-svn: 45125
2007-12-17 21:48:49 +00:00
Fariborz Jahanian
24cb52c9b0
Patch to implemented objective-c's dynamic object pointer qualified with
...
the protocol list (id<P,...> types).
llvm-svn: 45121
2007-12-17 21:03:50 +00:00
Fariborz Jahanian
c47dc4f5af
Patch to make ObjcQualifiedInterfaceType inherit ObjcInterfaceType
...
llvm-svn: 45014
2007-12-13 20:47:42 +00:00
Ted Kremenek
1daa3cfbae
TargetInfo no longer includes a reference to SourceManager.
...
Moved all clients of Diagnostics to use FullSourceLoc instead of SourceLocation.
Added many utility methods to FullSourceLoc to provide shorthand for:
FullLoc.getManager().someMethod(FullLoc.getLocation());
instead we have:
FullLoc.someMethod();
Modified TextDiagnostics (and related classes) to use this short-hand.
llvm-svn: 44957
2007-12-12 22:39:36 +00:00
Steve Naroff
f44cb63859
Encode enumeral types.
...
llvm-svn: 44956
2007-12-12 22:30:11 +00:00
Chris Lattner
6d513f37c9
Unbreak -stats on cocoa.h
...
llvm-svn: 44919
2007-12-12 06:43:05 +00:00
Fariborz Jahanian
c98d956778
Implemented type checking for pointer of objects of protocol-qualified types.
...
Note that incompatible-protocol-qualified-types.m is currently failing. This is
unrelated to this patch and Steve is looking at the general problem of not reporting
incompitible pointer types in return stetement..
llvm-svn: 44897
2007-12-12 01:00:23 +00:00
Fariborz Jahanian
2bbd03a755
Patch to implement "Protocol" as a built-in type declared as
...
"@class Protocol;"
llvm-svn: 44670
2007-12-07 00:18:54 +00:00
Bill Wendling
db4e34984b
Fix for testcase that assigns a dereferenced reference to a pointer. The
...
standard says that we should adjust the "reference to T" type to "T"
before analysis.
llvm-svn: 44530
2007-12-03 07:33:35 +00:00
Ted Kremenek
2b0ce11952
Reverted changed to getTagDeclType() introduced in patch 44089:
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=44089
"Decl" once again can no longer be NULL, so the NULL checks are not needed.
llvm-svn: 44336
2007-11-26 21:16:01 +00:00
Anders Carlsson
9c1011c090
Put back the flags field in the constant CF string type.
...
llvm-svn: 44222
2007-11-19 00:25:30 +00:00
Ted Kremenek
919858a428
Modified ASTContext::getTagDeclType() to accept a NULL pointer for the passed
...
in TagDecl*. This allows the deserializer to use ASTContext to create the
TagTypes. Deserialize TagTypes then rely on pointer-backpatching to resolve
the decls.
This may not be the interface that we want, but as the implementation of
TagTypes will potentially change significantly in the future, I'm leaving this
for now. An appropriate FIXME is in place.
llvm-svn: 44089
2007-11-14 00:03:20 +00:00
Fariborz Jahanian
bc92fd7542
Type encoding for structs.
...
llvm-svn: 44087
2007-11-13 23:21:38 +00:00
Ted Kremenek
24726c3fc9
Rewrote type serialization to used the same methodology as we do for Decls.
...
Removed tons of dead code in ASTContext concerning how types use to be
serialized.
Removed serialization methods from QualType that are no longer used.
llvm-svn: 44070
2007-11-13 22:02:55 +00:00
Ted Kremenek
e9b83bbd68
Renamed all serialization "Materialize" methods to "Create" to conform with
...
the new serialization API.
llvm-svn: 44035
2007-11-13 00:25:37 +00:00
Steve Naroff
4d7b367652
Teach ASTContext::tagTypesAreCompatible() about the built-in ObjC types (Class and id), removing a bogus warning.
...
llvm-svn: 43809
2007-11-07 06:03:51 +00:00
Ted Kremenek
453ab7d126
Started work on new serialization approach within ASTContext to
...
serialize Type objects in the order they are serialized in the Types
vector. We also now rely on the methods within ASTContext to unique
Type objects and handle the actual creation of Type objects (these are
now called by the deserialization code). This approach solves some
hairy issues with ownership of objects and allows us to naturally
handle recursive types.
llvm-svn: 43787
2007-11-06 22:26:16 +00:00