Commit Graph

15510 Commits

Author SHA1 Message Date
Douglas Gregor 1d5e9f9368 Implement out-of-line definitions of nested class templates. Most of
the logic is there for out-of-line definitions with multiple levels of
nested templates, but this is still a work-in-progress: we're having
trouble determining when we should look into a dependent
nested-name-specifier. 

llvm-svn: 80003
2009-08-25 17:23:04 +00:00
Fariborz Jahanian 797cf62703 Skip over bases/fields with dependent types.
Fixes pr4771.

llvm-svn: 79999
2009-08-25 16:37:49 +00:00
Fariborz Jahanian 68f051594b Test case for r79968 (courtesy of Anders).
llvm-svn: 79998
2009-08-25 16:09:22 +00:00
Douglas Gregor 885149b504 Sanity checking for statement reference counts. Thanks for the suggestion, Fariborz
llvm-svn: 79995
2009-08-25 15:47:45 +00:00
Dan Gohman a98e0e73de Update clang for raw_fd_ostream no longer requiring F_Force.
llvm-svn: 79991
2009-08-25 15:36:09 +00:00
Douglas Gregor 7315672a60 Add a little more testing for default arguments of constructors in a class template
llvm-svn: 79989
2009-08-25 15:24:38 +00:00
Anders Carlsson be96bc94e8 Handle the implicit 'this' parameter for format attributes.
llvm-svn: 79987
2009-08-25 14:12:34 +00:00
Anders Carlsson 114056f22c If a parameter has a default argument expression, make sure to instantiate the parameter type before checking that the expression is a valid initializer.
llvm-svn: 79986
2009-08-25 13:46:13 +00:00
Anders Carlsson 6c0a6e490c Emit conversion functions correctly.
llvm-svn: 79985
2009-08-25 13:14:46 +00:00
Anders Carlsson 10ebe78730 Improved support for default arguments in constructors for class templates.
llvm-svn: 79984
2009-08-25 13:07:08 +00:00
Zhongxing Xu 342950efc5 Remove CodeDecl and CFG from GRExprEngine and GRStateManager.
Now AnalysisManager is the only place we can get CodeDecl.
This leads to an API change: GRState::bindExpr() now takes the CFG argument.

llvm-svn: 79980
2009-08-25 06:51:30 +00:00
Devang Patel 79e3fa6e9d Remove a test that relies on old debug info format.
llvm-svn: 79979
2009-08-25 06:18:11 +00:00
Anders Carlsson c1eb79b7c9 InitializeVarWithConstructor now returns true on failure.
llvm-svn: 79976
2009-08-25 05:18:00 +00:00
Anders Carlsson 6eb55575da BuildCXXConstructExpr now returns an OwningExprResult.
llvm-svn: 79975
2009-08-25 05:12:04 +00:00
Anders Carlsson 355933d096 Factor building of CXXDefaultArgExpr expressions out into a separate function.
llvm-svn: 79974
2009-08-25 03:49:14 +00:00
Zhongxing Xu 94ec649b33 Remove Decl and CFG from ExplodedGraph. This leads to a series small changes.
llvm-svn: 79973
2009-08-25 03:33:41 +00:00
Anders Carlsson 4562f1f066 Basic support for default argument expressions for function templates.
llvm-svn: 79972
2009-08-25 03:18:48 +00:00
Anders Carlsson c80a127c4d Factor setting default arguments out into SetParamDefaultArgument.
llvm-svn: 79970
2009-08-25 02:29:20 +00:00
Anders Carlsson 12e022ddbf Fix ivar layout map generation (hopefully).
llvm-svn: 79968
2009-08-25 02:07:02 +00:00
Anders Carlsson 5a532380a1 Use hasDefaultArg instead of getDefaultArg.
llvm-svn: 79967
2009-08-25 01:23:32 +00:00
Anders Carlsson a5224ecbc0 Add Decl getter/setters for uninstantiated default arguments for function parameters.
llvm-svn: 79965
2009-08-25 01:11:14 +00:00
Anders Carlsson f1c2695d48 Check that the default argument is well-formed before checking the initializer types.
llvm-svn: 79964
2009-08-25 01:02:06 +00:00
Douglas Gregor 9d01b5b40c Eliminate a GCC warning
llvm-svn: 79962
2009-08-25 00:17:23 +00:00
Fariborz Jahanian a6a3494c1d Remove #ifdef'out code.
llvm-svn: 79956
2009-08-24 23:16:37 +00:00
Douglas Gregor a3dff8e37a Keep track of the template parameter depth properly when we have
member templates declared inside other templates. This allows us to
match out-of-line definitions of member function templates within
class templates to the declarations within the class template. We
still can't handle out-of-line definitions for member class templates,
however.

llvm-svn: 79955
2009-08-24 23:03:25 +00:00
Ted Kremenek 6bc04bca68 Add test case for PR 4759.
llvm-svn: 79954
2009-08-24 22:56:32 +00:00
Ted Kremenek d6cfbafd3b ConstraintManager::AssumeDual now accepts a 'DefinedSVal' instead of 'SVal' for
the condition. This eliminates a source of bugs where the client doesn't
correctly reason about undefined or unknown values. This fixes PR 4759.

llvm-svn: 79952
2009-08-24 22:47:34 +00:00
Ted Kremenek d64be8201d Introduce 'DefinedSVal', an intermediate parent class between Loc/NonLoc and
SVal. This allows us to use the C++ type system to distinguish between SVals
that are potentially unknown/undefined and those that are not.

llvm-svn: 79951
2009-08-24 22:41:15 +00:00
Daniel Dunbar f5147c6c02 Add missing '&&'...
llvm-svn: 79950
2009-08-24 22:29:04 +00:00
Daniel Dunbar a6b4a3d646 PR4766: Don't pass -static to 'as' on x86_64 on Darwin.
Also, do pass -static even with -dynamic on i386.

llvm-svn: 79948
2009-08-24 22:26:16 +00:00
Fariborz Jahanian 7c07d5fed8 Remove ivarlayout bitmap optimization, instead if all zeros,
put out the bitmap when all objects are scanned.

llvm-svn: 79947
2009-08-24 21:55:06 +00:00
Douglas Gregor 4c95288f64 Don't try to evaluate an expression that is type- or value-dependent while building the CFG
llvm-svn: 79941
2009-08-24 21:39:56 +00:00
Douglas Gregor f2270430a1 Skip transparent contexts when performing C++ name lookup
llvm-svn: 79931
2009-08-24 18:55:03 +00:00
Anders Carlsson c327709db8 Handle array to pointer decay in EmitCastExpr and get rid of VisitImplicitCastExpr.
llvm-svn: 79930
2009-08-24 18:37:17 +00:00
Anders Carlsson 3df53bcf10 Handle CK_NullToMemberPointer in ScalarExprEmitter::EmitCast
llvm-svn: 79929
2009-08-24 18:26:39 +00:00
Anders Carlsson 15583e4493 Pass the cast kind to ScalarExprEmitter::EmitCastExpr.
llvm-svn: 79928
2009-08-24 18:12:39 +00:00
Anders Carlsson 83133d9a74 Use the right cast kind when comparing null to member pointers.
llvm-svn: 79927
2009-08-24 18:03:14 +00:00
Douglas Gregor b00b10eb2e Implement support for equality comparisons (!=, ==) of member
pointers, by extending the "composite pointer type" logic to include
member pointer types.

Introduce test cases for member pointer comparisons, including those
that involve the builtin operator candidates implemented earlier. 

llvm-svn: 79925
2009-08-24 17:42:35 +00:00
Chris Lattner e6434cb421 normalize the CharacterLiteral::getLocation method name, patch
by Enea Zaffanella!

llvm-svn: 79924
2009-08-24 17:39:36 +00:00
Fariborz Jahanian 20464fba70 Fixes pr4763.
llvm-svn: 79923
2009-08-24 17:19:23 +00:00
Anders Carlsson 867b48f713 More member pointer work.
llvm-svn: 79922
2009-08-24 17:16:23 +00:00
Anders Carlsson 4557b2c0c2 Remove dead code
llvm-svn: 79921
2009-08-24 16:52:33 +00:00
Douglas Gregor 8a2e601917 Try to complete a type before looking for conversion functions within
that type. Note that we do not produce a diagnostic if the type is
incomplete; rather, we just don't look for conversion functions. Fixes PR4660.

llvm-svn: 79919
2009-08-24 15:23:48 +00:00
Douglas Gregor 84605aeac9 Refactor the template-instantiation logic for expressions into a
generic tree transformation (also used for recanonicalization) and a
small amount of template-instantiation-specific logic.

llvm-svn: 79917
2009-08-24 13:43:27 +00:00
Torok Edwin db7149246f Fix build of clang with gcc-4.4: #include <cstdio> was missing.
llvm-svn: 79916
2009-08-24 13:25:12 +00:00
Douglas Gregor 684582b632 Improve top-level-semicolon test a bit
llvm-svn: 79913
2009-08-24 12:20:57 +00:00
Douglas Gregor 8b9575f27e Top-level semicolons are allowed in C++0x. Fixes PR4755.
llvm-svn: 79912
2009-08-24 12:17:54 +00:00
Douglas Gregor c8c277a1b3 Make sure to adjust function template declarations to their templated
declarations (e.g., FunctionTemplateDecl -> CXXConstructorDecl) before
performing semantic analysis on the declarations. Fixes PR4761.

llvm-svn: 79911
2009-08-24 11:57:43 +00:00
Daniel Dunbar 576d90d39b Remove TargetInfo::getTargetPrefix().
llvm-svn: 79907
2009-08-24 09:54:37 +00:00
Daniel Dunbar 8100d01ecf Switch to StringRef based BitstreamWriter APIs, where appropriate.
- There is lots of non-endian safe code in here... :/

llvm-svn: 79905
2009-08-24 09:31:37 +00:00
Daniel Dunbar 516bb9dd76 Remove arch normalization from Driver, this should be unnecessary now that
things have moved to llvm::Triple.

llvm-svn: 79902
2009-08-24 09:16:49 +00:00
Daniel Dunbar 40165180f7 Switch TargetInfo to store an llvm::Triple.
- Primarily to discourage clients form making decisions based on the string.

llvm-svn: 79901
2009-08-24 09:10:05 +00:00
Daniel Dunbar e3532f82a7 Switch ABI selection to use llvm::Triple instead of string munging.
llvm-svn: 79900
2009-08-24 08:52:16 +00:00
Chris Lattner dca19591f2 fix a GCC type punning warning.
llvm-svn: 79895
2009-08-24 05:19:01 +00:00
Chris Lattner 72bb4f602c prune #includes.
llvm-svn: 79889
2009-08-24 04:11:30 +00:00
Chris Lattner 3441b4f77e API changes to match llvm ToT.
llvm-svn: 79868
2009-08-23 22:45:33 +00:00
Daniel Dunbar ccc60da5c7 Reenable clang using clang-cc for C++ and all archs by default.
llvm-svn: 79861
2009-08-23 19:41:53 +00:00
Daniel Dunbar 87db734400 Fix a few tests to be -Asserts agnostic.
- Ugh.

llvm-svn: 79860
2009-08-23 19:28:59 +00:00
Daniel Dunbar b5bcd6b94a Temporarily switch clang back to not using clang-cc by default for C++, and only
using clang-cc on i386 and x86_64.

llvm-svn: 79859
2009-08-23 18:42:54 +00:00
Benjamin Kramer 89b422c118 Replace cerr with errs().
llvm-svn: 79854
2009-08-23 12:08:50 +00:00
Daniel Dunbar 730a54bf28 cerr -> errs.
llvm-svn: 79844
2009-08-23 08:52:09 +00:00
Daniel Dunbar 0ad0c21248 Tests for C++ lex.trigraph, patch by Mats!
llvm-svn: 79841
2009-08-23 08:22:33 +00:00
Chris Lattner 817b3012bc use errs() instead of cerr.
llvm-svn: 79829
2009-08-23 05:57:09 +00:00
Douglas Gregor 33870d908f CMake: Improve installation of Clang
- Install clang-cc into libexec
  - Install headers into lib/clang/<version>/include
  - Don't install other clang-based tools (clang-wpa, clang-index, etc.)

llvm-svn: 79827
2009-08-23 05:28:29 +00:00
Douglas Gregor 76d8c5725f Don't install Clang libraries.
llvm-svn: 79824
2009-08-23 05:02:18 +00:00
Chris Lattner 84cffc22d4 adjust for raw_fd_ostream api change.
llvm-svn: 79809
2009-08-23 02:59:41 +00:00
Anders Carlsson 622ddae92b Whoops, comment this out for now. I'll fix it shortly.
llvm-svn: 79806
2009-08-23 01:28:08 +00:00
Anders Carlsson d606de72ab More work towards zero-initializing structs that contain member pointers in constant expressions.
llvm-svn: 79805
2009-08-23 01:25:01 +00:00
Anders Carlsson beac2bef4d Remove the PaddingFields member from CGRecordLayout, it wasn't used anyway.
llvm-svn: 79799
2009-08-23 01:01:04 +00:00
Eli Friedman 16c209610c Catch a few more cases of illegal comparisons.
llvm-svn: 79793
2009-08-23 00:27:47 +00:00
Chris Lattner d99bd52c73 Eli points out that we really must diagnose "void* > 0" as an extension.
Explicitly add it as an EXTENSION instead of an EXTWARN so that it only
comes out with -pedantic.  Thanks Eli!

llvm-svn: 79791
2009-08-23 00:03:44 +00:00
Anders Carlsson faeccc622f Handle CK_NullToMemberPointer casts in the constant expr emitter.
llvm-svn: 79790
2009-08-23 00:02:11 +00:00
Anders Carlsson 3b0c5dcdd2 Change the constant expression emitter to look at the cast kind for to-union casts.
llvm-svn: 79789
2009-08-22 23:54:44 +00:00
Anders Carlsson d7923c6ed7 Add CK_NullToMemberPointer and CK_BaseToDerivedMemberPointer cast kinds. Make -ast-dump print out the cast kinds of cast expressions.
llvm-svn: 79787
2009-08-22 23:33:40 +00:00
Anders Carlsson 9cedbefb24 Add a -fno-elide-constructors option to clang-cc.
llvm-svn: 79782
2009-08-22 22:30:33 +00:00
Fariborz Jahanian a83c016d22 Type of a ?: expression whose either expression is a built-in 'id'
type is 'id' type.

llvm-svn: 79781
2009-08-22 22:27:17 +00:00
Fariborz Jahanian cbf10f5de5 Don't issue warning on multiple selector found when
selector name is for a @selector expression.

llvm-svn: 79776
2009-08-22 21:13:55 +00:00
Fariborz Jahanian 780db208e0 Removed couple of FIXME comments.
llvm-svn: 79757
2009-08-22 20:32:44 +00:00
Fariborz Jahanian 1b5d6133f9 Removed -Wundeclared-selector and -Wreadonly-setter-attrs from
-Wmost group (too noisy). Placed warning on parameter type
misatch between methods in sub and super class under
-Wsuper-class-method-mismatch (also too noisy).

llvm-svn: 79745
2009-08-22 19:24:56 +00:00
Chris Lattner f8344dbfdd tweak some pointer sema checking stuff (which was added to implement PR4175) to
avoid emitting a warning on "someptr > 0".  This is obviously questionable (they 
could use != instead) but is reasonable, and the warning "ordered comparison 
between pointer and integer" didn't make a ton of sense because 0 is a valid 
null pointer constant.

Just silence the warning in this case, it is unlikely to indicate a bug.

llvm-svn: 79743
2009-08-22 18:58:31 +00:00
Edward O'Callaghan 856e4ff78d Second half of, clang, AuroraUX toolchain support.
llvm-svn: 79713
2009-08-22 01:06:46 +00:00
Douglas Gregor c45a40afd1 Implement delayed parsing for member function templates. Fixes PR4608.
llvm-svn: 79709
2009-08-22 00:34:47 +00:00
Fariborz Jahanian 8ba39c04ae Updated statuc page to reflect recent implementations
of section 12 [special member functions]

llvm-svn: 79704
2009-08-22 00:18:52 +00:00
Ted Kremenek cdf5f4aa7b Remove 'AnalysisContext::setDecl()', as we the Decl associated with an
AnalysisContext should never change. Along the way, propagate some constness
around.

llvm-svn: 79701
2009-08-21 23:58:43 +00:00
Ted Kremenek 00aeae98b5 Constify LocationContext* (parent) and Stmt* fields in LocationContext.
llvm-svn: 79700
2009-08-21 23:39:58 +00:00
Douglas Gregor da21f27e09 Add test taking the address of a member function template and converting it to a member pointer.
llvm-svn: 79699
2009-08-21 23:32:45 +00:00
Douglas Gregor 1d08135537 Update Clang C++ status to better reflect what is implemented.
llvm-svn: 79695
2009-08-21 23:27:46 +00:00
Ted Kremenek 608677a2e1 Remove 'SelfRegion' field from both BasicStoreManager and RegionStoreManager.
SelfRegion represented the object bound to 'self' (when analyzing Objective-C
methods) upon entry to a method. Having this region stored on the side ignores
the current stack frame that we might be analyzing (among other things), and is
a problem for interprocedural analysis.

For RegionStoreManager, the value for SelfRegion is just lazily created.

For BasicStoreManager, the value for SelfRegion is bound eagerly to 'self', but
no explicit tracking of SelfRegion on the side is made.

As part of this change, remove the restriction in BasicStoreManager that we only
track ivars for 'self'. This shouldn't actually change anything in terms of
precision, and simplifies the logic.

llvm-svn: 79694
2009-08-21 23:25:54 +00:00
Douglas Gregor 05155d8d7b Implement conversion function templates, along with the ability to use
template argument deduction from a conversion function (C++
[temp.deduct.conv]) with implicit conversions.

llvm-svn: 79693
2009-08-21 23:19:43 +00:00
Mike Stump 0b8c5ae7af Calculate the address point for a vtable better, and start fleshing out the vcall
calculations better.

llvm-svn: 79687
2009-08-21 23:09:30 +00:00
Douglas Gregor e839486de9 Refactor instantiation of destructors to use the common CXXMethodDecl
code, fixing a problem where instantiations of out-of-line destructor
definitions would had the wrong lexical context.

Introduce tests for out-of-line definitions of the constructors,
destructors, and conversion functions of a class template partial
specialization.

llvm-svn: 79682
2009-08-21 22:43:28 +00:00
Fariborz Jahanian 8adc973483 Patch to ir-gen copy assigning array members when synthesizing
a copy assignment operator function.

llvm-svn: 79681
2009-08-21 22:34:55 +00:00
Ted Kremenek 14536f6ee0 Add LocationContext* field to VarRegion. This is needed for interprocedural analysis.
llvm-svn: 79680
2009-08-21 22:28:32 +00:00
Douglas Gregor 25e8e363df Add test for out-of-line definition of a conversion function
llvm-svn: 79679
2009-08-21 22:23:24 +00:00
Douglas Gregor e5bbb7d4ef Fix parsing for out-of-line definitions of constructors and
destructors of class templates.

llvm-svn: 79678
2009-08-21 22:16:40 +00:00
Douglas Gregor 5ed5ae476e Introduce support for constructor templates, which can now be declared
and will participate in overload resolution. Unify the instantiation
of CXXMethodDecls and CXXConstructorDecls, which had already gotten
out-of-sync.

llvm-svn: 79658
2009-08-21 18:42:58 +00:00
Fariborz Jahanian 5626384384 Patch to provide ir-gen support in copying array members
when synthesizing a copy constructor. Arrays's base element
may have a trivial or non-trivial copy constructor.

llvm-svn: 79653
2009-08-21 18:30:26 +00:00
Mike Stump 62b6680def Testcase for a recent checkin.
llvm-svn: 79646
2009-08-21 18:05:02 +00:00
Chris Lattner 3ede522ca9 remove a dead warning.
llvm-svn: 79641
2009-08-21 17:15:06 +00:00
Fariborz Jahanian 7481bd88bb Array member construction in prologue of user-declared
constructors.

llvm-svn: 79640
2009-08-21 17:09:38 +00:00
Fariborz Jahanian 6c9e5a2b9e Introduce getConstantArrayElementCount API and use it in
construction/destruction of array members.

llvm-svn: 79637
2009-08-21 16:31:06 +00:00
Mike Stump c947a87655 Fix typo.
llvm-svn: 79632
2009-08-21 15:22:41 +00:00
Zhongxing Xu 54f87880e7 Eagerly bind 'self' to SelfRegion. Thus we do not need to get code decl from
GRStateManager to create the SelfRegion.

llvm-svn: 79628
2009-08-21 13:25:15 +00:00
Daniel Dunbar 145c59d079 Fix commentos
llvm-svn: 79610
2009-08-21 08:24:45 +00:00
Daniel Dunbar b3252cc860 Fix refacto.
llvm-svn: 79609
2009-08-21 08:22:12 +00:00
Sanjiv Gupta 91f8cd9a91 Reversing part of 79544.
Need to find a new way to do target specific semanitc checking.

llvm-svn: 79596
2009-08-21 04:58:03 +00:00
Zhongxing Xu 71900fbac7 Get the code decl from the initial location context.
llvm-svn: 79591
2009-08-21 03:05:36 +00:00
Zhongxing Xu 871918c76f Get the code decl from the initial location context.
llvm-svn: 79590
2009-08-21 02:58:11 +00:00
Daniel Dunbar 6d886b056a gcc told me to add these.
llvm-svn: 79589
2009-08-21 02:43:05 +00:00
Zhongxing Xu 6be1a4e832 Tie the local check NSErrorCheck to a Decl to pave the way
to untie the ExplodedGraph from a specific Decl.

llvm-svn: 79588
2009-08-21 02:18:44 +00:00
Mike Stump a002945a20 We now support overriding base functions in vtables. WIP.
llvm-svn: 79587
2009-08-21 01:45:00 +00:00
Daniel Dunbar b789d61a6e Remove comma at the end of enumerator list.
llvm-svn: 79586
2009-08-21 00:54:25 +00:00
Argyrios Kyrtzidis 6032ef1aa3 Remove TypeSpecStartLocation from VarDecl/FunctionDecl/FieldDecl, and use DeclaratorInfo to get this information.
llvm-svn: 79584
2009-08-21 00:31:54 +00:00
Douglas Gregor a8eed7dabb Make the new Objective-C "id" and "Class" redefinition types special
types that are preloaded by the PCH file. Fixes PCH breakage
introduced in r79248.

llvm-svn: 79583
2009-08-21 00:27:50 +00:00
Douglas Gregor 97628d6a4c Implement support for calling member function templates, which involves:
- Allowing one to name a member function template within a class
  template and on the right-hand side of a member access expression.
  - Template argument deduction for calls to member function templates.
  - Registering specializations of member function templates (and
  finding them later).

llvm-svn: 79581
2009-08-21 00:16:32 +00:00
Ted Kremenek d5eaa05a7f Center the dragon.
llvm-svn: 79580
2009-08-21 00:04:20 +00:00
Ted Kremenek 0370089637 Make the dragon a link...
llvm-svn: 79577
2009-08-20 23:49:30 +00:00
Ted Kremenek 7c6b2faea8 Include LLVM logo ... because dragons are cool.
llvm-svn: 79576
2009-08-20 23:48:37 +00:00
Fariborz Jahanian 9c0d05454a Added member arrays to more tests now that ir-gen supports it.
llvm-svn: 79575
2009-08-20 23:33:31 +00:00
Fariborz Jahanian 1a606ab12a Patch to ir-gen destruction of array member elements in revers order
of their construction.

llvm-svn: 79571
2009-08-20 23:02:58 +00:00
Douglas Gregor 3447e76762 Initial support for parsing and representation of member function templates.
llvm-svn: 79570
2009-08-20 22:52:58 +00:00
Fariborz Jahanian 9c83720d17 ir-gen patch to destruct array members. WIP.
llvm-svn: 79565
2009-08-20 20:54:15 +00:00
Ted Kremenek a298c0ee3c Update checker build.
llvm-svn: 79559
2009-08-20 18:55:46 +00:00
Douglas Gregor 468535e552 Fix a typo in a variable name
llvm-svn: 79558
2009-08-20 18:46:05 +00:00
Daniel Dunbar 4cd55b0507 Don't install wpa or index-test tools.
llvm-svn: 79557
2009-08-20 18:45:52 +00:00
Sanjiv Gupta b841d1baa1 Issue an error if the user specifies parameters in a function marked as ISR.
llvm-svn: 79544
2009-08-20 17:48:52 +00:00
Fariborz Jahanian 9a84665921 Using "ObjCImplicitSetterGetterRefExpr" instead of "ObjCImplctSetterGetterRefExpr".
A field rename and more comments.

llvm-svn: 79537
2009-08-20 17:02:02 +00:00
Mike Stump cae6178b3b Refine vbase offsets for the inductive case. Things are now starting
to come together nicely.  Still a WIP.

llvm-svn: 79521
2009-08-20 07:22:17 +00:00
John McCall 950aac085d Add syntax examples for the friend declaration types.
Remove an assert trivialized by dominating code.

llvm-svn: 79520
2009-08-20 07:19:42 +00:00
Douglas Gregor ebe1010b0f Refactor the instantiation of statements into a generic tree
transformation.

llvm-svn: 79519
2009-08-20 07:17:43 +00:00
Chris Lattner f6bad8690f Improve the Getting Started and Hacking web pages, patch by
John Thompson!

llvm-svn: 79518
2009-08-20 06:17:11 +00:00
Ted Kremenek 815fbb6026 retain/release checker: Treat NSObject method '-awakeAfterUsingCoder:'
just as if it behaved like an init function.  This fixes <rdar://problem/7129086>.

llvm-svn: 79515
2009-08-20 05:13:36 +00:00
Ted Kremenek e95b439cc3 Make this test case more portable by removing its dependency on system header files.
llvm-svn: 79511
2009-08-20 04:48:23 +00:00
Eli Friedman 629ffb9ad3 Fix bit-field promotion to be a bit closer to the behavior of gcc.
Patch by Enea Zaffanella, with some simplifications/corrections to
isPromotableBitField by me.

llvm-svn: 79510
2009-08-20 04:21:42 +00:00
Zhongxing Xu 1a3ec57520 If the 'while' has an empty body, set the body to the continue target block.
Although this does not make the CFG more correct, it makes the CFG more 
beautiful without multiple roots.

llvm-svn: 79509
2009-08-20 03:21:49 +00:00
Zhongxing Xu a778b02e89 If the body of for loop is empty, set its body to the continue target.
Otherwise we get a wrong CFG.

llvm-svn: 79507
2009-08-20 02:56:48 +00:00
Mike Stump 2220447adc Ensure we don't output repeated vbase offsets. I have a testcase for
this, but need to fixup the actual offset value before I can check it
in.  WIP.

llvm-svn: 79506
2009-08-20 02:11:48 +00:00
John McCall 87a44eb98a Basic nested-template implementation.
llvm-svn: 79504
2009-08-20 01:44:21 +00:00
Zhongxing Xu 068928b2a6 Rename: ProgramPoint::getContext() => ProgramPoint::getLocationContext().
llvm-svn: 79502
2009-08-20 01:23:34 +00:00
Fariborz Jahanian dd46eb770f Test case for my last patch plus a minor clean up.
llvm-svn: 79500
2009-08-20 01:01:06 +00:00
Ted Kremenek d982f001c9 retain/release checker: Special case handling of CFAttributedStringSetAttribute,
fixing <rdar://problem/7152619>. Along the way, merge test cases in
'test/Analysis/rdar-6539791.c' into 'test/Analysis/retain-release.m'.

llvm-svn: 79499
2009-08-20 00:57:22 +00:00
Fariborz Jahanian eeb0e57247 ir-gen for multi-dimensional array construction. WIP.
llvm-svn: 79497
2009-08-20 00:15:15 +00:00
Ted Kremenek eebcf574dd Enhance diagnostics concerning attribute 'ns_returns_retained' and 'cf_returns_retained' to present the range of the attribute and have the diagnostic location be the declaration that the attribute was falsely attached to. This solves the problem where these diagnostics were being suppressed when these attributes were wrapped in a macro that was defined in a system header.
llvm-svn: 79496
2009-08-19 23:56:48 +00:00
Argyrios Kyrtzidis 20cf19141f Keep track of the right paren ')' source location in a function declarator.
llvm-svn: 79489
2009-08-19 23:14:54 +00:00
Fariborz Jahanian a8fe2c26a8 Removed unneeded code for break/continue statements in
manufactured for-loop per Anders feedback (thanks).

- Fariborz

llvm-svn: 79466
2009-08-19 21:10:38 +00:00
Fariborz Jahanian 431c883287 ir-gen for constructing arrays as non-static data members. WIP.
llvm-svn: 79464
2009-08-19 20:55:16 +00:00
Eli Friedman a9c3d71b59 Add TCE target to clang; patch by Mikael Lepistö.
llvm-svn: 79462
2009-08-19 20:47:07 +00:00
Daniel Dunbar 62c850fb8f Remove now unnecessary helper methods.
llvm-svn: 79460
2009-08-19 20:32:38 +00:00
Daniel Dunbar 58bc48c14e Switch to SmallString::str from SmallString::c_str.
- Several FIXMEs due to non-Twinification of IRBuilder.

llvm-svn: 79455
2009-08-19 20:04:03 +00:00
Daniel Dunbar dec484abfb Convert parts of Rewriter to StringRef based API.
- Please accept my sincere apologies for the gratuitous elimination of code
   duplication, manual string length counting, unnecessary strlen calls, etc.

llvm-svn: 79448
2009-08-19 19:10:30 +00:00