summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* Check in some design documents to centralize ideas around region store and the Zhongxing Xu2009-03-261-0/+53
| | | | | | analysis engine. llvm-svn: 67747
* Sanity-check argument to indirect goto.Eli Friedman2009-03-262-3/+15
| | | | llvm-svn: 67746
* hopefully fix VC++ build error.Chris Lattner2009-03-261-0/+1
| | | | llvm-svn: 67741
* most of this is plumbing to get CompileOptions down into Chris Lattner2009-03-267-35/+37
| | | | | | | CodeGenModule. Once there, add a new NoCommon option to it and implement -fno-common. llvm-svn: 67735
* make this self contained, declare everything as 'class'.Chris Lattner2009-03-261-1/+5
| | | | llvm-svn: 67734
* sort items.Chris Lattner2009-03-261-13/+13
| | | | llvm-svn: 67733
* add driver and clang-cc to project.Chris Lattner2009-03-261-85/+175
| | | | llvm-svn: 67732
* analyzer infrastructure: make a bunch of changes to symbolic expressions thatTed Kremenek2009-03-2622-579/+571
| | | | | | | | | | | | | | | | Zhongxing and I discussed by email. Main changes: - Removed SymIntConstraintVal and SymIntConstraint - Added SymExpr as a parent class to SymbolData, SymSymExpr, SymIntExpr - Added nonloc::SymExprVal to wrap SymExpr - SymbolRef is now just a typedef of 'const SymbolData*' - Bunch of minor code cleanups in how some methods were invoked (no functionality change) This changes are part of a long-term plan to have full symbolic expression trees. This will be useful for lazily evaluating complicated expressions. llvm-svn: 67731
* Set the access specifier for templates inside classes.Anders Carlsson2009-03-262-2/+13
| | | | llvm-svn: 67726
* Factor the member access specifier setting code into its own function. No ↵Anders Carlsson2009-03-263-27/+49
| | | | | | intended functionality change. llvm-svn: 67725
* Handle parsing of templates in member declarations. Pass the AccessSpecifier ↵Anders Carlsson2009-03-267-11/+24
| | | | | | | | all the way down to ActOnClassTemplate. Doug, Sebastian: Plz review! :) llvm-svn: 67723
* Check that the access specifier of a member redeclaration is the same as the ↵Anders Carlsson2009-03-263-3/+47
| | | | | | original declaration. llvm-svn: 67722
* Fix for PR3869: actually enforce that the argument of an indirect goto Eli Friedman2009-03-262-2/+8
| | | | | | is of type void*. I'll try to add the appropriate checking later. llvm-svn: 67721
* The injected-class-name of class templates and class templateDouglas Gregor2009-03-266-5/+64
| | | | | | | | | | | | | | | | | | specializations can be treated as a template. Finally, we can parse and process the first implementation of Fibonacci I wrote! Note that this code does not handle all of the cases where injected-class-names can be treated as templates. In particular, there's an ambiguity case that we should be able to handle (but can't), e.g., template <class T> struct Base { }; template <class T> struct Derived : Base<int>, Base<char> { typename Derived::Base b; // error: ambiguous typename Derived::Base<double> d; // OK }; llvm-svn: 67720
* Tighten the setAccess assert. We now allow AS_none if the decl contex is not ↵Anders Carlsson2009-03-254-6/+25
| | | | | | | | a C++ record decl. Also, fix fallout from the change. llvm-svn: 67717
* Implement template instantiation for static data members of classDouglas Gregor2009-03-255-64/+172
| | | | | | | | | | | | | | | | | | templates, including in-class initializers. For example: template<typename T, T Divisor> class X { public: static const T value = 10 / Divisor; }; instantiated with, e.g., X<int, 5>::value to get the value '2'. llvm-svn: 67715
* More for for objc2's ivar layout map (currentlyFariborz Jahanian2009-03-251-3/+22
| | | | | | is not in use). llvm-svn: 67713
* Pass access specifiers through to member classes and member enums.Douglas Gregor2009-03-258-15/+24
| | | | llvm-svn: 67710
* Fix notes regarding the instantiation of member classes (and test 'em).Douglas Gregor2009-03-252-3/+7
| | | | llvm-svn: 67708
* Instantiation for member classes of class templates. Note that onlyDouglas Gregor2009-03-259-79/+273
| | | | | | | | | | | the declarations of member classes are instantiated when the owning class template is instantiated. The definitions of such member classes are instantiated when a complete type is required. This change also introduces the injected-class-name into a class template specialization. llvm-svn: 67707
* fix PR3880, fixing a comma swallowing bug handling macros that only takeChris Lattner2009-03-252-0/+11
| | | | | | ... arguments. llvm-svn: 67706
* remove some dead code. ArgTokens can never be empty, because it is always Chris Lattner2009-03-251-9/+0
| | | | | | | | | | | | terminated with an EOF token. The condition it is trying to check for is handled by this code above. // Empty arguments are standard in C99 and supported as an extension in // other modes. if (ArgTokens.empty() && !Features.C99) Diag(Tok, diag::ext_empty_fnmacro_arg); llvm-svn: 67705
* CMake: Also include header files in target when the generator is 'XCode'.Ted Kremenek2009-03-251-2/+2
| | | | llvm-svn: 67703
* It doesn't make sense to set the access specifier to AS_none (I think)Anders Carlsson2009-03-251-1/+4
| | | | llvm-svn: 67700
* Remove -f__block as codegen for __block variables should be solid.Mike Stump2009-03-253-55/+1
| | | | llvm-svn: 67697
* Fixup codegen for block literals that bleed copy/dispose informationMike Stump2009-03-253-6/+13
| | | | | | from previous block literals. llvm-svn: 67696
* Update to account for the great driver renaming.Mike Stump2009-03-251-1/+1
| | | | llvm-svn: 67695
* Predicate to detect when a RecordDecl is really the injected-class-nameDouglas Gregor2009-03-253-0/+22
| | | | llvm-svn: 67687
* Stub out some declaration kinds that cannot ever be instantiatedDouglas Gregor2009-03-251-0/+14
| | | | llvm-svn: 67686
* Fix parsing of template classes prefixed by nested-name-specifiersDouglas Gregor2009-03-252-2/+22
| | | | llvm-svn: 67685
* Minor refactoring to eliminate an extra switch during template instantiationDouglas Gregor2009-03-251-3/+9
| | | | llvm-svn: 67684
* Driver: Implement Darwin_X86 tool chain level argument translation.Daniel Dunbar2009-03-252-5/+109
| | | | | | | | | | | | | | | | | | | | - This is really gross, but its the easiest way to match gcc. Once we are confident in the driver, we can try and push these translations down into tools. - No test cases for this yet, it's hard to see the effects of these translations before the gcc tool argument translation is pulled over. - Interaction with "unused argument" warning hasn't been worked out yet. - <rdar://problem/6717359> [driver] implement toolchain specific argument translation. "It's horrible in here." llvm-svn: 67683
* Driver: Handle -Xarch_, including warning for nasty -Xarch_ use casesDaniel Dunbar2009-03-253-2/+53
| | | | | | | we aren't going to support. For example: clang -Xarch_i386 -S -Xarch_i386 -o -Xarch_i386 myi386asm.s ... llvm-svn: 67680
* Driver: Replace Option::ForwardToGCC by Option::DriverOption (whichDaniel Dunbar2009-03-253-11/+8
| | | | | | matches the flag in Options.def). llvm-svn: 67679
* This patch adds two more SymbolData subclasses: SymIntExpr and SymSymExpr, forZhongxing Xu2009-03-257-28/+152
| | | | | | | | representing symbolic expressions like 'x'+3 and 'x'+'y'. The design is subjected to change later when we fix the class hierarchy of symbolic expressions. llvm-svn: 67678
* Driver: Fix typo in JoinedAndSeparateArg::render.Daniel Dunbar2009-03-251-1/+1
| | | | llvm-svn: 67677
* Driver: Prep for tool chain specific argument translation.Daniel Dunbar2009-03-2513-170/+265
| | | | | | | | | | | | | | | | - Lift ArgList to a base class for InputArgList and DerivedArgList. - This is not a great decomposition, but it does embed the translation into the type system, and keep things efficient for tool chains that don't want to do any translation. - No intended functionality change. Eventually I hope to get rid of tool chain specific translation and have each tool do the right thing, but for now this is the easiest way to match gcc precisely (which is good for testing). llvm-svn: 67676
* simplify some conditionals, don't copy LangOptions.Chris Lattner2009-03-251-11/+15
| | | | llvm-svn: 67674
* gcc 4.3 finds my use of ^ suspicious.Daniel Dunbar2009-03-251-1/+1
| | | | llvm-svn: 67673
* Improve handling of base initializers. We now parse initializers in out of ↵Anders Carlsson2009-03-256-2/+33
| | | | | | | | | | | | | | | | | | | | | | line decls, such as: class C { C() { } int a; }; C::C() : a(10) { } We also diagnose when initializers are used on declarations that aren't constructors: t.cpp:1:10: error: only constructors take base initializers void f() : a(10) { } ^ Doug and/or Sebastian: I'd appreciate a review, especially the nested-name-spec test results (from the looks of it we now match gcc in that test.) llvm-svn: 67672
* Add the .td files and remove the .def files from the Xcode project.Anders Carlsson2009-03-251-12/+16
| | | | llvm-svn: 67671
* Turn on -analyzer-eagerly-assume by default when using 'clang-cc' to performTed Kremenek2009-03-251-0/+1
| | | | | | static analysis. llvm-svn: 67665
* Template instantiation for conversion functionsDouglas Gregor2009-03-252-0/+42
| | | | llvm-svn: 67664
* Turn on '-analyzer-eagerly-assume' by default in ccc for the static analyzer.Ted Kremenek2009-03-251-1/+1
| | | | llvm-svn: 67663
* Move template instantiation for expressions into a separate fileDouglas Gregor2009-03-253-401/+417
| | | | llvm-svn: 67660
* In Parser::ParseClassSpecifier, don't conflate a NULL declaration withDouglas Gregor2009-03-254-36/+35
| | | | | | | | failure to perform a declaration. Instead, explicitly note semantic failures that occur during template parsing with a DeclResult. Fixes PR3872. llvm-svn: 67659
* Parse deleted function definitions and hook them up to Doug's machinery.Sebastian Redl2009-03-247-10/+74
| | | | llvm-svn: 67653
* Encode language.Devang Patel2009-03-241-4/+15
| | | | llvm-svn: 67650
* Type::isObjectType now implements the (more sensible) C++ definitionDouglas Gregor2009-03-245-11/+14
| | | | | | | | | | | | | | | | | | of "object type" rather than the C definition of "object type". The difference is that C's "object type" excludes incomplete types such as struct X; However, C's definition also makes it far too easy to use isObjectType as a means to detect incomplete types when in fact we should use other means (e.g., Sema::RequireCompleteType) that cope with C++ semantics, including template instantiation. I've already audited every use of isObjectType and isIncompleteType to ensure that they are doing the right thing for both C and C++, so this is patch does not change any functionality. llvm-svn: 67648
* Driver: Handle -flto, -O4, and tweak -emit-llvm to match llvm-gcc.Daniel Dunbar2009-03-245-8/+46
| | | | | | | | | | | | - -emit-llvm no longer changes what compilation steps are done. - -emit-llvm and -emit-llvm -S write output files with .o and .s suffixes, respectively. - <rdar://problem/6714125> clang-driver should support -O4 and -flto, like llvm-gcc llvm-svn: 67645
OpenPOWER on IntegriCloud