]> granicus.if.org Git - clang/log
clang
17 years agoAdd (partial) support for @encode.
Anders Carlsson [Mon, 29 Oct 2007 05:01:08 +0000 (05:01 +0000)]
Add (partial) support for @encode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43439 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoThe callers of ParseStructDeclaration are not expecting it to
Chris Lattner [Mon, 29 Oct 2007 04:42:53 +0000 (04:42 +0000)]
The callers of ParseStructDeclaration are not expecting it to
eat the terminating ;.  Fix one place where it did, allowing this
to compile without error:

struct x {
 int a;
 union {
  int b;
  float c;
 };

 int d;
};

This reduces diagnostics on PR1750 from 33 to 27.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43437 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agocasting to void is ok for structs (C99 6.5.4p2), this fixes
Chris Lattner [Mon, 29 Oct 2007 04:26:44 +0000 (04:26 +0000)]
casting to void is ok for structs (C99 6.5.4p2), this fixes
one bogus error on PR1750.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43436 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd prototype info for __builtin_memcpy, reducing #diagnostics from 37 to 34 on
Chris Lattner [Mon, 29 Oct 2007 04:18:06 +0000 (04:18 +0000)]
Add prototype info for __builtin_memcpy, reducing #diagnostics from 37 to 34 on
PR1750

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43435 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix a parser bug on labeled inline asm stmts, allowing us
Chris Lattner [Mon, 29 Oct 2007 04:06:22 +0000 (04:06 +0000)]
Fix a parser bug on labeled inline asm stmts, allowing us
to parse stuff like:

asm volatile("1:  rex64/fxrstor (%[fx])\n\t"
       "2:\n"
       ".section .fixup,\"ax\"\n"
       "3:  movl $-1,%[err]\n"
       "    jmp  2b\n"
       ".previous\n"
       ".section __ex_table,\"a\"\n"
       "   .align 8\n"
       "   .quad  1b,3b\n"
       ".previous"
       : [err] "=r" (err)
       : [fx] "cdaSDb" (fx), "m" (*fx), "0" (0));

This reduces # diagnostics on PR1750 from 49 to 37.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43434 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement *skeletal* support for representing GNU inline asm stmts in the AST,
Chris Lattner [Mon, 29 Oct 2007 04:04:16 +0000 (04:04 +0000)]
Implement *skeletal* support for representing GNU inline asm stmts in the AST,
resolving a crash on a .i file in PR1750.  We now generate 49 errors on the
.i file in that bug.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43433 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix a major bug in the Type::getAs*Type methods: they didn't strip off
Chris Lattner [Mon, 29 Oct 2007 03:41:11 +0000 (03:41 +0000)]
Fix a major bug in the Type::getAs*Type methods: they didn't strip off
typeof(type) and typeof(expr) correctly.  Now provide a single point of
contact (Type::getDesugaredType) for doing the shallow stripping we need.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43432 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoGenerate code for __builtin_classify_type.
Anders Carlsson [Mon, 29 Oct 2007 02:59:40 +0000 (02:59 +0000)]
Generate code for __builtin_classify_type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43429 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd BuiltinType::Char_S to Type::isCharType
Anders Carlsson [Mon, 29 Oct 2007 02:52:18 +0000 (02:52 +0000)]
Add BuiltinType::Char_S to Type::isCharType

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43428 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplemented serialization for TypedefType.
Ted Kremenek [Sun, 28 Oct 2007 21:21:04 +0000 (21:21 +0000)]
Implemented serialization for TypedefType.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43423 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplemented serialization of FunctionTypeProto.
Ted Kremenek [Sun, 28 Oct 2007 00:59:26 +0000 (00:59 +0000)]
Implemented serialization of FunctionTypeProto.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43419 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplemented serialization of FunctionTypeNoProto.
Ted Kremenek [Sat, 27 Oct 2007 19:58:08 +0000 (19:58 +0000)]
Implemented serialization of FunctionTypeNoProto.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43418 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplemented serialization for VectorType.
Ted Kremenek [Sat, 27 Oct 2007 19:05:09 +0000 (19:05 +0000)]
Implemented serialization for VectorType.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43417 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMore work on type serialization: added support for serializing BuiltinTypes.
Ted Kremenek [Fri, 26 Oct 2007 23:52:52 +0000 (23:52 +0000)]
More work on type serialization: added support for serializing BuiltinTypes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43414 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPath to synthesize 'instance' size field of _objc_class metadata.
Fariborz Jahanian [Fri, 26 Oct 2007 23:09:28 +0000 (23:09 +0000)]
Path to synthesize 'instance' size field of _objc_class metadata.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43409 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCompleted serialization of ConstantArrayTypes (now that APInt serialization is in...
Ted Kremenek [Fri, 26 Oct 2007 22:00:08 +0000 (22:00 +0000)]
Completed serialization of ConstantArrayTypes (now that APInt serialization is in place).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43407 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoStart rewriting ObjC interfaces. As a start, we comment out all the methods. This...
Steve Naroff [Fri, 26 Oct 2007 20:53:56 +0000 (20:53 +0000)]
Start rewriting ObjC interfaces. As a start, we comment out all the methods. This involved refining how the parser/AST passes/manages SourceLocations for ObjcMethodDecl's.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43404 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoThis patch allows synthesis generation of ivar offset for legacy objective-c @impleme...
Fariborz Jahanian [Fri, 26 Oct 2007 20:50:24 +0000 (20:50 +0000)]
This patch allows synthesis generation of ivar offset for legacy objective-c @implementation
decl without an @interface decl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43403 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdded skeleton implementation of serialization for types (not complete).
Ted Kremenek [Fri, 26 Oct 2007 20:24:35 +0000 (20:24 +0000)]
Added skeleton implementation of serialization for types (not complete).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43397 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPatch to synthesize computation of Ivar offset in rewritten c file.
Fariborz Jahanian [Fri, 26 Oct 2007 19:46:17 +0000 (19:46 +0000)]
Patch to synthesize computation of Ivar offset in rewritten c file.
Thanks to Steve N. to point out using of offsetof for this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43391 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCodegen union member references.
Devang Patel [Fri, 26 Oct 2007 19:42:18 +0000 (19:42 +0000)]
Codegen union member references.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43390 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoHandle non LValue base expressions.
Devang Patel [Fri, 26 Oct 2007 18:15:21 +0000 (18:15 +0000)]
Handle non LValue base expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43387 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCode gen static initializer.
Devang Patel [Fri, 26 Oct 2007 17:50:58 +0000 (17:50 +0000)]
Code gen static initializer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43386 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCodegen array initializers.
Devang Patel [Fri, 26 Oct 2007 17:44:44 +0000 (17:44 +0000)]
Codegen array initializers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43385 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCodegen global array initializers.
Devang Patel [Fri, 26 Oct 2007 16:31:40 +0000 (16:31 +0000)]
Codegen global array initializers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43383 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPretty printing for ivar list of an interface block.
Fariborz Jahanian [Fri, 26 Oct 2007 16:29:12 +0000 (16:29 +0000)]
Pretty printing for ivar list of an interface block.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43382 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDisambiguated variable name to comply with VC++'s archaic variable scoping rules.
Hartmut Kaiser [Thu, 25 Oct 2007 22:59:17 +0000 (22:59 +0000)]
Disambiguated variable name to comply with VC++'s archaic variable scoping rules.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43371 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUpdated VC++ build system
Hartmut Kaiser [Thu, 25 Oct 2007 22:58:31 +0000 (22:58 +0000)]
Updated VC++ build system

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43370 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoModified StmtIterator to now include visiting the initialization expression for EnumC...
Ted Kremenek [Thu, 25 Oct 2007 22:24:19 +0000 (22:24 +0000)]
Modified StmtIterator to now include visiting the initialization expression for EnumConstantDecls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43366 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix "strbuf += stufflen;" crash.
Devang Patel [Thu, 25 Oct 2007 22:19:13 +0000 (22:19 +0000)]
Fix  "strbuf += stufflen;" crash.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43365 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDocument ConvertNewType() method and make it a private method.
Devang Patel [Thu, 25 Oct 2007 21:40:12 +0000 (21:40 +0000)]
Document ConvertNewType() method and make it a private method.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43363 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdded DeclSerialization.cpp to XCode project.
Ted Kremenek [Thu, 25 Oct 2007 21:39:10 +0000 (21:39 +0000)]
Added DeclSerialization.cpp to XCode project.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43362 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdded skeleton for Decl serialization.
Ted Kremenek [Thu, 25 Oct 2007 21:37:16 +0000 (21:37 +0000)]
Added skeleton for Decl serialization.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43361 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRefactored several meta data for reusability.
Fariborz Jahanian [Thu, 25 Oct 2007 20:55:25 +0000 (20:55 +0000)]
Refactored several meta data for reusability.
Changed the entire rewrite of metadata to write to std::string
object instead of stdout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43360 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCache llvm::Type through PATypeHolder.
Devang Patel [Thu, 25 Oct 2007 18:32:36 +0000 (18:32 +0000)]
Cache llvm::Type through PATypeHolder.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43355 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agochanged #include of Serialization.h to SerializationFwd.h to reduce
Ted Kremenek [Thu, 25 Oct 2007 18:27:10 +0000 (18:27 +0000)]
changed #include of Serialization.h to SerializationFwd.h to reduce
compilation time.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43354 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix a recovery bug Fariborz and I noticed yesterday. We were producing:
Chris Lattner [Thu, 25 Oct 2007 17:27:01 +0000 (17:27 +0000)]
Fix a recovery bug Fariborz and I noticed yesterday.  We were producing:

method.c:4:3: error: use of undeclared identifier 'BADIDENT'
        &BADIDENT, 0
         ^
method.c:5:2: error: expected '}'
};
 ^
method.c:3:14: error: to match this '{'
struct S A = {
             ^

now we only produce:

method.c:4:3: error: use of undeclared identifier 'BADIDENT'
        &BADIDENT, 0
         ^

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43349 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agosimplify change.
Chris Lattner [Thu, 25 Oct 2007 17:18:59 +0000 (17:18 +0000)]
simplify change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43348 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix a bug steve noticed when handling nested rewrites. We now turn this:
Chris Lattner [Thu, 25 Oct 2007 17:17:34 +0000 (17:17 +0000)]
Fix a bug steve noticed when handling nested rewrites.  We now turn this:

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

into:

    NSAutoreleasePool * pool = objc_msgSend(objc_msgSend(objc_getClass("NSAutoreleasePool"), sel_getUid("alloc")), sel_getUid("init"));

instead of:

    NSAutoreleasePool * pool = objc_msgSend(objc_msgSend(objc_getClass("NSAutoreleasePool"), sel_getUid("alloc")), sel_getUid("init"))utoreleasePool"), sel_getUid("alloc")) init];

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43347 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoConvert one type of metadata to use std::string instead of
Chris Lattner [Thu, 25 Oct 2007 17:07:24 +0000 (17:07 +0000)]
Convert one type of metadata to use std::string instead of
printf as an example.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43346 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdded SourceLocation.cpp to XCode project.
Ted Kremenek [Thu, 25 Oct 2007 16:03:53 +0000 (16:03 +0000)]
Added SourceLocation.cpp to XCode project.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43344 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplemented serialization of SourceLocation and SourceRange objects.
Ted Kremenek [Thu, 25 Oct 2007 16:02:43 +0000 (16:02 +0000)]
Implemented serialization of SourceLocation and SourceRange objects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43343 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdded constness to accessors in CompoundStmt.
Ted Kremenek [Thu, 25 Oct 2007 15:39:09 +0000 (15:39 +0000)]
Added constness to accessors in CompoundStmt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43342 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd a new ChooseExpr::isConditionTrue method to unify
Chris Lattner [Thu, 25 Oct 2007 00:29:32 +0000 (00:29 +0000)]
Add a new ChooseExpr::isConditionTrue method to unify
some code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43322 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRefactored RewriteObjcMethodsMetaData to better rewrite
Fariborz Jahanian [Thu, 25 Oct 2007 00:14:44 +0000 (00:14 +0000)]
Refactored RewriteObjcMethodsMetaData to better rewrite
instance/class methods metadata.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43320 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdded accessors to CompoundStmt to retrieve the source locations for the
Ted Kremenek [Thu, 25 Oct 2007 00:08:50 +0000 (00:08 +0000)]
Added accessors to CompoundStmt to retrieve the source locations for the
left and right bracket.  This is useful for serialization.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43318 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRemove unused #includes
Devang Patel [Wed, 24 Oct 2007 23:42:18 +0000 (23:42 +0000)]
Remove unused #includes

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43317 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMore work on translating message expressions.
Steve Naroff [Wed, 24 Oct 2007 22:48:43 +0000 (22:48 +0000)]
More work on translating message expressions.

Still to do:

- Chris will fix a bug in the rewriting engine for nested stmts. For example, the following:

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

tranlates to:

    NSAutoreleasePool * pool = objc_msgSend(objc_msgSend(objc_getClass("NSAutoreleasePool"), sel_getUid("alloc")), sel_getUid("init"))utoreleasePool"), sel_getUid("alloc")) init];

...which is correct, except there is garbage after sel_getUid("init"). This is because the rewriter isn't updating the extent of the containing message expression.

- Do the crazy cast thang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43316 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoHandle
Devang Patel [Wed, 24 Oct 2007 22:26:28 +0000 (22:26 +0000)]
Handle
  foo()->a = 42;

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43315 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRemove explicit use of size of known structs in metadata generation.
Fariborz Jahanian [Wed, 24 Oct 2007 21:25:12 +0000 (21:25 +0000)]
Remove explicit use of size of known structs in metadata generation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43313 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCouple of minor changes. 1) Metaclass metadata also has a reference to
Fariborz Jahanian [Wed, 24 Oct 2007 20:54:23 +0000 (20:54 +0000)]
Couple of minor changes. 1) Metaclass metadata also has a reference to
protocol meta-data (unlike what documentation says). 2) Include objc.h so,
we can compile the generated metadata with both gcc and clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43311 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMove RecordOrganizer into CodeGenTypes.cpp
Devang Patel [Wed, 24 Oct 2007 20:38:06 +0000 (20:38 +0000)]
Move RecordOrganizer into CodeGenTypes.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43310 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRefactord instance and class metadata emission. Refactored protocols metadata emission.
Fariborz Jahanian [Wed, 24 Oct 2007 19:23:36 +0000 (19:23 +0000)]
Refactord instance and class metadata emission. Refactored protocols metadata emission.
Implemented emission of category metadata,

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43308 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoModified current clients of Bitcode-Object serialization to use the
Ted Kremenek [Wed, 24 Oct 2007 19:06:02 +0000 (19:06 +0000)]
Modified current clients of Bitcode-Object serialization to use the
new split-header file configuration (Serialize.h and Deserialize.h)
now in place in the core LLVM repository.

Removed unneeded SerializeTrait specializations for enums in
TokenKinds.h

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43306 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoHandle non-constant initializers.
Devang Patel [Wed, 24 Oct 2007 18:05:48 +0000 (18:05 +0000)]
Handle non-constant initializers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43301 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoVisit CompoundLiteralExpr and InitListExpr
Devang Patel [Wed, 24 Oct 2007 17:18:43 +0000 (17:18 +0000)]
Visit CompoundLiteralExpr and InitListExpr

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43300 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix some long lines, move code around into logical groups.
Chris Lattner [Wed, 24 Oct 2007 17:06:59 +0000 (17:06 +0000)]
Fix some long lines, move code around into logical groups.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43299 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUse Ted's new mutable child iterators to update the tree as we rewrite it.
Chris Lattner [Wed, 24 Oct 2007 16:57:36 +0000 (16:57 +0000)]
Use Ted's new mutable child iterators to update the tree as we rewrite it.
This will make nested subexprs work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43296 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoModified operator* for StmtIterator to return Stmt*& instead of Stmt*.
Ted Kremenek [Wed, 24 Oct 2007 16:52:34 +0000 (16:52 +0000)]
Modified operator* for StmtIterator to return Stmt*& instead of Stmt*.
This permits in-place replacement of the original AST statements.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43295 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoIncorporate some feedback from Chris...
Steve Naroff [Wed, 24 Oct 2007 01:09:48 +0000 (01:09 +0000)]
Incorporate some feedback from Chris...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43285 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoConstify methods and reuse RecordOrganizer object.
Devang Patel [Wed, 24 Oct 2007 00:56:23 +0000 (00:56 +0000)]
Constify methods and reuse RecordOrganizer object.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43284 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agocheck base type.
Devang Patel [Wed, 24 Oct 2007 00:54:17 +0000 (00:54 +0000)]
check base type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43283 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd notes.
Devang Patel [Wed, 24 Oct 2007 00:32:16 +0000 (00:32 +0000)]
Add notes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43282 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUse isUnionType() predicate.
Devang Patel [Wed, 24 Oct 2007 00:28:49 +0000 (00:28 +0000)]
Use isUnionType() predicate.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43281 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agountabify
Devang Patel [Wed, 24 Oct 2007 00:26:24 +0000 (00:26 +0000)]
untabify

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43280 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFixed a strange construct, please review.
Hartmut Kaiser [Wed, 24 Oct 2007 00:07:36 +0000 (00:07 +0000)]
Fixed a strange construct, please review.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43278 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSilenced a VC++ warning.
Hartmut Kaiser [Wed, 24 Oct 2007 00:06:59 +0000 (00:06 +0000)]
Silenced a VC++ warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43277 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd some plumbing to rewrite message expressions (still under construction).
Steve Naroff [Tue, 23 Oct 2007 23:50:29 +0000 (23:50 +0000)]
Add some plumbing to rewrite message expressions (still under construction).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43274 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix typo.
Devang Patel [Tue, 23 Oct 2007 23:29:51 +0000 (23:29 +0000)]
Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43269 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoHandle nested structs.
Devang Patel [Tue, 23 Oct 2007 23:26:46 +0000 (23:26 +0000)]
Handle nested structs.
typdef struct A { int i; struct A *next; } A

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43268 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplemented serialization for IdentifierInfo and IdentifierTable.
Ted Kremenek [Tue, 23 Oct 2007 22:18:37 +0000 (22:18 +0000)]
Implemented serialization for IdentifierInfo and IdentifierTable.
Updated serialization test code in the driver to test serialization of
these types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43266 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoHandle simple struct member expr.
Devang Patel [Tue, 23 Oct 2007 20:28:39 +0000 (20:28 +0000)]
Handle simple struct member expr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43258 91177308-0d34-0410-b5e6-96231b3b80d8

17 years ago- Add rewrite rule for @class.
Steve Naroff [Tue, 23 Oct 2007 20:20:08 +0000 (20:20 +0000)]
- Add rewrite rule for @class.
- Add setter/getter to ObjcClassDecl.
- Predefined key runtime functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43257 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPatch to complete metadata generation for each implemented class.
Fariborz Jahanian [Tue, 23 Oct 2007 18:53:48 +0000 (18:53 +0000)]
Patch to complete metadata generation for each implemented class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43255 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoBegin struct layout work.
Devang Patel [Tue, 23 Oct 2007 02:10:49 +0000 (02:10 +0000)]
Begin struct layout work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43236 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPatch for initialization of class's Meta-class metadata.
Fariborz Jahanian [Tue, 23 Oct 2007 00:02:02 +0000 (00:02 +0000)]
Patch for initialization of class's Meta-class metadata.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43235 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoThis patch generates protocol metadata and all its sub-metadata.
Fariborz Jahanian [Mon, 22 Oct 2007 21:41:37 +0000 (21:41 +0000)]
This patch generates protocol metadata and all its sub-metadata.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43233 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix a crash on test/Sema/invalid-decl.c
Chris Lattner [Fri, 19 Oct 2007 20:10:30 +0000 (20:10 +0000)]
Fix a crash on test/Sema/invalid-decl.c

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43188 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSilenced a VC++ warning.
Hartmut Kaiser [Fri, 19 Oct 2007 15:50:35 +0000 (15:50 +0000)]
Silenced a VC++ warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43179 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd NL at end of file
Gabor Greif [Fri, 19 Oct 2007 15:38:32 +0000 (15:38 +0000)]
add NL at end of file

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43178 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agorewrite of metadata for implemented instance methods.
Fariborz Jahanian [Fri, 19 Oct 2007 00:36:46 +0000 (00:36 +0000)]
rewrite of metadata for implemented instance methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43159 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoInclude a simple test case for the previous commit...
Steve Naroff [Fri, 19 Oct 2007 00:05:15 +0000 (00:05 +0000)]
Include a simple test case for the previous commit...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43158 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix the previous (short lived:-) FIXME.
Steve Naroff [Thu, 18 Oct 2007 23:53:51 +0000 (23:53 +0000)]
Fix the previous (short lived:-) FIXME.

I didn't realize that GCC considers this a hard error (I thought it was built-in).

Since it's not, we should simply emit an error.

[dylan:~/llvm/tools/clang] admin% cc -c trivial.m
trivial.m:6: error: cannot find interface declaration for 'NSConstantString'

[administrators-powerbook59:~/llvm/tools/clang] admin% ../../Debug/bin/clang trivial.m
trivial.m:6:16: error: cannot find interface declaration for 'NSConstantString'
NSString *s = @"123";
               ^
1 diagnostic generated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43157 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFixed DeclStmt::child_begin() to actually create an iterator that
Ted Kremenek [Thu, 18 Oct 2007 23:28:49 +0000 (23:28 +0000)]
Fixed DeclStmt::child_begin() to actually create an iterator that
visits its decls, rather than just creating an "end()" iterator.

Fixed child_end() for statements and expressions to use
child_iterator() to create the end() iterator, rather than just
returning NULL.

Fixed bug in StmtIterator where we did not correctly detect if we had
marched off the end of the ScopedDecls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43156 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoCheck for Nullness of value built in GetObjcProtoType.
Fariborz Jahanian [Thu, 18 Oct 2007 22:59:23 +0000 (22:59 +0000)]
Check for Nullness of value built in GetObjcProtoType.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43155 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMinor grammar fix.
Ted Kremenek [Thu, 18 Oct 2007 22:50:52 +0000 (22:50 +0000)]
Minor grammar fix.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43154 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd a FIXME to an assert.
Steve Naroff [Thu, 18 Oct 2007 22:17:45 +0000 (22:17 +0000)]
Add a FIXME to an assert.
Change a dyn_cast_or_null back to cast (which is more efficient).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43152 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPatch to rewrite ivar tables metadata for classes defined.
Fariborz Jahanian [Thu, 18 Oct 2007 22:09:03 +0000 (22:09 +0000)]
Patch to rewrite ivar tables metadata for classes defined.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43151 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoremove dead #include
Chris Lattner [Thu, 18 Oct 2007 21:23:00 +0000 (21:23 +0000)]
remove dead #include

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43149 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFirst patch toward rewriting of objective-c's meta data.
Fariborz Jahanian [Thu, 18 Oct 2007 19:23:00 +0000 (19:23 +0000)]
First patch toward rewriting of objective-c's meta data.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43143 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoTweak a recent fix to UsualArithmeticConversions (made by Chris - r43113). The benefi...
Steve Naroff [Thu, 18 Oct 2007 18:55:53 +0000 (18:55 +0000)]
Tweak a recent fix to UsualArithmeticConversions (made by Chris - r43113). The benefit of this tweak is it guarantees the entire routine operates on unqualified types (which I believe is a bit clearer).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43142 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdded StmtIterator.cpp and StmtIterator.h to the XCode project.
Ted Kremenek [Thu, 18 Oct 2007 18:22:01 +0000 (18:22 +0000)]
Added StmtIterator.cpp and StmtIterator.h to the XCode project.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43139 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRefactored StmtIterator into classes StmtIteratorBase (non-templated)
Ted Kremenek [Thu, 18 Oct 2007 18:19:31 +0000 (18:19 +0000)]
Refactored StmtIterator into classes StmtIteratorBase (non-templated)
and StmtIteratorImpl (templated), which StmtIterator and
ConstStmtIterator now succintly subclass.

Implemented iteration over the initializers in DeclStmts.  This is not
thoroughly tested, so there may be bugs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43138 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoReplaced virtual method call to child_begin() in child_end() by
Ted Kremenek [Thu, 18 Oct 2007 18:17:43 +0000 (18:17 +0000)]
Replaced virtual method call to child_begin() in child_end() by
directly inlining its logic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43137 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFixed broken build.
Ted Kremenek [Thu, 18 Oct 2007 16:25:40 +0000 (16:25 +0000)]
Fixed broken build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43132 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSilenced a couple of VC++ warnings.
Hartmut Kaiser [Thu, 18 Oct 2007 12:47:01 +0000 (12:47 +0000)]
Silenced a couple of VC++ warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43125 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUpdated VC++ build system
Hartmut Kaiser [Thu, 18 Oct 2007 12:32:10 +0000 (12:32 +0000)]
Updated VC++ build system

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43124 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix a bug in Sema::CheckConditionalOperands(). When mixing pointers and null pointer...
Steve Naroff [Thu, 18 Oct 2007 05:13:08 +0000 (05:13 +0000)]
Fix a bug in Sema::CheckConditionalOperands(). When mixing pointers and null pointer constants, we need to promote the null pointer constant (which is an integer) to the pointer type. Test case is self explanatory.

This surfaced yesterday, when compiling test/Sema/cocoa.m on Leopard. Since this has nothing to do with ObjC, it's kind of bizarre this hasn't shown up before. I imagine Cocoa.h on Leopard may have changed recently?

Thanks to Ted for localizing the bug and giving me a useful AST dump...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43114 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUsualArithmeticConversions is crashing with an assert
Chris Lattner [Thu, 18 Oct 2007 03:50:33 +0000 (03:50 +0000)]
UsualArithmeticConversions is crashing with an assert
when comparing "float" and "const float".  This "fixes" the
issue, but may not be the right fix.  Steve, please review.

Testcase here: test/Sema/usual-float.c

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43113 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix the following bug...
Steve Naroff [Thu, 18 Oct 2007 03:27:23 +0000 (03:27 +0000)]
Fix the following bug...

unsigned char asso_values[] = { 34 };
int legal2() {
  return asso_values[0];
}

The code that creates the new constant array type was operating on the original type.

As a result, the constant type being generated was "unsigned char [1][]" (which is wrong).

The fix is to operate on the element type - in this case, the correct type is "unsigned char [1]"

I added this case to array-init.c, which clearly didn't catch this bogosity...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43112 91177308-0d34-0410-b5e6-96231b3b80d8