summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add PCH support for ImplicitCastExprs. This is the first expressionDouglas Gregor2009-04-147-59/+207
| | | | | | | | | | kind PCH handles that has an expression as an operand, so most of this work is in the infrastructure to rebuild expression trees from the serialized representation. We now store expressions in post-order (e.g., Reverse Polish Notation), so that we can easily rebuild the appropriate expression tree. llvm-svn: 69101
* Strip paren expressions when trying to diagnose "cast as lvalue"Daniel Dunbar2009-04-142-1/+2
| | | | | | extension. llvm-svn: 69100
* Change Lexer::MeasureTokenLength to take a LangOptions reference.Chris Lattner2009-04-1418-120/+159
| | | | | | | | | | | | | | | | | | This allows it to accurately measure tokens, so that we get: t.cpp:8:13: error: unknown type name 'X' static foo::X P; ~~~~~^ instead of the woefully inferior: t.cpp:8:13: error: unknown type name 'X' static foo::X P; ~~~~ ^ Most of this is just plumbing to push the reference around. llvm-svn: 69099
* Diagnose properties which have no implementations;Fariborz Jahanian2009-04-144-23/+61
| | | | | | | either unimplemented setter/getter or no implementation directive. llvm-svn: 69098
* Set alignment on __cstring metadata variables to 1 (matchingDaniel Dunbar2009-04-142-15/+11
| | | | | | llvm-gcc). llvm-svn: 69097
* Fix the RUN lines so that this test actually tests.Dan Gohman2009-04-141-2/+2
| | | | llvm-svn: 69096
* For the h-register addressing-mode trick, use the correct value forDan Gohman2009-04-142-1/+29
| | | | | | any non-address uses of the address value. This fixes 186.crafty. llvm-svn: 69094
* Avoid use of magic \01 prefix when unneeded.Daniel Dunbar2009-04-141-1/+1
| | | | llvm-svn: 69093
* add fixitrewriter to xcode projChris Lattner2009-04-141-0/+6
| | | | llvm-svn: 69092
* Comment fix.Daniel Dunbar2009-04-141-1/+1
| | | | llvm-svn: 69091
* Mac OS X 10.6 and above do not use key manager to register EH frames.Evan Cheng2009-04-141-2/+8
| | | | llvm-svn: 69090
* When the result of an EXTRACT_SUBREG, INSERT_SUBREG, or SUBREG_TO_REGDan Gohman2009-04-143-20/+58
| | | | | | | | | | | | operator is used by a CopyToReg to export the value to a different block, don't reuse the CopyToReg's register for the subreg operation result if the register isn't precisely the right class for the subreg operation. Also, rename the h-registers.ll test, now that there are more than one. llvm-svn: 69087
* Make the implicit-int handling error recovery stuff handle C++Chris Lattner2009-04-147-34/+59
| | | | | | | | | | | | | | | | | | | nested name specifiers. Now we emit stuff like: t.cpp:8:13: error: unknown type name 'X' static foo::X P; ~~~~ ^ instead of: t.cpp:8:16: error: invalid token after top level declarator static foo::X P; ^ This is inspired by a really awful error message I got from g++ when I misspelt diag::kind as diag::Kind. llvm-svn: 69086
* Add PCH support for PredefinedExpr and FloatingLiteral expressionsDouglas Gregor2009-04-1410-10/+99
| | | | llvm-svn: 69084
* refactor "implicit int error recovery" code out of Chris Lattner2009-04-142-62/+86
| | | | | | | ParseDeclarationSpecifiers into its own function, no functionality change. llvm-svn: 69083
* Call CreateProcess with bInheritHandles = TRUE.Mikhail Glushenkov2009-04-141-1/+1
| | | | | | | | Makes llvmc show error messages printed by child processes when run from the Cygwin/MSYS shell. Since ExecuteAndWait does not return until the child program has finished execution, this change should be harmless. llvm-svn: 69082
* Delete trailing whitespace.Mikhail Glushenkov2009-04-141-13/+13
| | | | llvm-svn: 69081
* PCH support for a few very, very simple kinds of expressions. Hook upDouglas Gregor2009-04-1419-31/+355
| | | | | | | expression (de-)serialization for VLAs, variable initializers, enum constant initializers, and bitfield widths. llvm-svn: 69075
* Fix a regression in a previous patch that broke implicit Chris Lattner2009-04-142-2/+12
| | | | | | int in a bitfield. Shantonu found this in a gcc testsuite file. llvm-svn: 69074
* Fix <rdar://problem/6252084> [sema] jumps into Obj-C exception blocks should ↵Steve Naroff2009-04-142-12/+31
| | | | | | | | be disallowed. This builds on Eli's work from http://llvm.org/viewvc/llvm-project?view=rev&revision=65678. llvm-svn: 69073
* add support for -W[no-]extra-tokensChris Lattner2009-04-142-1/+4
| | | | llvm-svn: 69071
* remove dead enumChris Lattner2009-04-141-1/+0
| | | | llvm-svn: 69070
* Fix PR3988: extern inline functions get strong symbol definitions inChris Lattner2009-04-143-29/+27
| | | | | | | | C99 mode. This is a regression from an earlier patch of mine. This also simplifies the linkage enums a bit. llvm-svn: 69069
* Do not dead code strip global meta-data objects.Fariborz Jahanian2009-04-141-15/+10
| | | | | | This will match gcc's behavior in the arena. llvm-svn: 69061
* Fixup whitespacing.Mike Stump2009-04-143-4/+4
| | | | llvm-svn: 69055
* temporarily revert r69046Chris Lattner2009-04-141-4/+4
| | | | llvm-svn: 69054
* Fix comment.Daniel Dunbar2009-04-141-1/+1
| | | | llvm-svn: 69053
* Add a tricky, tricky test case for PCH that we currently don't handle. ↵Douglas Gregor2009-04-142-0/+14
| | | | | | Committed with a FIXME so that we don't forget it llvm-svn: 69052
* implement some sema for gnuc_inline attribute. Reject always_inline and ↵Chris Lattner2009-04-143-5/+29
| | | | | | no_inline on objc methods. llvm-svn: 69051
* Support code generation of 'this' exprsAnders Carlsson2009-04-143-0/+20
| | | | llvm-svn: 69050
* Some of GR8_NOREX registers are only available in 64-bit mode.Evan Cheng2009-04-142-0/+83
| | | | llvm-svn: 69049
* Literal value calculation isn't likely to overflow on targets having int as ↵Sanjiv Gupta2009-04-141-4/+4
| | | | | | 32 or less. Fixing the assert as it otherwise triggers for PIC16 which as i16 as int. llvm-svn: 69046
* implement codegen support for __attribute((__gnuc_inline__)),Chris Lattner2009-04-143-39/+55
| | | | | | | | pulling some attribute munging stuff into GetLinkageForFunction. This should fix PR3986 llvm-svn: 69045
* recognize the gnuc_inline attribute.Chris Lattner2009-04-144-0/+30
| | | | llvm-svn: 69044
* When building a PCH file, don't perform end-of-translation-unitDouglas Gregor2009-04-147-15/+63
| | | | | | | | | wrap-up (e.g., turning tentative definitions into definitions). Also, very that, when we actually use the PCH file, we get the ride code generation for tentative definitions and definitions that show up in the PCH file. llvm-svn: 69043
* ASTContext::mergeTypes(): Loosen up the type checking for 'Class' (treating ↵Steve Naroff2009-04-143-13/+39
| | | | | | | | | | | | | | it like 'id'). This fixes <rdar://problem/6782722> XCDataTipsManager.m registers, observes notifications in class methods. The radar above is the result of clang typing 'self' in a class method as 'Class', which results in some spurious warnings (GCC types 'self' in a class method as 'id'). I considered changing the type of 'self' to 'id' (to conform to GCC), however this resulted in *many* test cases breaking. In addition, I really prefer a more strongly typed 'self'. All in all, this is the least obtrusive fix I could find for removing the spurious warnings (though we do loose some valid warnings). llvm-svn: 69041
* Refactor how attributes are set on values.Daniel Dunbar2009-04-142-101/+90
| | | | | | | | | | | | | | | | | | | | | | | | - Pull out SetCommonAttributes, which handles the things common to aliases, methods, functions, and variables. - Pull out SetLLVMFunctionAttributesForDefinition, which handles the LLVM attributes which we only want to apply to a definition (like noinline and alwaysinline). - Kill SetGVDeclarationAttributes (inlined into SetFunctionAttributes and specialized). - Kill SetFunctionAttributesForDefinition (inlined into sole caller). - Inline SetGVDefinitionAttributes into SetMethodAttributes and specialize. - Rename SetGVDefinitionAttributes to SetFunctionDefinitionAttributes. This is supposed to be a no functionality change commit, but I may have made a mistake. llvm-svn: 69036
* Split SetGlobalValueAttributes into definition/declaration halves.Daniel Dunbar2009-04-142-40/+45
| | | | | | - No functionality change. llvm-svn: 69035
* Rename (one) SetFunctionAttributes to SetLLVMFunctionAttributes toDaniel Dunbar2009-04-142-8/+13
| | | | | | | disambiguate it. - No functionality change. llvm-svn: 69034
* Reduce indentation, no functionality change.Daniel Dunbar2009-04-141-12/+13
| | | | llvm-svn: 69033
* defer emission of always_inline, extern_inline, and inline functions (when Chris Lattner2009-04-143-16/+24
| | | | | | not in c89 mode). llvm-svn: 69032
* give always_inline functions internal linkage. If they cannot be Chris Lattner2009-04-141-1/+3
| | | | | | | inlined for some reason, then we don't want a strong or even weak definition. llvm-svn: 69031
* set the linkage of an inline function according to its language rules.Chris Lattner2009-04-142-2/+55
| | | | llvm-svn: 69030
* Add a comment on SetGlobalValueAttributes.Daniel Dunbar2009-04-141-2/+7
| | | | llvm-svn: 69029
* add a new enum type for linkage, no functionality change.Chris Lattner2009-04-142-19/+35
| | | | llvm-svn: 69028
* Clean up handling of visibility.Daniel Dunbar2009-04-145-144/+80
| | | | llvm-svn: 69027
* reduce indentation, no functionality change.Chris Lattner2009-04-141-27/+23
| | | | llvm-svn: 69026
* do not set visibility on "private" or "available externally" linkage objects.Chris Lattner2009-04-141-2/+2
| | | | llvm-svn: 69025
* Offer a fixit hint for our warning about tokens at the end of a directive:Chris Lattner2009-04-141-1/+7
| | | | | | | | | | | | | t.c:3:8: warning: extra tokens at end of #endif directive #endif foo ^ // Don't do this in strict-C89 mode because bcpl comments aren't valid there, and it is too much trouble to analyze whether C block comments are safe. llvm-svn: 69024
* Fix the #import / #include_next "extra tokens at end of #foo directive" Chris Lattner2009-04-143-12/+12
| | | | | | | Warning to properly report that it is an import/include_next instead of claiming it is a #include. llvm-svn: 69023
OpenPOWER on IntegriCloud