summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
Commit message (Collapse)AuthorAgeFilesLines
* Introduction the DeclarationName class, as a single, general method ofDouglas Gregor2008-11-171-11/+11
| | | | | | | | representing the names of declarations in the C family of languages. DeclarationName is used in NamedDecl to store the name of the declaration (naturally), and ObjCMethodDecl is now a NamedDecl. llvm-svn: 59441
* Fix PR3077: tokens that come from macro expansions whose macro wasChris Lattner2008-11-161-1/+1
| | | | | | | defined in a system header should be treated as system header tokens even if they are instantiated in a different place. llvm-svn: 59418
* Add a new expression node, CXXOperatorCallExpr, which expresses aDouglas Gregor2008-11-141-1/+12
| | | | | | | | | | | | | | | | | | | function call created in response to the use of operator syntax that resolves to an overloaded operator in C++, e.g., "str1 + str2" that resolves to std::operator+(str1, str2)". We now build a CXXOperatorCallExpr in C++ when we pick an overloaded operator. (But only for binary operators, where we actually implement overloading) I decided *not* to refactor the current CallExpr to make it abstract (with FunctionCallExpr and CXXOperatorCallExpr as derived classes). Doing so would allow us to make CXXOperatorCallExpr a little bit smaller, at the cost of making the argument and callee accessors virtual. We won't know if this is going to be a win until we can parse lots of C++ code to determine how much memory we'll save by making this change vs. the performance penalty due to the extra virtual calls. llvm-svn: 59306
* Don't build identifiers for C++ constructors, destructors, orDouglas Gregor2008-11-121-2/+29
| | | | | | | | | | | | | | conversion functions. Instead, we just use a placeholder identifier for these (e.g., "<constructor>") and override NamedDecl::getName() to provide a human-readable name. This is one potential solution to the problem; another solution would be to replace the use of IdentifierInfo* in NamedDecl with a different class that deals with identifiers better. I'm also prototyping that to see how it compares, but this commit is better than what we had previously. llvm-svn: 59193
* Some cleanups to the declaration/checking of overloaded operators in C++. ↵Douglas Gregor2008-11-101-1/+1
| | | | | | Thanks to Sebastian for the review llvm-svn: 58986
* Parsing, ASTs, and semantic analysis for the declaration of overloadedDouglas Gregor2008-11-061-0/+11
| | | | | | | | | operators in C++. Overloaded operators can be called directly via their operator-function-ids, e.g., "operator+(foo, bar)", but we don't yet implement the semantics of operator overloading to handle, e.g., "foo + bar". llvm-svn: 58817
* Reclaim some bits in IdentifierInfo, for later use as overloaded operator names.Douglas Gregor2008-11-061-2/+1
| | | | llvm-svn: 58806
* More fallout from r58501: primary fix is some more corrections to make Eli Friedman2008-11-022-9/+20
| | | | | | | | | | | | | | | | | the types for size_t and ptrdiff_t more accurate. I think all of these are correct, but please compare the defines for __PTRDIFF_TYPE__ and __SIZE_TYPE__ to gcc to double-check; this particularly applies to those on BSD variants, since I'm not sure what they do here; I assume here that they're the same as on Linux. Fixes wchar_t to be "int", not "unsigned int" (which I think is correct on everything but Windows). Fixes ptrdiff_t to be "int" rather than "short" on PIC16; "short" is an somewhat strange choice because it normally gets promoted, and it's not consistent with the choice for size_t. llvm-svn: 58556
* Fix a bug that was introduced in 58501. Ideally I think we should force all ↵Anders Carlsson2008-10-311-1/+1
| | | | | | targets to set these values and not have defaults. llvm-svn: 58511
* Made the mechanism of defining preprocessor defs for maxint, ptrdiff_t, wcharSanjiv Gupta2008-10-312-4/+15
| | | | | | | | | | etc more generic. For some targets, long may not be equal to pointer size. For example: PIC16 has int as i16, ptr as i16 but long as i32. Also fixed a few build warnings in assert() functions in CFRefCount.cpp, CGDecl.cpp, SemaDeclCXX.cpp and ParseDeclCXX.cpp. llvm-svn: 58501
* Rename Characteristic_t to CharacteristicKindChris Lattner2008-10-271-1/+1
| | | | llvm-svn: 58224
* Fix the definition of __builtin_va_list on PPC, which was set to the V4 ABI, ↵Chris Lattner2008-10-271-2/+4
| | | | | | | | not the darwin or AIX abis. This fixes PR2904. llvm-svn: 58222
* CMake: Builds and installs clang binary and libs (no docs yet). ItOscar Fuentes2008-10-261-0/+13
| | | | | | must be under the `tools' subdirectory of the LLVM *source* tree. llvm-svn: 58180
* fix rdar://6288301: custom warnings don't respect -Werror.Chris Lattner2008-10-171-2/+8
| | | | llvm-svn: 57731
* Add basic FreeBSD target support, patch by Roman Divacky!Chris Lattner2008-10-161-0/+51
| | | | llvm-svn: 57645
* Add 'x' constraint character.Anders Carlsson2008-10-061-0/+1
| | | | llvm-svn: 57198
* Add the 'y' assembler constraint.Anders Carlsson2008-10-061-0/+1
| | | | llvm-svn: 57144
* miscellaneous cleanupsChris Lattner2008-10-051-22/+30
| | | | llvm-svn: 57140
* move __FLT_EVAL_METHOD__, __FLT_RADIX__, and __DECIMAL_DIG__ intoChris Lattner2008-10-051-14/+1
| | | | | | target indep code. llvm-svn: 57139
* it helps when I save the file before testing and committing.Chris Lattner2008-10-051-27/+1
| | | | llvm-svn: 57138
* suck the rest of the FP macros out of the targets into the PPChris Lattner2008-10-051-99/+9
| | | | llvm-svn: 57137
* start moving fp macros overChris Lattner2008-10-051-20/+0
| | | | llvm-svn: 57134
* move a bunch more integer sizing out of target-specific code intoChris Lattner2008-10-051-41/+1
| | | | | | | | | | target indep code. Note that this changes functionality on PIC16: it defines __INT_MAX__ correctly for it, and it changes sizeof(long) to 16-bits (to match the size of pointer). llvm-svn: 57132
* eliminate __USER_LABEL_PREFIX__ from the Targets.cpp file, start movingChris Lattner2008-10-051-16/+2
| | | | | | integer size #defines over to the Preprocessor. llvm-svn: 57130
* Implement PR2773, support for __USER_LABEL_PREFIX__Chris Lattner2008-10-051-0/+1
| | | | llvm-svn: 57127
* Handle minor version numbers in __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__Chris Lattner2008-09-301-7/+19
| | | | | | like "10.3.9" llvm-svn: 56873
* Add missing include for use of atoi.Nick Lewycky2008-09-301-0/+1
| | | | llvm-svn: 56836
* The definition of __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ followsChris Lattner2008-09-301-7/+21
| | | | | | | the target triple on darwin. For example i386-apple-darwin9 -> 1050 because darwin9 is "10.5". llvm-svn: 56826
* define __PASCAL_STRINGS__ whenever -fpascal-strings is enabled.Chris Lattner2008-09-301-4/+1
| | | | llvm-svn: 56824
* __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ is a darwin-specific #defineChris Lattner2008-09-301-1/+2
| | | | llvm-svn: 56822
* Make some methods const, add some helpers to FullSourceLoc,Chris Lattner2008-09-291-5/+39
| | | | | | and add a dump method to FullSourceLoc! Patch by Nico Weber! llvm-svn: 56806
* whitespace and comment changes, to fix grammar and 80 col violationsNico Weber2008-09-291-4/+4
| | | | llvm-svn: 56776
* clean up a bunch of fixme's I added, by moving Chris Lattner2008-09-261-3/+3
| | | | | | DirectoryLookup::DirType into SourceManager.h llvm-svn: 56692
* Fix the rest of rdar://6243860 hopefully. This requires changing FileIDInfoChris Lattner2008-09-261-3/+3
| | | | | | | | | | | to whether the fileid is a 'extern c system header' in addition to whether it is a system header, most of this is spreading plumbing around. Once we have that, PPLexerChange bases its "file enter/exit" notifications to PPCallbacks to base the system header state on FileIDInfo instead of HeaderSearch. Finally, in Preprocessor::HandleIncludeDirective, mirror logic in GCC: the system headerness of a file being entered can be set due to the #includer or the #includee. llvm-svn: 56688
* Add x86_64 Linux target.Daniel Dunbar2008-09-231-0/+16
| | | | | | - PR2824 llvm-svn: 56491
* Add --suppress-system-warnings (on by default, use =0 to disable)Daniel Dunbar2008-09-121-1/+3
| | | | | | | | | - For investigating warnings in system headers / builtins. - Currently also enables the behavior that allows silent redefinition of types in system headers. Conceptually these are separate but I didn't feel it was worth two options (or changing LangOptions). llvm-svn: 56163
* bool is not an extension in C++Douglas Gregor2008-09-111-1/+1
| | | | llvm-svn: 56103
* Per PR2773, define __USER_LABEL_PREFIX__ for x86-32 Linux and Windows.Eli Friedman2008-09-061-0/+2
| | | | | | | | | | If you're on some other platform, the correct definition for this macro would be appreciated; to find the correct definition, just run the following command: echo | gcc -dM -E - | grep USER_LABEL_PREFIX llvm-svn: 55869
* Stop asserting in TargetInfo::validateInputConstraintDaniel Dunbar2008-08-251-4/+4
| | | | | | - Sema gives a perfectively nice error message on invalid constraints. llvm-svn: 55310
* Add dragonfly target support, patch by Sascha WildnerChris Lattner2008-08-231-0/+28
| | | | llvm-svn: 55241
* Add TargetInfo::useNeXTRuntimeAsDefaultDaniel Dunbar2008-08-231-0/+7
| | | | | | | | - Used to autoselect runtime when neither -fnext-runtime nor -fgnu-runtime is specified. - Default impl is false, all darwin targets set it to true. llvm-svn: 55231
* Remove duplicate define from Windows-x86 target.Eli Friedman2008-08-211-1/+0
| | | | llvm-svn: 55101
* Initial implementation of Windows x86 target; at the moment, the only Eli Friedman2008-08-211-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | difference from generic x86 is the defines. The rest is non-trivial to implement. I'm not planning on adding any more targets myself; if there are any targets anyone is currently using that are missing, feel free to add them, or ask me to add them. This concludes the work I'm planning for the TargetInfo implementations at the moment; all the other issues with TargetInfo require some API changes, and I haven't really thought it through. Some of the remaining issues: allowing targets to define size_t and wchar_t properly, adding some sort of __builtin_type_info intrinsic so we can finish clang's limits.h and float.h and get rid of a massive number of macro definitions, allowing target-specific command-line options, allowing target-specific defaults for certain command-line options like -fms-extensions, exposing vector alignment outside of the description string, exposing endianness outside of the description string, allowing targets to expose special bit-field layout requirements, exposing some sort of custom hook for call generation in CodeGen, and adding CPU selection to control defines like __SSE__. llvm-svn: 55098
* Add Linux x86-32 target.Eli Friedman2008-08-211-0/+26
| | | | llvm-svn: 55095
* First cut at OS detection, taking advantage of the new generic targets. Eli Friedman2008-08-212-15/+60
| | | | | | | | | | | | | This approach allows adding OS-specific targets/defines/etc. without completely breaking unknown subtargets. No new subtargets yet, although I plan to add x86-Linux soon. Others can add targets that they use as needed; adding a new subtarget takes very little code. Also does some fixups for description strings; a lot of them were unspecified. I think all the ones I added are correct, but they're unverified; corrections are welcome. llvm-svn: 55091
* Class reorg for PPC; shouldn't be any visible changes unless I messed Eli Friedman2008-08-201-190/+133
| | | | | | | | | up somehow. This concludes the series of reorg patches for the target implementations. llvm-svn: 55086
* Class reorg for ARM. Shouldn't be any visible changes.Eli Friedman2008-08-201-22/+27
| | | | llvm-svn: 55042
* Class hierarchy reorg for Sparc architecture. While I was there, I Eli Friedman2008-08-201-45/+43
| | | | | | | | cleaned it up a bit, including fixing the definition of va_list; this shouldn't break anything, but anyone using Sparc should watch for regressions. llvm-svn: 55041
* Reorganize the class hierarchy for x86 targets; shouldn't have any Eli Friedman2008-08-201-150/+140
| | | | | | | | | | visible effects, but this will significantly reduce the amount of boilerplate code necessary to add subtargets. If this looks okay, I'll do the rest of the processors (PPC, Sparc, ARM) soon. llvm-svn: 55036
* Fix PR2627, support for Q constraint.Chris Lattner2008-08-181-1/+2
| | | | llvm-svn: 54943
OpenPOWER on IntegriCloud