aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-02-17Backend: Accept -mcpu and -mattr for use by TargetMachine.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64798 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Enhance tests to exercise more combinations of using the ↵Ted Kremenek
RangeConstraintManager with the RegionStoreManager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Revised RangeConstraintManager based on several discussions with Ben Laurie andTed Kremenek
Zhongxing Xu. The resultant code is less than 1/2 the size of the original. Key highlights: - All CouldBeXXX methods have been removed. Checking for feasibility is now just done in the AddXXX methods. - RangeSets now represent "all possible values" explicitly as the range set { [min, max] } instead of the empty set. The empty set now represents "no feasible values". This change consolidated much of the core algorithm to only have one code path instead of alternate paths that considered the empty set to represent "all possible falues." git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64787 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17BasicValueFactory: getMaxValue and getMinValue now also handle 'block' pointers.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64786 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17ccc: Pass -{MM,MMD,MF,MP,MT} to clang. Error on -{M,MM,MG,MQ} whichDaniel Dunbar
clang doesn't support yet. - See PR3603. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64783 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Proof that attribute __overloadable__ works as well as overloadableDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64781 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Change EmitConstantExpr to allow failure.Daniel Dunbar
IRgen no longer relies on isConstantInitializer, instead we just try to emit the constant. If that fails then in C we emit an error unsupported (this occurs when Sema accepted something that it doesn't know how to fold, and IRgen doesn't know how to emit) and in C++ we emit a guarded initializer. This ends up handling a few more cases, because IRgen was actually able to emit some of the constants Sema accepts but can't Evaluate(). For example, PR3398. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64780 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-1780-cols.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64779 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Renamed ASQualType to ExtQualType to reflect its moreFariborz Jahanian
general use; as for, objc2's gc type attributes. No change in functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64778 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17ccc: Recognize -isystem.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64776 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17ccc: Assume gcc will accept piped assembler input when using generic GCC ↵Daniel Dunbar
toolchain. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64775 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17ccc: Fix a FIXME.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64774 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Add '_assert' to list of known panic functions.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64772 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Don't include alloca.h if it doesn't exist.Ben Laurie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64771 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Handle fatal errors.Ben Laurie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64770 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Be sure to initialize Name.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64769 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Fixup spacing a little.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64768 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Remove the error about redefining library functions. It's causing tooDouglas Gregor
much pain when compiling the Linux kernel (PR3592). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64767 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Grammar tweak.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64765 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17As an experimental hack, emit "instantiated from" information inChris Lattner
diagnostics. I'm not sure I want to keep this, but hey, it's easy and could be useful or something, even if guarded by a -fshow-me-tons-of-details option. A silly example is: #define A B #define C A #define D C int y = D; We now emit: t.c:11:9: error: use of undeclared identifier 'B' int y = D; ^ t.c:9:11: note: instantiated from: #define D C ^ t.c:8:11: note: instantiated from: #define C A ^ t.c:7:11: note: instantiated from: #define A B ^ A more useful example is from tgmath: t.c:4:9: error: no matching function for call to '__tg_acos' return acos(x); ^~~~~~~ /Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:51:17: note: instantiated from: #define acos(x) __tg_acos(x) ^ ... candidate set follows ... This does not yet print ranges in instantiation info, (e.g. highlighting the range "__tg_acos(x)" in the last example), but that could be added if we decide this is a good idea :). Thoughts and bug reports welcome! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64761 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17add an accessor.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64760 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17emit:Chris Lattner
t.c:4:9: error: invalid type 'short *' to __real operator __tg_choose (__real__(z), C##f(z), (C)(z), C##l(z)), ^ instead of: t.c:4:9: error: invalid type 'short *' to __real or __imag operator __tg_choose (__real__(z), C##f(z), (C)(z), C##l(z)), ^ fixing a fixme. It would be even fancier to get the spelling of the token, but I don't care *that* much :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64759 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17add an accessor.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64758 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Spell __always_inline__ correctly.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64757 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17x86_64 ABI: Fix assert on return of _Complex long double.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64756 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17sink a call to getInstantiationLoc to eliminate an assertion.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17break down EmitCaretDiagnostic to use more primitive calls.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64754 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Update checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64753 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17add some files to fix the cmake build, patch by Piotr Rak!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64752 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17split caret diagnostic printing out into its own function.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64751 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17simplify some code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17remove "; candidates are/is:" from various ambiguity diagnostics.Chris Lattner
2 out of 2 people on irc prefer them gone :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64749 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17clarify the behavior of note.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64748 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17fix a minor bug with my previous patchChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64747 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17fix notes so that they are always filtered with the same logic Chris Lattner
as the last non-note diagnostic that preceeded them. This ensures that diagnostics in main files which have notes with locations in system headers get all the bits and pieces emitted or not in a unit. This fixes PR3215. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64746 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17If a source range comes through a function-like macro expansion,Chris Lattner
highlight the arguments to the macro as well as the identifier. Before: t.c:3:9: error: no matching function for call to '__tg_acos'; candidates are: return acos(x); ^~~~ after: t.c:3:9: error: no matching function for call to '__tg_acos'; candidates are: return acos(x); ^~~~~~~ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64743 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Fix broken line.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64740 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Static Analyzer driver/options (partial) cleanup:Ted Kremenek
- Move all analyzer options logic to AnalysisConsumer.cpp. - Unified specification of stores/constraints/output to be: -analyzer-output=... -analyzer-store=... -analyzer-constraints=... instead of -analyzer-range-constraints, -analyzer-store-basic, etc. - Updated drivers (ccc-analyzer, scan-builds, new ccc) to obey this new interface - Updated test cases to conform to new driver options git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64737 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Static variables and functions won't collide with standard libraryDouglas Gregor
functions, so if we're declaring a static we should implicitly declare a library function by the same name (e.g., malloc, strdup). Fixes PR3592. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64736 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Add SSSE3 headerAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64735 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17x86_64 ABI: Implement classification for bit-fields.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64727 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17remove dead macrosChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64725 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17explicitly cast integers to double. This a) silences any Chris Lattner
possible future "data loss" warnings, and b) makes it intensely obvious to the user what the impl of these functions do in a ambiguity error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64724 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17asin support. No we don't care about complex int :)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64723 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17hand macro expand this to make "candidate" set printing more useful. However,Chris Lattner
Now no candidates are printed because the 'notes' are in a system header. :( #include <tgmath-sofar.h> double foo2(short *x) { return acos(x); } t.c:10:10: error: no matching function for call to '__tg_acos'; candidates are: return acos(x); ^~~~ 1 diagnostic generated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64722 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17add support for integers to tgmath functions. I apparently need to provide Chris Lattner
all the integer types other than char/short to avoid overload ambiguities. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64721 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17start converting over to attr(overloadable). Unfortunately, thisChris Lattner
produces really horrible diagnostics when overload ambiguities happen: t.c:10:10: error: call to '__tg_acos' is ambiguous; candidates are: return acos(x); ^~~~ In file included from t.c:1: /Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function __TG_RC_1(x, acos, cacos) ^ /Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function __TG_RC_1(x, acos, cacos) ^ /Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function __TG_RC_1(x, acos, cacos) ^ /Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function __TG_RC_1(x, acos, cacos) ^ /Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function __TG_RC_1(x, acos, cacos) ^ /Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function __TG_RC_1(x, acos, cacos) ^ A possible fix is to just not use macros for this, which I'll probably go for, but it would be nice to emit the type at the call, so we know what we asked for! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64720 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Make PragmaPackStack be a private class in SemaAttr and make itsChris Lattner
instance in Sema be a pimpl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64718 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Added ClassTemplateSpecializationDecl, which is a subclass ofDouglas Gregor
CXXRecordDecl that is used to represent class template specializations. These are canonical declarations that can refer to either an actual class template specialization in the code, e.g., template<> class vector<bool> { }; or to a template instantiation. However, neither of these features is actually implemented yet, so really we're just using (and uniqing) the declarations to make sure that, e.g., A<int> is a different type from A<float>. Note that we carefully distinguish between what the user wrote in the source code (e.g., "A<FLOAT>") and the semantic entity it represents (e.g., "A<float, int>"); the former is in the sugared Type, the latter is an actual Decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64716 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17copying and assignment of sema seem unwise :)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64712 91177308-0d34-0410-b5e6-96231b3b80d8