| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
defined in a system header should be treated as system header tokens
even if they are instantiated in a different place.
llvm-svn: 59418
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Thanks to Sebastian for the review
llvm-svn: 58986
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 58806
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
targets to set these values and not have defaults.
llvm-svn: 58511
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 58224
|
|
|
|
|
|
|
|
| |
not the
darwin or AIX abis. This fixes PR2904.
llvm-svn: 58222
|
|
|
|
|
|
| |
must be under the `tools' subdirectory of the LLVM *source* tree.
llvm-svn: 58180
|
|
|
|
| |
llvm-svn: 57731
|
|
|
|
| |
llvm-svn: 57645
|
|
|
|
| |
llvm-svn: 57198
|
|
|
|
| |
llvm-svn: 57144
|
|
|
|
| |
llvm-svn: 57140
|
|
|
|
|
|
| |
target indep code.
llvm-svn: 57139
|
|
|
|
| |
llvm-svn: 57138
|
|
|
|
| |
llvm-svn: 57137
|
|
|
|
| |
llvm-svn: 57134
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
integer size #defines over to the Preprocessor.
llvm-svn: 57130
|
|
|
|
| |
llvm-svn: 57127
|
|
|
|
|
|
| |
like "10.3.9"
llvm-svn: 56873
|
|
|
|
| |
llvm-svn: 56836
|
|
|
|
|
|
|
| |
the target triple on darwin. For example i386-apple-darwin9 -> 1050 because
darwin9 is "10.5".
llvm-svn: 56826
|
|
|
|
| |
llvm-svn: 56824
|
|
|
|
| |
llvm-svn: 56822
|
|
|
|
|
|
| |
and add a dump method to FullSourceLoc! Patch by Nico Weber!
llvm-svn: 56806
|
|
|
|
| |
llvm-svn: 56776
|
|
|
|
|
|
| |
DirectoryLookup::DirType into SourceManager.h
llvm-svn: 56692
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
- PR2824
llvm-svn: 56491
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
llvm-svn: 56103
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
- Sema gives a perfectively nice error message on invalid constraints.
llvm-svn: 55310
|
|
|
|
| |
llvm-svn: 55241
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
llvm-svn: 55101
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 55095
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
up somehow.
This concludes the series of reorg patches for the target
implementations.
llvm-svn: 55086
|
|
|
|
| |
llvm-svn: 55042
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 54943
|