aboutsummaryrefslogtreecommitdiff
path: root/lib/Frontend
AgeCommit message (Collapse)Author
2009-11-22Define __SIG_ATOMIC_WIDTH__ for use in stdint.h.Ken Dyck
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89597 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21This patch implements objective-c's 'SEL' type as a built-inFariborz Jahanian
type and fixes a long-standing code gen. crash reported in at least two PRs and a radar. (radar 7405040 and pr5025). There are couple of remaining issues that I would like for Ted. and Doug to look at: Ted, please look at failure in Analysis/MissingDealloc.m. I have temporarily added an expected-warning to make the test pass. This tests has a declaration of 'SEL' type which may not co-exist with the new changes. Doug, please look at a FIXME in PCHWriter.cpp/PCHReader.cpp. I think the changes which I have ifdef'ed out are correct. They need be considered for in a few Indexer/PCH test cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89561 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Added rudimentary C++0x attribute support.Sean Hunt
The following attributes are currently supported in C++0x attribute lists (and in GNU ones as well): - align() - semantics believed to be conformant to n3000, except for redeclarations and what entities it may apply to - final - semantics believed to be conformant to CWG issue 817's proposed wording, except for redeclarations - noreturn - semantics believed to be conformant to n3000, except for redeclarations - carries_dependency - currently ignored (this is an optimization hint) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89543 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-21Revised Win32 include path to search highest version in registry, plus ↵John Thompson
platform SDK path git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Fix refactoro, clang-cc wasn't properly reporting errors when opening an ↵Daniel Dunbar
output file failed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89502 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20Add clang -cc1 parsing of CodeGenOptions.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89464 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Fix some default in the option classes, and some CompilerInvocation argificationDaniel Dunbar
errors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89388 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Define __WCHAR_WIDTH__ for use in stdint.h.Ken Dyck
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89353 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Add __WINT_WIDTH__ to paramaterize the limits of WINT_MIN and WINT_MAX in Ken Dyck
stdint.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89348 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Add __SIZE_WIDTH__ to eventually replace __SIZE_TYPE__ in stdint.h.Ken Dyck
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Restore __INTMAX_TYPE__, __UINTMAX_TYPE__, __PTRDIFF_TYPE__, andKen Dyck
__INTPTR_TYPE__ as the last is used in the test/CodeGen/const-init.c and all could potentially be in use in the wild. My apologies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89345 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Remove __PTRDIFF_TYPE__ as it is no longer needed by stdint.h. It has been Ken Dyck
replaced with __PTRDIFF_WIDTH__. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89344 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Add __PTRDIFF_WIDTH__ macro to eventually replace __PTRDIFF_TYPE__ in stdint.h.Ken Dyck
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89342 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Remove __INTPTR_TYPE__ as it is no longer needed by stdint.h, which usesKen Dyck
__INTPTR_WIDTH__ instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89340 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Sketch some 'clang -cc1' support, for testing parts of CompilerInvocation.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89333 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19clang-cc: Remove some more llvm::cl::init arguments, by only setting values whenDaniel Dunbar
the argument is given. Also, tweak Opt.Sysroot defaulting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89318 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-19Change -code-completion-debug-printer to -no-code-completion-debug-printer.Daniel Dunbar
Also, tweak a few help strings and update CompilerInvocation serialization for prev change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89317 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Predefine __INTPTR_WIDTH__ for future use in stdint.h.Ken Dyck
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89231 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Remove the __INTMAX_TYPE__ and __UINTMAX_TYPE__ built-in macros as they are noKen Dyck
longer used by stdint.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89230 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Use llvm::sys::Path to check isAbsolute, instead of hard coding. Also, ↵Daniel Dunbar
remove random FIXME (?). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89229 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Predefine __INTMAX_WIDTH__ for the future parameterization of INTMAX macros inKen Dyck
stdint.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89203 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-18Add SourceLocations to ObjCClassDecl for the class identifiers referenced by ↵Ted Kremenek
@class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89170 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Pass source locations of identifiers referenced by @class through ↵Ted Kremenek
Action::ActOnForwardClassDeclaration(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89162 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17recognize .hpp as c++ (needed for ./configure'ing boost)Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89100 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17add Fedora 11 include path. what a crap..Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89098 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Simplify CompilerInvocation::toArgs, now that LangOptions handling is more ↵Daniel Dunbar
predictable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89074 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Move -fnext-runtime defaulting to driver (and change clang-cc default toDaniel Dunbar
-fnext-runtime), instead of using getDefaultLangOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89058 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Silence some warnings produced by Clang, and add a missing headerDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89051 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Add initial cut at CompilerInvocation::toArgs, which "serializes" the ↵Daniel Dunbar
CompilerInvocation into a list of arguments which can be passed to clang-cc (eventually, clang -cc1). - Unfortunately, this is currently a tedious and manual translation. Eventually it would be nice to automatically generate this code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89049 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Simplify PreprocessorOptions, it doesn't need abstracted field access.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89047 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-17Remove unused IsCXXAware and IgnoreSysRoots option from ↵Daniel Dunbar
HeaderSearchOptions::Entry. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89035 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Store more information in HeaderSearchOptions so that its initialization is notDaniel Dunbar
language dependent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88981 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16First part of changes to eliminate problems with cv-qualifiers andDouglas Gregor
sugared types. The basic problem is that our qualifier accessors (getQualifiers, getCVRQualifiers, isConstQualified, etc.) only look at the current QualType and not at any qualifiers that come from sugared types, meaning that we won't see these qualifiers through, e.g., typedefs: typedef const int CInt; typedef CInt Self; Self.isConstQualified() currently returns false! Various bugs (e.g., PR5383) have cropped up all over the front end due to such problems. I'm addressing this problem by splitting each qualifier accessor into two versions: - the "local" version only returns qualifiers on this particular QualType instance - the "normal" version that will eventually combine qualifiers from this QualType instance with the qualifiers on the canonical type to produce the full set of qualifiers. This commit adds the local versions and switches a few callers from the "normal" version (e.g., isConstQualified) over to the "local" version (e.g., isLocalConstQualified) when that is the right thing to do, e.g., because we're printing or serializing the qualifiers. Also, switch a bunch of Context.getCanonicalType(T1).getUnqualifiedType() == Context.getCanonicalType(T2).getQualifiedType() expressions over to Context.hasSameUnqualifiedType(T1, T2) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88969 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Use configure options for searching for libstdc++.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88945 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Parameterize the constant-generating macros in stdint.h with new built-inKen Dyck
__INTn_C_SUFFIX__ macros that are defined for types with corresponding constant suffixes (i.e. long and long long). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88914 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-15Add TargetOptions and use it when constructing targets.Daniel Dunbar
- This ended up being hard to factor, sorry for the large diff. - Some post-commit cleanup to come. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88833 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Add FrontendActions for all preprocessor based clang-cc actions.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88774 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Add FrontendActions, which provides a FrontendAction interface to all the ↵Daniel Dunbar
existing AST consumer based clang-cc actions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88773 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Add FrontendAction interface, for encapsulating a "clang-cc" style action.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88772 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Shuffle VerifyDiagnosticsClient API to be less fragile.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88765 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Add CompilerInstance::InitializeSourceManager.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88764 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Switch -verify implementation to use VerifyDiagnosticClient.Daniel Dunbar
- Not tested, but -verify with multiple inputs should work now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Add VerifyDiagnosticsClient, to replace old -verify.Daniel Dunbar
- This reimplements -verify as just another DiagnosticClient, which buffers the diagnostics and checks them when the source file is complete. There are some hacks to make this work, but they are all internal, and this exposes a better external interface. - This also tweaks a few things: o Errors are now just regular diagnostics. o Frontend diagnostics are now caught (for example, errors in command line arguments), although there isn't yet a way to specify that they are expected. That would be nice though. - Not yet used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88748 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Add ASTConsumer to CompilerInstance.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88743 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Move CompilerInstance::set* methods out-of-line.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88731 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Add clang-cc option "--analyzer-experimental-internal-checks". ThisTed Kremenek
option enables new "internal" checks that will eventually be turned on by default but still require broader testing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88671 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Add CompilerInstance utility functions for creating output files.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88667 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Remove local splitLines reimplementation.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88661 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Add output file list to CompilerInstance, so that it can track them instead ofDaniel Dunbar
forcing all clients to do it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87103 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-13Add CodeCompletion consumer to CompilerInvocation.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87100 91177308-0d34-0410-b5e6-96231b3b80d8