tools/clang/lib/Sema/SemaDecl.cpp (82 lines): - line 32: #include "clang/Lex/HeaderSearch.h" // TODO: Sema shouldn't depend on Lex - line 33: #include "clang/Lex/Lexer.h" // TODO: Extract static functions to fix layering. - line 34: #include "clang/Lex/ModuleLoader.h" // TODO: Sema shouldn't depend on Lex - line 98: // FIXME: Take into account the current language when deciding whether a - line 291: // FIXME: LookupNestedNameSpecifierName isn't the right kind of - line 627: // FIXME: Should we move the logic that tries to recover from a missing tag - line 759: // FIXME: This lookup really, really needs to be folded in to the normal - line 777: // FIXME: Reference? - line 836: } else {// FIXME: is this even reachable? Test it. - line 853: // FIXME: This should probably go away at some point - line 862: // FIXME: This is a gross hack. - line 888: // FIXME: If the next token is '<', we might want to ask the parser to - line 986: // FIXME: It's unfortunate that we don't have a Type node for handling this. - line 1335: // FIXME: Should check for private access too but access is set after we get - line 1372: // FIXME: This needs to be refactored; some other isInMainFile users want - line 1426: // FIXME: This seems like a bogus check; it suppresses -Wunused-function - line 1520: // TODO: __attribute__((unused)) templates? - line 1792: // FIXME: This is hideous. We need to teach PushOnScopeChains to - line 1835: /// FIXME: This is notionally doing the same thing as ASTReaderDecl's - line 1922: // FIXME: Verify the underlying types are equivalent! - line 2083: // FIXME: Don't hardcode this check - line 2111: // FIXME: We have no way of representing inherited dependent alignments - line 2441: // FIXME: Should we build redeclaration chains for function parameters? - line 2739: // FIXME: diagnose the other way around? - line 3267: // FIXME: The C++ standard doesn't say anything about this. - line 3278: // FIXME: Even if this merging succeeds, some other non-visible declaration - line 3491: // FIXME: The test for external storage here seems wrong? We still - line 3521: // FIXME: GCC allows this, but uses the TLS keyword on the first - line 3649: // unsupported and ignore the typedef name. TODO: we should - line 4472: // FIXME: Check two things: that the template-id names the same type as - line 4479: // FIXME: should we retrieve TypeSourceInfo? - line 4757: // TODO: consider using NameInfo for diagnostic. - line 5028: // FIXME: We should probably handle this case - line 5120: // FIXME: We can have multiple results via __attribute__((overloadable)). - line 5128: // FIXME: We should probably indicate the identifier in question to avoid - line 5557: /// FIXME: This is a hack. - line 5861: // FIXME: Check that we can declare a specialization here. - line 6254: // TODO: should we warn about static data members shadowing - line 6257: // TODO: don't diagnose for inaccessible shadowed members. - line 6344: // FIXME: If we have any other entity with this name in global scope, - line 6486: // FIXME: This won't give the correct result for - line 6602: // FIXME: Do we care about other names here too? - line 6817: // TODO: Refactor ActOnFunctionDeclarator so that we can call only the - line 6870: // FIXME: These notes are poorly worded for the local friend case. - line 7085: // TODO: Forbid the other integer types (size_t, ptrdiff_t...) when they can - line 7256: // TODO: consider using NameInfo for diagnostic. - line 7470: // FIXME: For a friend function, we have not marked the function as being - line 7549: // FIXME: Does this ever happen? ActOnStartOfFunctionDef forces the function - line 7936: // TODO: we currently also suppress this check in dependent - line 8310: // FIXME: Shouldn't we be able to perform this check even when the class - line 8477: // FIXME: if we had information about the location of the ellipsis, we - line 8493: // FIXME: a lot of the following diagnostics would be improved - line 8526: // TODO: suggest replacing given type with expected type - line 8562: // FIXME: Need strict checking. In C89, we need to check for - line 8674: // TODO: Add a different warning which will print the field names. - line 9245: // FIXME: If this is a braced initialization of an aggregate, it is not - line 9806: // FIXME: Need strict checking here. - line 10025: // FIXME: Warn on unused templates. - line 10098: // FIXME: When initializer-list support is added, a distinction is needed - line 10324: /* FIXME: setting StartLoc == Loc. - line 10566: // FIXME: Should we skip the body of the function and use the old definition - line 11291: // FIXME: asprintf and vasprintf aren't C99 functions. Should they be - line 11402: // TODO: Highlight the underlying type of the redeclaration. - line 11631: // FIXME: Check explicit specializations more carefully. - line 11788: // FIXME: We're looking into outer scopes here, even when we - line 11850: // FIXME: This makes sure that we ignore the contexts associated - line 11916: // FIXME: We would like to maintain the current DeclContext as the - line 12073: // FIXME: In the future, return a variant or some other clue - line 12244: // FIXME: Tag decls should be chained to any simultaneous vardecls, e.g.: - line 12289: // FIXME: Tag decls should be chained to any simultaneous vardecls, e.g.: - line 12292: // FIXME: Look for a way to use RecordDecl for simple structs. - line 12939: // FIXME: We need to pass in the attributes given an AST - line 12942: // FIXME: The current scope is almost... but not entirely... correct here. - line 13047: // FIXME: Unnamed fields can be handled in various different ways, for - line 13134: // FIXME: When interfaces are DeclContexts, we'll need to add - line 13304: // FIXME: GCC allows this. We should probably either implicitly delete - line 13365: // FIXME: that's really not sufficient; we need to make the type - line 13618: // FIXME: Int128/UInt128 support, which also needs to be introduced into - line 14103: // FIXME: This heuristic can cause weird results if the enum was extended - line 14140: // TODO: If the result value doesn't fit in an int, it must be a long or long - line 14428: // FIXME: we should support importing a submodule within a different submodule - line 14465: // FIXME: Should we even get ActOnModuleInclude calls for those? tools/clang/lib/Driver/Tools.cpp (76 lines): - line 306: // FIXME: This should use the computed output file location. - line 421: // FIXME: There is a very unfortunate problem here, some troubled - line 443: // FIXME: We should probably sink the logic for handling these from the - line 465: // FIXME: Move to target hook. - line 541: // FIXME: Use ARMTargetParser. - line 628: // FIXME: this is invalid for WindowsCE - line 692: // FIXME: Note, this is a hack, the LLVM backend doesn't actually use these - line 761: // FIXME: Set Arch. - line 823: // FIXME: Support -meabi. - line 824: // FIXME: Parts of this are duplicated in the backend, unify this somehow. - line 838: // FIXME: this is invalid for WindowsCE - line 868: // FIXME: This changes CPP defines, we need -target-soft-float. - line 952: // FIXME: Should this be picked by checking the target triple instead? - line 1087: // FIXME: Warn on inconsistent use of -march and -mabi. - line 1154: // FIXME: Note, this is a hack. We need to pass the selected float - line 1351: // TODO: Change the LLVM backend option maybe? - line 1484: // FIXME: Reject attempts to use -march=native unless the target matches - line 1487: // FIXME: We should also incorporate the detected target features for use - line 1524: // FIXME: Need target hooks. - line 2184: // FIXME: Remove MSVC from this list once things work. - line 2385: // FIXME: Make sure we can also emit shared objects if they're requested - line 2392: // FIXME: why do we link against gcc when we are using compiler-rt? - line 2456: // FIXME: We could use a nicer diagnostic here. - line 2785: // FIXME: Windows seems to have an 'SID' that might work. - line 2944: // FIXME: Implement custom jobs for internal actions. - line 3221: // FIXME: Warn when this flag trumps some other PIC or PIE flag. - line 3525: // FIXME: Handle -mtune=. - line 3643: // FIXME: we should support specifying dwarf version with - line 3677: // FIXME: Move backend command line options to the module. - line 3680: // FIXME: Currently only works on Linux. - line 3818: // FIXME: Support -fpreprocessed - line 3879: // FIXME: Clang doesn't correctly handle -std= when the input language - line 3900: // behavior for now. FIXME: Directly diagnose uses of a string literal as - line 3903: // FIXME: This should behave just like a warning flag, and thus should also - line 4085: // FIXME: It would be better to have a mode which *only* omits IR - line 4189: // FIXME: Verify the argument is a valid integer. - line 4552: // FIXME: It seems like this entire block, and several around it should be - line 4586: // FIXME: We should move this to a hard error. - line 4856: // FIXME: This is disabled until clang -cc1 supports -fno-builtin-foo. PR4941. - line 4870: // TODO: Once -module-dependency-dir works with -frewrite-includes it'd be - line 5002: // TODO: Currently only works on linux with newer objcopy. - line 5197: // FIXME: Disable C++ EH completely, until it becomes more reliable. Users - line 5262: // FIXME: Do something with NoExceptC. - line 5360: // FIXME: Implement custom jobs for internal actions. - line 5449: // FIXME: Add -static support, once we have it. - line 5468: // FIXME: Stop lying and consume only the appropriate driver flags - line 5489: // TODO: Currently only works on linux with newer objcopy. - line 5538: // FIXME: The triple class should directly provide the information we want - line 5563: // FIXME: For the linker case specifically, can we safely convert - line 5682: // FIXME: For the linker case specifically, can we safely convert - line 5701: // FIXME: Pranav: What is this ? - line 5931: // FIXME: Warn on inconsistent use of -mcpu and -march. - line 5947: // FIXME: This is redundant with -mcpu, why does LLVM use this. - line 6114: // FIXME: Think about this more. - line 6216: // FIXME: at run-time detect assembler capabilities or rely on version - line 6274: // FIXME: Is this needed anymore? - line 6335: // FIXME: gcc replaces -lobjc in forward args with -lobjc-gnu - line 6341: // FIXME: Why do this only on this path? - line 6590: // TODO: It would be nice to use addProfileRT() here, but darwin's compiler-rt - line 6725: // FIXME: Find a real GCC, don't hard-code versions here - line 6989: // FIXME: For some reason GCC passes -lgcc before adding - line 7363: // FIXME: For some reason GCC passes -lgcc and -lgcc_s before adding - line 7785: // FIXME: remove krait check when GNU tools support krait cpu - line 7915: // TODO: Currently only works on linux with newer objcopy. - line 7979: // TODO: check which dynamic linker name. - line 8060: return "armebelf_linux_eabi"; /* TODO: check which NAME. */ - line 8249: // FIXME: Does this really make sense for all GNU toolchains? - line 8260: // FIXME: Exclude this for platforms with libgomp that don't require - line 8658: // FIXME: GCC passes on -lgcc, -lgcc_pic and a whole lot of - line 8929: // FIXME: How can we ensure this stays in sync with relevant clang-cl options? - line 9100: // FIXME: add -N, -n flags - line 9129: // TODO: Add ASan stuff here - line 9131: // TODO: Add profile stuff here - line 9333: // FIXME: this is incorrect for WinCE - line 9378: // FIXME: handle subsystem - line 9426: // TODO handle /MT[d] /MD[d] tools/clang/lib/AST/ExprConstant.cpp (69 lines): - line 63: if (!ICE) // FIXME: deal with more complex calls (e.g. (func)(), (*func)()). - line 422: // FIXME: Force the precision of the source value down so we don't - line 556: // FIXME: We should check for any kind of undefined or suspicious behavior - line 633: // FIXME: We might want to show both diagnostics to the user in - line 684: /// FIXME: Stop evaluating if we're in EM_ConstantExpression or - line 1181: // FIXME: Add parens around Val if needed. - line 1273: // FIXME: - line 1356: // FIXME: diagnostic - line 1612: // FIXME: In this case, we should provide the diagnostic for casting - line 1944: // FIXME: Better diagnostic. - line 2095: // FIXME: Support ObjCEncodeExpr, MakeStringConstant - line 2194: // FIXME: Add core issue number for the union case. - line 2382: // FIXME: Include a description of the path to the volatile subobject. - line 2666: // FIXME: Allow folding of values of any literal type in all languages. - line 2737: // FIXME: We don't set up EvaluatingDecl for local variables or temporaries, - line 2748: // FIXME: Not all local state is mutable. Allow local constant subobjects - line 2795: // FIXME: Support ObjCEncodeExpr, MakeStringConstant - line 2856: // FIXME: Implement complex compound assignment. - line 2862: // FIXME: can this happen? - line 2987: // FIXME: can this happen? - line 3132: // FIXME: Specific diagnostic. - line 3356: // FIXME: Cache this lookup. - line 3405: // FIXME: We don't start the lifetime of objects whose initialization we - line 3411: // FIXME: Precompute which substatement of a compound statement we - line 3426: // FIXME: Precompute which side of an 'if' we would jump to, and go - line 3463: // FIXME: If the variable has initialization that can't be jumped over, - line 3491: // FIXME: This isn't quite right; if we're performing aggregate - line 3686: // FIXME: If DiagDecl is an implicitly-declared special member function, - line 3720: // FIXME: If DiagDecl is an implicitly-declared special member function, we - line 3792: // TODO: consider a better error message here - line 3804: // TODO: handle NaNs properly - line 3809: // TODO: consider a better error message here - line 3971: // FIXME: In this case, the values of the other subobjects are - line 4247: // FIXME: When selecting an implicit conversion for an overloaded - line 4433: // FIXME: If the statement-expression terminated due to 'return', - line 4785: // FIXME: Deal with vectors as array subscript bases. - line 4790: return Error(E); // TODO: handle arrays - line 4936: // FIXME: Missing: @protocol, @selector - line 5147: // FIXME: Quantities here cast to integers because the plural modifier - line 5421: // FIXME: The element should be initialized from an initializer list. - line 5454: // FIXME: Diagnostics here should point to the end of the initializer - line 5536: // FIXME: Perform the checks on the field types in SemaInit. - line 5548: // FIXME: What if the initializer_list type has base classes, etc? - line 5658: // FIXME: remove this APValue copy. - line 5675: // FIXME: Missing: unary -, unary ~, binary add/sub/mul/div, - line 5702: // TODO: Other cases may be added for other APValue::ValueKind. - line 5886: // TODO: support all cases. - line 6298: // FIXME: Missing: array subscript of vector, member of vector - line 6321: // FIXME: It would be better to produce the diagnostic for casting - line 6361: // FIXME: Does GCC differ between lvalue and rvalue references here? - line 6408: else // FIXME: offset_type_class, method_type_class, & lang_type_class? - line 6439: // FIXME: GCC also intends to return 1 for literals of aggregate types, but - line 6572: // FIXME: BI__builtin_clrsb - line 6573: // FIXME: BI__builtin_clrsbl - line 6574: // FIXME: BI__builtin_clrsbll - line 7081: // FIXME: Don't do this in the cases where we can deduce it. - line 7344: // FIXME: LLVM and GCC both compute LHSOffset - RHSOffset at runtime, - line 7646: // FIXME: Should extension allow i-c-e extension expressions in its scope? - line 7780: // FIXME: Allow a larger integer size than the pointer size, and allow - line 7782: // FIXME: Check integer type's active bits, not its type size. - line 7885: // FIXME: Missing: array subscript of vector, member of vector - line 7977: // FIXME: Builtin::BI__builtin_powi - line 7978: // FIXME: Builtin::BI__builtin_powif - line 7979: // FIXME: Builtin::BI__builtin_powil - line 8805: // FIXME: Evaluating values of large array and record types can cause - line 8869: // FIXME: Evaluating initializers for large array and record types can cause - line 8942: /// FIXME: Pass up a reason why! Invalid operation in i-c-e, division by zero, - line 9444: // FIXME: This shouldn't happen. - line 9477: // FIXME: It would be useful to check constexpr function templates, but at the tools/clang/lib/AST/ASTImporter.cpp (68 lines): - line 54: // FIXME: DependentSizedArrayType - line 55: // FIXME: DependentSizedExtVectorType - line 60: // FIXME: UnresolvedUsingType - line 64: // FIXME: DependentTypeOfExprType - line 69: // FIXME: DependentDecltypeType - line 73: // FIXME: TemplateTypeParmType - line 74: // FIXME: SubstTemplateTypeParmType - line 77: // FIXME: DependentNameType - line 78: // FIXME: DependentTemplateSpecializationType - line 196: // FIXME: GCCAsmStmt - line 197: // FIXME: MSAsmStmt - line 198: // FIXME: SEHExceptStmt - line 199: // FIXME: SEHFinallyStmt - line 200: // FIXME: SEHTryStmt - line 201: // FIXME: SEHLeaveStmt - line 202: // FIXME: CapturedStmt - line 206: // FIXME: MSDependentExistsStmt - line 317: // FIXME: Actually perform a structural comparison! - line 334: // FIXME: Implement! - line 363: return true; // FIXME: Is this correct? - line 445: // FIXME: Deal with Char_S/Char_U. - line 1319: // FIXME: Check for known structural equivalences via a callback of some sort. - line 1365: // FIXME: Switch on all declaration kinds. For now, we're just going to - line 1459: // FIXME: Check other declaration kinds! - line 1482: // FIXME: for Char16, Char32, and NullPtr, make sure that the "to" - line 1485: // FIXME: for ObjCId, ObjCClass, and ObjCSel, make sure that the "to" - line 1508: // FIXME: If not in C++, shall we translate to the C equivalent of - line 1533: // FIXME: Check for blocks support in "to" context. - line 1543: // FIXME: Check for C++ support in "to" context. - line 1553: // FIXME: Check for C++0x support in "to" context. - line 1562: // FIXME: Check for C++ support in "to" context. - line 1631: // FIXME: What happens if we're importing a function without a prototype - line 1718: // FIXME: Make sure that the "to" context supports C++0x! - line 1742: // FIXME: Make sure that the "to" context supports C++11! - line 2093: // FIXME: Can we really import any initializer? Alternatively, we could force - line 2098: // FIXME: Other bits to merge? - line 2124: // FIXME: we might need to merge the number of positive or negative bits - line 2330: // FIXME: Not testable. - line 2611: // FIXME: For C++, we should also merge methods here. - line 2766: // FIXME: Actually try to merge the body and other attributes. - line 2770: // FIXME: Check for overloading more carefully, e.g., by boosting - line 2916: // FIXME: Other bits to merge? - line 3317: /*FIXME: Default argument*/nullptr); - line 3394: // FIXME: Any other bits we need to merge? - line 3412: // FIXME: When we decide to merge method definitions, we'll need to - line 3524: // FIXME: If we're merging, make sure that the protocol list is the same. - line 3578: // FIXME: If we're merging, make sure that the protocol list is the same. - line 3739: // FIXME: If we're merging, make sure that the protocol list is the same. - line 3935: // FIXME: It would be nice to have the location of the superclass - line 3988: // FIXME: Check property attributes, getters, setters, etc.? - line 4114: // FIXME: Import default argument. - line 4146: // FIXME: Import default argument. - line 4172: // FIXME: Import default argument. - line 4221: // FIXME: We may be filling in a forward declaration here. Handle - line 4277: // FIXME: Import definition! - line 4334: // FIXME: Check for specialization vs. instantiation errors. - line 4475: // FIXME: Import definition! - line 4530: // FIXME: Check for specialization vs. instantiation errors. - line 5064: /*FIXME:TemplateArgs=*/nullptr); - line 5194: // TODO: import cast paths - line 5294: return nullptr; // FIXME: handle template arguments - line 5381: // FIXME: For now we just create a "trivial" type source info based - line 5585: // FIXME: Implement! - line 5686: // FIXME: Import macro expansions! - line 5720: // FIXME: We probably want to use getVirtualFile(), so we don't hit the - line 5722: // FIXME: We definitely want to re-use the existing MemoryBuffer, rather - line 5730: // FIXME: We want to re-use the existing MemoryBuffer! - line 5838: // FIXME: STATICS! tools/clang/lib/Sema/SemaOverload.cpp (67 lines): - line 54: // FIXME: This would be more comprehensively addressed by modifying - line 604: // FIXME: Should allocate from normal heap so that we can free this later. - line 614: // FIXME: Should allocate from normal heap so that we can free this later. - line 659: // FIXME: Destroy the data? - line 664: // FIXME: Destroy the template argument list? - line 1859: // FIXME: We should delay checking of bit-fields until we actually perform the - line 1923: // TODO: Update this for new builtin types min16float, min16int, min16uint. - line 2037: /// pointers to interfaces. FIXME: Once we've determined the - line 2697: // FIXME: We should have a different class of conversions for the - line 2789: // FIXME: What about dependent types? - line 3512: // FIXME: Rvalue references. We're going rogue with the above edits, - line 3717: // FIXME: the example in the standard doesn't use a qualification - line 3846: /*FIXME: Remove if Objective-C id conversions get their own rank*/ - line 4477: // FIXME: This is the wrong BadConversionSequence. The problem is binding - line 4542: // FIXME: Check the other conditions here: array of character type, - line 4572: // FIXME: We're missing a lot of these checks. - line 4635: // FIXME: Find out whether this parameter is consumed or not. - line 4797: /*FIXME:*/From->getLocStart(), - line 5089: // FIXME: Per core issue 1407, we should not allow this, but that breaks - line 5291: // FIXME: Are these flags correct? - line 5502: // FIXME: Check for missing '()' if T is a function type? - line 5564: // FIXME: For C++1y, do we need this restriction? - line 5970: // FIXME: specific_attr_iterator iterates in reverse order, but - line 6928: /// FIXME: what to do about extended qualifiers? - line 6997: /// FIXME: what to do about extended qualifiers? - line 7247: // FIXME: What about complex? What about half? - line 8458: // FIXME: This approach for uniquing ADL results (and removing - line 8465: // FIXME: Pass in the explicit template arguments? - line 8572: // FIXME: Compare kind of reference binding if conversion functions - line 8606: // FIXME: The next several lines are just - line 8828: // FIXME: The note limiting machinery is borrowed from - line 8895: // TODO: detect and diagnose the full richness of const mismatches. - line 9103: // TODO: treat calls to a missing default constructor as a special case - line 9271: // FIXME: Use the source range of the condition, and the fully-qualified - line 9279: // FIXME: Add a general mechanism to include a PartialDiagnostic *'s - line 9305: // FIXME: Provide a source location to indicate what we couldn't match. - line 9316: // FIXME: This fixes a bad diagnostic where both templates are named - line 9336: // FIXME: For generic lambda parameters, check if the function is a lambda - line 9345: // TODO: diagnose these individually, then kill off - line 9494: // FIXME: this currently happens when we're called from SemaInit - line 9630: // TODO: introduce a tri-valued comparison for overload - line 9683: // FIXME: this might not be transitive. - line 9720: // TODO: others? - line 9775: // FIXME: this should probably be preserved from the overload - line 9862: // the user with. FIXME: This limit should depend on details of the - line 9880: // FIXME: It's quite possible for different conversions to see - line 9975: // FIXME: Perhaps rename OverloadsShown and getShowOverloads() - line 9985: // the user with. FIXME: This limit should depend on details of the - line 10244: UnresolvedSet<4> MatchesCopy; // TODO: avoid! - line 10248: // TODO: It looks like FailedCandidates does not serve much purpose - line 10307: // TODO: Should we condition this on whether any functions might - line 10309: // TODO: a fixit wouldn't hurt. - line 10461: // TODO: Actually use the failed-deduction info? - line 10534: // TODO: I believe we only end up here if there's a mix of - line 10775: // FIXME: It would be useful to list the associated namespaces here, - line 11114: // TODO: provide better source location info. - line 11243: // FIXME: Recover by calling the found function. - line 11322: // FIXME: save results of ADL from here? - line 11324: // TODO: provide better source location info in DNLoc component. - line 11520: // FIXME: Recover by calling the found function. - line 11849: // FIXME: avoid copy. - line 11903: // FIXME: This would be more comprehensively addressed by modifying - line 11916: // FIXME: Leaking incoming expressions! - line 11923: // FIXME: Leaking incoming expressions! - line 11933: // FIXME: Leaking incoming expressions! - line 12643: // FIXME: avoid copy. - line 12666: // FIXME: avoid copy. tools/clang/lib/Sema/TreeTransform.h (66 lines): - line 641: // FIXME: We use LLVM_ATTRIBUTE_NOINLINE because inlining causes a ridiculous - line 901: // TODO: avoid TemplateName abstraction - line 1773: // FIXME: loses template args. - line 1919: // FIXME: this involves duplicating earlier analysis in a lot of - line 2736: // FIXME: We lose track of the IsFreeIvar bit. - line 2740: /*FIXME:*/IvarLoc, IsArrow, - line 2757: /*FIXME:*/PropertyLoc, - line 3053: // FIXME: We shouldn't build ImplicitValueInitExprs for direct-initialization. - line 3161: // FIXME: Can this happen? We should not try to expand the pack - line 3286: SS.Extend(SemaRef.Context, /*FIXME:*/SourceLocation(), TL, - line 3646: // FIXME: We could do much better if we could guarantee that the - line 3811: /// FIXME: By default, this routine adds type qualifiers only to types - line 3827: // FIXME: this is the right thing for template instantiation, but - line 3986: // FIXME: recurse? - line 4342: // FIXME: ext vector locs should be nested - line 4747: // FIXME: Need to transform ConsumedParameters for variadic template - line 4828: // FIXME: Track the location of the ellipsis (and track source location - line 5305: // FIXME: maybe don't rebuild if all the template arguments are the same. - line 5360: // FIXME: maybe don't rebuild if all the template arguments are the same. - line 5389: /// FIXME: Wrap this in an elaborated-type-specifier? - line 5467: // FIXME: dependent operand expressions? - line 5470: // TODO: this is really lame; we should really be rebuilding the - line 5960: // FIXME: Pass the real colon location in. - line 6170: /*FIXME:*/S->getWhileLoc(), Cond.get(), - line 6290: // FIXME: We always rebuild the return statement because there is no way - line 7576: // FIXME: this is a bit instantiation-specific. - line 7725: // FIXME: It would be slightly more efficient in the non-dependent case to - line 7887: /*FIXME:*/E->getLHS()->getLocStart(), - line 7912: // FIXME: Wrong source location information for the '('. - line 7961: // FIXME: this is a bit instantiation-specific. - line 7977: // FIXME: Bogus source location for the operator - line 7981: // FIXME: to do this check properly, we will need to preserve the - line 8136: /*FIXME:*/E->getInitializer()->getLocEnd(), - line 8151: // FIXME: Bad source location - line 8171: // FIXME: Bad source location - line 8189: // FIXME: Bad source location - line 8212: // FIXME: Attempt to reuse the existing syntactic form of the InitListExpr - line 8315: // FIXME: Will we ever have proper type location here? Will we actually - line 8453: // FIXME: Poor location information - line 8550: // FIXME: Wrong source location information for the '('. - line 8791: /*FIXME:*/T->getTypeLoc().getEndLoc(), - line 8852: // FIXME: instantiation-specific. - line 8886: /*FIXME:*/ E->getLocStart()); - line 8899: /*FIXME:*/E->getLocStart(), - line 8901: /*FIXME:*/E->getLocStart(), - line 8931: // FIXME: instantiation-specific. - line 9336: // TODO: If this is a conversion-function-id, verify that the - line 9405: // FIXME: Instantiation-specific - line 9410: return getDerived().RebuildCXXConstructExpr(T, /*FIXME:*/E->getLocStart(), - line 9468: // FIXME: Instantiation-specific - line 9473: // FIXME: Pass in E->isListInitialization(). - line 9475: /*FIXME:*/T->getTypeLoc().getEndLoc(), - line 9668: // FIXME: Retain a pack expansion if RetainExpansion is true. - line 9711: // FIXME: This is dumb. Store the lambda information somewhere that outlives - line 9742: // FIXME: we're faking the locations of the commas - line 9802: // TODO: If this is a conversion-function-id, verify that the - line 9934: // FIXME: to do this check properly, we will need to preserve the - line 10303: // FIXME: Can this really happen? - line 10311: // FIXME: Retain a pack expansion if RetainExpansion is true. - line 10864: // FIXME: semantic checking! - line 10912: // FIXME: Doesn't account for ObjCInterfaceDecl! - line 10989: SourceLocation TemplateKWLoc; // FIXME: retrieve it from caller. - line 11005: // FIXME: Bogus location information. - line 11008: SourceLocation TemplateKWLoc; // FIXME: retrieve it from caller. - line 11177: SourceLocation TemplateKWLoc; // FIXME: retrieve it from caller. - line 11181: /*FIXME: FirstQualifier*/ nullptr, tools/clang/lib/Sema/SemaDeclCXX.cpp (63 lines): - line 174: // FIXME: If the call to this decl is using any of its default arguments, we - line 226: // FIXME: - line 532: // FIXME: If we knew where the '=' was, we could easily provide a fix-it - line 992: // need to be explicitly initialized. FIXME: Anonymous structs that contain no - line 1722: // FIXME: instantiate DerivedRD if necessary. We need a PoI for this. - line 1751: // FIXME: It would be better if CXXBasePath had the base specifier for - line 1937: // FIXME: We might want to attempt typo correction here. - line 2010: // FIXME: Destruction of ObjC lifetime types has side-effects. - line 2109: // FIXME: It would be nicer if the keyword was ignored only for this - line 2640: // TODO: implement -Wuninitialized and fold this into that framework. - line 2789: // FIXME: We might be able to short-circuit this if we know in advance that - line 3021: // FIXME: preserve source range information - line 3041: // FIXME: Would this be relevant for ObjC object pointers? Or block pointers? - line 3200: // FIXME: This isn't quite ideal, since our ASTs don't capture all - line 3268: // class initialization. FIXME: Should we try to check the - line 3329: // FIXME: This isn't quite ideal, since our ASTs don't capture all - line 3965: // FIXME: Provide a fixit to remove the base specifier. This requires - line 4327: // FIXME: all the access-control diagnostics are positioned on the - line 4388: // FIXME: caret should be on the start of the class name - line 4618: // TODO: other template argument types? - line 4785: // FIXME: MSVC's docs say all bases must be exportable, but this doesn't - line 5340: // FIXME: Explain why this special member can't be const. - line 5370: // FIXME: Explain why the special member can't be constexpr. - line 5610: // FIXME: Explain inaccessibility if DiagKind == 3. - line 5727: // FIXME: Handle anonymous unions declared within anonymous unions. - line 6365: // See FIXME in test/SemaCXX/warn-overload-virtual.cpp for an example. - line 6778: // FIXME: Rather that making the constructor invalid, we should endeavor - line 7126: // FIXME: Suppress this warning if the conversion function ends up being a - line 7292: // FIXME: Should we be merging attributes? - line 7348: // FIXME: We should be able to push Namespc here, so that the each DeclContext - line 7782: // FIXME: diagnose the following if we care enough: - line 7830: // FIXME: but we might be increasing its access, in which case we - line 7976: // TODO: complain somehow if Shadow was used. It shouldn't - line 8050: // FIXME: Check that the base class member is accessible? - line 8085: // FIXME: We ignore attributes for now. - line 8134: // FIXME: not all declaration name kinds are legal here - line 8220: // FIXME: Pick up all the declarations if we found an overloaded function. - line 8350: // FIXME: non-dependent using decls? - line 8447: // FIXME: in C++0x, we can diagnose if we can prove that the - line 8504: // TODO: it would be nice if "definitely valid" results were cached - line 8656: // FIXME: The C++0x standard does not clearly say this is ill-formed, - line 8841: // FIXME: Copying or moving the parameters could add extra exceptions to the - line 8905: // FIXME: Register a note to be produced if we encounter an error while - line 9236: // FIXME: Rebuild the template parameters in the new context, and - line 9567: // FIXME: If the destructor has a body that could throw, and the newly created - line 10283: // FIXME: We should form some kind of AST representation for the implied - line 10669: // FIXME: Do not assign to a vbase that will be assigned by some other base - line 10715: // FIXME: We should form some kind of AST representation for the implied - line 11458: // TODO: this should be re-enabled for static locals by !CXAAtExit - line 11475: // FIXME: This duplicates a lot of code from Sema::ConvertArgumentsForCall. - line 11895: // FIXME: This diagnostic is absolutely terrible. - line 11955: // FIXME: Add all the various semantics of linkage specifications - line 12053: // FIXME: should this be a test for macosx-fragile specifically? - line 12342: // FIXME: don't ignore attributes. - line 12346: // friend. TODO: for source fidelity, remember the headers. - line 12396: // FIXME: we don't support these right now. - line 12464: // FIXME: handle "template <> friend class A;", which - line 12667: // TODO: better diagnostics for this case. Suggesting the right - line 12738: // FIXME: This is an egregious hack to cope with cases where the scope stack - line 12823: // specializations. FIXME: Do not generate these implicit declarations. - line 13051: // FIXME: this note won't trigger for delayed access control - line 13618: // FIXME: This should be emitted by tblgen. - line 13680: // FIXME: Preserve type source info. tools/clang/lib/Sema/SemaExpr.cpp (56 lines): - line 228: // FIXME: An explanation of why exactly it can't be inherited - line 850: // FIXME: add some way to gate this entire thing for correctness in - line 909: // FIXME: In C++11, these cases are conditionally-supported, meaning we're - line 1809: // FIXME: computing the declaration context might fail here (?) - line 1881: // TODO: fixit for inserting 'Base::' in the other cases. - line 2007: // FIXME: Arbitrarily pick the first declaration for the note. - line 2027: // FIXME: If we ended up with a typo for a type name or - line 2035: // FIXME: We found a keyword. Suggest it, but don't provide a fix-it - line 2061: // FIXME: computing the declaration context might fail here (?) - line 2500: // FIXME: This should use a new expr for a direct reference, don't - line 3007: // FIXME: Does the addition of const really only apply in - line 3518: // FIXME: Actually, they don't. We seem to have accidentally invented the - line 4262: // FIXME: need to deal with const... - line 4405: /*FIXME:EqualLoc*/UninstExpr->getLocStart()); - line 4422: // FIXME: We should really be rebuilding the default argument with new - line 4883: /// TODO: Handle pointer return types. - line 4988: // FIXME: Will need to cache the results of name lookup (including ADL) in - line 5326: // FIXME: put back this assert when initializers are worked out. - line 5409: E->setType(Context.VoidTy); // FIXME: just a place holder for now. - line 5860: // FIXME: This means that pretty-printing the final AST will produce curly - line 6392: // FIXME: Type of conditional expression must be complete in C mode. - line 6511: // FIXME: Consider unifying with 'areComparableObjCPointerTypes'. - line 6788: // FIXME: add a couple examples in this comment. - line 6817: // Treat address-space mismatches as fatal. TODO: address subspaces - line 7111: Kind = CK_IntegralToPointer; // FIXME: null? - line 7157: Kind = CK_IntegralToPointer; // FIXME: null - line 7193: Kind = CK_IntegralToPointer; // FIXME: null - line 7389: // FIXME: Currently, we fall through and treat C++ classes like C - line 7391: // FIXME: We also fall through for atomics; not sure what should - line 7597: // FIXME: Should we really be allowing this? - line 7598: // FIXME: We really just pick the LHS type arbitrarily? - line 8351: // C++0x: Don't allow scoped enums. FIXME: Use something better than - line 9890: // FIXME: This code shouldn't be necessary! We should catch the implicit - line 11247: // FIXME: there are a variety of strange constraints to enforce here, for - line 11304: // FIXME: Check that expression type is complete/non-abstract; statement - line 11337: // FIXME: This diagnostic isn't actually visible because the location is in - line 11351: // Offset of an array sub-field. TODO: Should we allow vector elements? - line 11367: // FIXME: An integral constant expression? - line 11588: // FIXME: We should allow unexpanded parameter packs here, but that would, - line 11638: // return type. TODO: what should we do with declarators like: - line 11743: // FIXME: Share capture structure between BlockDecl and CapturingScopeInfo! - line 11779: EPI.TypeQuals = 0; // FIXME: silently? - line 12057: // (or wchar_t*), then there was no error (C++ 4.2p2). FIXME: - line 12355: // FIXME: This does the right thing, but maybe we need a more general - line 12365: // FIXME: This is a bit ugly; is it really the best way to handle this - line 12553: // FIXME: This instantiates constexpr functions too frequently. If this is - line 12561: // FIXME: This also implicitly defines special members too frequently. They - line 12623: // FIXME: Is this really right? - line 12741: // FIXME: Is there any other context where a local variable can be - line 12750: // FIXME: Add additional diagnostic info about class etc. which prevents - line 12805: // FIXME: The C++11 rule don't actually state this explicitly, but I'm - line 13041: // FIXME: It is not clear whether we want to build an lvalue reference - line 13357: // FIXME: If we error out because an outer lambda can not implicitly - line 13546: // FIXME: Is this necessary? These contexts are only used for default - line 13691: // TODO: update this with DR# once a defect report is filed. - line 13740: // FIXME: Not fully implemented yet! We need to have a better understanding tools/clang/lib/Basic/Targets.cpp (50 lines): - line 238: // FIXME: We should return 0 when building kexts. - line 302: // FIXME: This is wrong; the macro refers to the numerical values - line 629: // FIXME: WIntType should be SignedLong - line 654: // FIXME: POSIXThreads isn't exactly the option this should be defined for, - line 663: // FIXME We cannot encode the revision information into 32-bits - line 888: // FIXME: The following are added to allow parsing. - line 1069: // TODO: Finish this list and add an assert that we've handled them - line 1121: // FIXME: Should be controlled by command line option. - line 1243: // FIXME: The following are not yet generated here by Clang, but are - line 1569: // FIXME: generic has to be added to the target - line 1664: // FIXME: Is this really right? - line 1668: // FIXME: implement - line 2103: // FIXME: Warn, deprecate, and potentially remove this. - line 2124: // FIXME: Warn, deprecate, and potentially remove this. - line 2216: // FIXME: Warn on this when the CPU is set to it. - line 2385: // FIXME: This results in terrible diagnostics. Clang just says the CPU is - line 2493: // FIXME: This *really* should not be here. - line 3069: // FIXME: We are hard-coding the tune parameters based on the CPU, but they - line 3138: // FIXME: Historically, we defined this legacy name, it would be nice to - line 3144: // FIXME: Historically, we defined this legacy name, it would be nice to - line 3159: // FIXME: GCC may be enabling these in cases where some other k6 - line 3453: // FIXME: properly analyze this constraint: - line 3583: // FIXME: Check that we actually have cmpxchg8b before setting - line 4161: // FIXME: Enumerated types are variable width in straight AAPCS. - line 4200: // FIXME: Override "preferred align" for double and long long. - line 4222: // FIXME: Should we just treat this as a feature? - line 4225: // FIXME: This duplicates code from the driver that sets the -target-abi - line 4239: // FIXME: this is invalid for WindowsCE - line 4287: // FIXME: We need support for -meabi... we could just mangle it into the - line 4300: // FIXME: This should be based on Arch attributes, not CPU names. - line 4567: // FIXME: It's more complicated than this and we don't really support - line 4741: // FIXME: Is this really right? - line 4873: // FIXME: this is invalid for WindowsCE - line 4884: // TODO map the complete set of values - line 4938: // FIXME: This should be based off of the target features in - line 5159: llvm_unreachable("FIXME: Unimplemented support for U* constraints."); - line 5528: // FIXME: Implement! - line 5539: // FIXME: Implement! - line 5553: // FIXME: Implement! - line 5649: // FIXME: Support Sparc quad-precision long double? - line 5751: // FIXME: Is this really right? - line 5884: // FIXME: defines for different 'flavours' of MCU - line 5888: // FIXME: Implement. - line 5906: // FIXME: implement - line 5917: // FIXME: Is this really right? - line 5921: // FIXME: implement - line 5949: // FIXME: generic has to be added to the target - line 6315: // FIXME: We should automatically clobber $1 only for inline assembly code - line 7037: // TODO: Update Description for DXIL - line 7503: // FIXME: If we are completely confident that we have the right set, we only tools/clang/lib/AST/ASTContext.cpp (46 lines): - line 118: // TODO: handle comments for function parameters properly. - line 122: // TODO: we could look up template parameter documentation in the template - line 328: // FIXME: Adjust alias templates? - line 757: // FIXME: Is this the ideal solution? - line 1147: // FIXME: Remove ? - line 1518: /// FIXME: Pointers into different addr spaces could have different sizes and - line 2326: // FIXME: When we get proper type location information for exceptions, - line 2695: // TODO: if we ever care about optimizing VLAs, there are no-op - line 3586: // TODO: avoid this copy - line 4101: // FIXME: What is the design on getTagDeclType when it requires casting - line 4126: // FIXME: derive from "Target" ? - line 4133: // FIXME: derive from "Target" ? - line 4188: // FIXME: getSplitUnqualifiedType() actually walks all the way to - line 4277: // FIXME: Block pointers, too? - line 4306: // DNInfo work in progress: FIXME: source locations? - line 4473: // FIXME: Why are TypeSpec and TypeSpecWithTemplate distinct in the - line 4737: // FIXME: We should not do this unless E->refersToBitField() is true. This - line 4741: FieldDecl *Field = E->getSourceBitField(); // FIXME: conditional bit-fields? - line 4761: // FIXME: C does not permit promotion of a 'long : 3' bitfield to int. - line 4792: // FIXME: Is there some better way to compute this? - line 4842: // FIXME: In C++, enum types are never integer types. - line 4952: // FIXME: Needs the FlagAppleBlock bit. - line 4987: // FIXME: Needs the FlagAppleBlock bit. - line 5147: // FIXME: There might(should) be a better way of doing this computation! - line 5248: // FIXME: This is not very efficient. - line 5254: // FIXME: There might(should) be a better way of doing this computation! - line 5358: // FIXME: This is not very efficient. - line 5407: // FIXME: OBJCGC: weak & strong - line 5480: // FIXME: potentially need @encodes for these! - line 5565: // FIXME: Use SmallString for accumulating string. - line 5835: // FIXME: Consider if we need to output qualifiers for 'Class

'. - line 5906: // FIXME: we shoul do better than that. 'M' is available. - line 6026: // FIXME: There doesn't seem to be a way to indicate in the encoding that - line 6530: // FIXME: Canonicalization? - line 7444: // FIXME: double check this - line 7445: // FIXME: should we error if lbase->getRegParmAttr() != 0 && - line 7464: // FIXME: some uses, e.g. conditional exprs, really want this to be 'both'. - line 7797: // FIXME: This isn't correct! But tricky to implement because - line 7803: // FIXME: This isn't correct! But tricky to implement because - line 7825: // FIXME: The merged type should be an ExtVector! - line 7832: // FIXME: This should be type compatibility, e.g. whether - line 8170: // TODO: No way to make AltiVec vectors in builtins yet. - line 8252: // FIXME: There's no way to have a built-in with an rvalue ref arg. - line 8363: // FIXME: This doesn't match gcc's behavior for dllexport inline functions. - line 8754: /// FIXME: Currently only builds up the map using \c Stmt and \c Decl nodes. - line 8790: // FIXME: Currently we add the same parent multiple times, but only tools/clang/lib/Serialization/ASTReader.cpp (46 lines): - line 418: // FIXME: currently this is approximated by checking whether this is not a - line 435: // FIXME: if the diagnostics are incompatible, save a DiagnosticOptions that - line 504: // FIXME: Check whether this identifier was referenced anywhere in the - line 1302: // FIXME: Can we map this down to a particular submodule? That would be - line 1568: // FIXME: This information should be propagated through the - line 1570: // FIXME: We don't ever mark excluded headers. - line 1972: // FIXME: Should we also do this for PCH files? They could also - line 2044: // FIXME: Allow this for files explicitly specified with -include-pch too. - line 2203: // FIXME: The &F == *ModuleMgr.begin() check is wrong for modules. - line 2572: // FIXME: Skip reading this record if our ASTConsumer doesn't care - line 2594: // FIXME: If ID && SpecialTypes[I] != ID, do we need a separate - line 2622: // FIXME: Ignore weak undeclared identifiers from non-original PCH - line 2828: // FIXME: Modules will have some trouble with this. This is clearly not - line 2974: // FIXME: Modules will have trouble with this. - line 3052: // FIXME: Deal with macros-only imports. - line 3176: // FIXME: we should use input files rather than storing names. - line 3475: // FIXME: How do we load the 'use'd modules? They may not be submodules. - line 3595: // FIXME: This seems rather a hack. Should CurrentDir be part of the - line 3682: // FIXME: Find a better way to deal with collisions between these - line 3799: // FIXME: This does not make macro-only imports visible again. - line 3973: // FIXME: This allows use of the VFS; we do not allow use of the - line 4211: // FIXME: Should we error on these cases? - line 4248: // FIXME: set the definition loc for CurrentModule, or call - line 4305: // FIXME: If we wrote the virtual paths instead of the 'real' paths, - line 4318: // FIXME: Re-evaluate this section; maybe only store InputFile IDs instead - line 4324: // FIXME: Textual headers are not marked in the HeaderInfo table. Load - line 4700: // FIXME: Stable encoding - line 4895: // FIXME: Make it work properly with modules. - line 5320: // FIXME: ASTContext::getInjectedClassNameType is not currently suitable - line 5714: // FIXME: Check that the signedness of CharTy is correct! - line 5843: // FIXME: Is this right? - line 5900: // FIXME: Merging a function definition should merge - line 5914: // FIXME: It'd be nice to do something a bit more targeted here. - line 6414: // FIXME: This should not happen; deserializing declarations should - line 6800: // FIXME: What happens if these are changed by a module import? - line 6806: // FIXME: What happens if these are changed by a module import? - line 6964: // FIXME: Not quite happy with the statistics here. We probably should - line 7914: // FIXME: 'template' keyword location not saved anywhere, so we fake it. - line 8249: // FIXME: There seems to be no point in delaying this, it does not depend - line 8255: // FIXME: Check for =delete/=default? - line 8256: // FIXME: Complain about ODR violations here? - line 8305: // FIXME: Skip over implicit declarations for now. This matters for things - line 8392: // FIXME: Walk the definition, figure out what's different, - line 8413: // FIXME: Indicate which modules had instantiations of this definition. - line 8414: // FIXME: How can this even happen? - line 8468: // FIXME: this works around module+PCH performance issue. tools/clang/lib/Sema/SemaTemplate.cpp (42 lines): - line 116: // FIXME: we promote access to public here as a workaround to - line 179: // FIXME: we might have ambiguous templates, in which case we - line 232: // FIXME: Typo correction? - line 880: // FIXME: Horrible, horrible hack! We can't currently represent this - line 1047: // FIXME: Would it make sense to try to "forget" the previous - line 1240: // FIXME: C++0x [temp.param]p9 allows default template-arguments - line 1733: // FIXME: Forward-declared enums require a TSK_ExplicitSpecialization - line 1845: // FIXME: We actually could/should check the template arguments here - line 2117: // FIXME: CanonType is not actually the canonical type, and unfortunately - line 2126: // TODO: in theory this could be a simple hashtable lookup; most - line 2535: // FIXME: Recover from this by treating the declaration as a redeclaration - line 2545: // FIXME: Template parameter list matters too - line 2737: // TODO: Unify with InstantiateClassTemplateSpecialization()? - line 2754: // TODO: Actually use the failed-deduction info? - line 2815: // FIXME: LateAttrs et al.? - line 2872: // FIXME: Can we do any checking at this point? I guess we could check the - line 3525: // FIXME: the template-template arg was a DependentTemplateName, - line 3721: // FIXME: If there's a more recent default argument that *is* visible, - line 4349: // FIXME: If we ever want to support general, address-constant expressions - line 4378: // FIXME: Other qualifiers? - line 4854: // FIXME: Produce a cloned, canonical expression? - line 4881: // FIXME: We can do some limited checking for a value-dependent but not - line 4912: // FIXME: We need TemplateArgument representation and mangling for these. - line 5002: // FIXME: If there's no viable conversion to the template parameter type, - line 5517: // FIXME: This is a hack. We need a better way to handle substituted - line 5917: // FIXME: HandleDeclarator's diagnostics aren't quite as good, though. - line 6069: // FIXME: We need to delay this check until instantiation in some cases: - line 6162: // FIXME: We probably shouldn't complain about these headers for - line 6281: // FIXME: Template parameter list matters, too - line 6508: /*FIXME:*/KWLoc); - line 6535: // FIXME: Diagnose arguments without names in C. - line 6864: // FIXME: It is somewhat wasteful to build - line 6914: // FIXME: Check if the prior specialization has a point of instantiation. - line 7438: // FIXME: Need to notify the ASTMutationListener that we did this. - line 7586: // FIXME: We don't have any representation for explicit instantiations of - line 7598: // TODO: check if/when DNInfo should replace Name. - line 7651: // FIXME: Add a fix-it to remove the 'constexpr' and add a 'const' if one is - line 7693: // FIXME: Check for explicit specialization? - line 7698: // FIXME: Can we provide a note showing where this was declared? - line 7790: // FIXME: Create an ExplicitInstantiation node? - line 7908: // FIXME: We may still want to build some representation of this - line 7947: // FIXME: Create some kind of ExplicitInstantiationDecl here. tools/clang/lib/Sema/SemaExprCXX.cpp (42 lines): - line 91: // FIXME: This area of the standard is very messy, and the current - line 200: // FIXME: Should we be suppressing ambiguities here? - line 224: // FIXME: This is a workaround until we get real drafting for core - line 297: // FIXME: What if we have no nested-name-specifier? - line 943: // FIXME: We need to delay this marking in PotentiallyPotentiallyEvaluated - line 1098: // FIXME: Creating a CXXFunctionalCastExpr around a CXXConstructExpr - line 1562: // FIXME: This is wrong: PlacementArgs misses out the first (size) argument. - line 1565: // FIXME: Missing call to CheckFunctionCall or equivalent - line 1762: // FIXME: Should the Sema create the expression and embed it in the syntax - line 1838: return true; // FIXME: clean up expressions? - line 1868: // FIXME: this comparison should ignore CC and the like. - line 2193: // FIXME: Do we need to check for default arguments here? - line 2665: // FIXME: If we have an operator T* and an operator void*, we must pick - line 2718: // FIXME: PerformContextualImplicitConversion should return ExprError - line 3091: // Overall FIXME: we are recomputing too many types here and doing far too - line 3098: // FIXME: When can ToType be a reference type? - line 3103: From, /*FIXME:ConstructLoc*/SourceLocation(), - line 3107: /*FIXME:ConstructLoc*/ SourceLocation(), ToType, SCS.CopyConstructor, - line 3113: /*FIXME:ConstructLoc*/ SourceLocation(), ToType, SCS.CopyConstructor, - line 3310: // FIXME: doing this here is really ugly. - line 3801: // FIXME: This appears to be a g++ bug: more complex cases reveal that it - line 3868: // FIXME: Implement UTT_IsDestructible and UTT_IsNothrowDestructible. - line 3888: // TODO: Propagate nothrowness for implicitly declared special members. - line 3942: // FIXME: However, it may actually be selected at the actual overload - line 3954: // TODO: check whether evaluating default arguments can throw. - line 3981: // FIXME: In C++0x, a constructor template can be a default constructor. - line 3992: // FIXME: check whether evaluating default arguments can throw. - line 4442: // FIXME: This should likely be tracked as an APInt to remove any host - line 4781: // FIXME: Print the possible common types by printing the return types of - line 4815: // FIXME: Handle C99's complex types, vector types, block pointers and Obj-C++ - line 5137: // FIXME: extended qualifiers? - line 5184: // FIXME: block pointer types? - line 5347: // actual method. FIXME: we should infer retention by selector in - line 5477: // FIXME: In order to attach the temporaries, wrap the statement into - line 5591: // FIXME: Make this configurable? - line 6230: // FIXME: stupid workaround for a codegen bug! - line 6273: // FIXME: Teach the constant evaluator to deal with the non-dependent parts - line 6516: // FIXME: Add any other expr types that could be be seen by the delayed typo - line 6569: // TODO: Properly handle various permutations of possible corrections when - line 6686: // FIXME: This is a hack. It would be better if we pushed the lambda scope - line 6737: // FIXME: Also consider what happens for something like this that involves - line 6752: // FIXME: PR 17877 showed that getCurLambda() can return a valid pointer tools/clang/lib/Sema/SemaInit.cpp (41 lines): - line 173: // FIXME: Avoid truncation for 64-bit length strings. - line 715: // FIXME: Check that IL isn't already the semantic form of some other - line 735: // FIXME: use a proper constant - line 862: // FIXME: Should we warn for copy-list-initialization in these cases? - line 1083: // FIXME: Better EqualLoc? - line 1112: // FIXME: Need to handle atomic aggregate types with implicit init lists. - line 1244: // FIXME: This is invalid, and accepting it causes overload resolution - line 1301: // FIXME: It would be wonderful if we could point at the actual member. In - line 1642: // FIXME: This needs to detect holes left by designated initializers too. - line 1720: // FIXME: Actually build a CXXDefaultInitExpr? - line 1843: // FIXME: Should check for holes left by designated initializers too. - line 2071: << /*FIXME:has side effects=*/0 - line 2188: << /*FIXME:has side effects=*/0 - line 2562: << /*FIXME:has side effects=*/0 - line 2648: << /*FIXME:has side effects=*/0 - line 3010: case FK_AddressOfOverloadFailed: // FIXME: Could do better - line 3394: // FIXME: This breaks backward compatibility, e.g. PR12117. As a - line 3913: // FIXME: Do we need to make sure that we only consider conversion - line 4268: // FIXME: Why do we use an implicit conversion here rather than trying - line 4274: /*FIXME:InOverloadResolution=*/false, - line 4279: // FIXME: Use the conversion function set stored in ICS to turn - line 4832: // FIXME: should we be doing this here? - line 5154: // FIXME: Can we tell apart casting vs. converting? - line 5268: // FIXME: Do we need to limit this to copy-constructor-like - line 5496: // FIXME: Check default arguments as far as that's possible. - line 5557: // FIXME: Hack to work around cast weirdness. - line 5838: // FIXME: Per DR1213, subscripting on an array temporary produces an xvalue. - line 5845: // FIXME: Rebuild the expression instead of mutating it. - line 6087: // FIXME: We don't currently have the ability to accurately - line 6158: // FIXME: Ugly hack around the fact that Entity.getType() is not - line 6424: // FIXME: Should we move this initialization into a separate - line 6532: // HLSL Change Starts - all analysis done - TODO semantic changes for IR - line 6592: // FIXME: This is a hack. What we really should do is create a user - line 6635: // FIXME: This is a hack. What we really should do is create a user - line 6947: // FIXME: Customize for the initialized entity? - line 6958: } else // FIXME: diagnostic below could be better! - line 7168: // FIXME: Using "DestType" for the entity we're printing is probably - line 7298: // FIXME: Already diagnosed! - line 7518: S->ICS->dump(); // FIXME: use OS - line 7524: S->ICS->dump(); // FIXME: use OS - line 7682: // FIXME: This will break if the typedef requires qualification. But tools/clang/lib/CodeGen/CGObjCMac.cpp (40 lines): - line 52: // FIXME: We should find a nicer way to make the labels for metadata, string - line 202: // FIXME: It would be nice to unify this with the opaque type, so that the - line 744: // FIXME - accessibility - line 888: /// defined. We should not need this, see FIXME in GenerateProtocol. - line 920: // FIXME: This is a horrible name. - line 929: // FIXME: This can be dropped once string functions are unified. - line 1649: // FIXME: maybe we should be doing things differently for all the - line 1827: // FIXME: We shouldn't need to do this cast, rectify the ASTContext and - line 2528: // FIXME: I don't understand why gcc generates this, or where it is - line 2537: // FIXME: We shouldn't need this, the protocol decl should contain enough - line 2578: // FIXME: I don't understand why gcc generates this, or where it is - line 2641: // FIXME: Is this necessary? Why only for protocol? - line 2662: // FIXME: Is this necessary? Why only for protocol? - line 2900: // FIXME: This is poor design, the OCD should have a pointer to the category - line 3016: // FIXME: Gross - line 3029: // FIXME: Set CXX-structors flag. - line 3173: // FIXME: Should we look these up somewhere other than the module. Its a bit - line 3730: - FIXME: If there is no @finally block we can do a few more - line 3922: // FIXME: For the time being we also match id; this should - line 3952: // FIXME: @catch (Class c) ? - line 4306: // FIXME: Get from somewhere - line 4449: // FIXME - Use iterator. - line 4575: // FIXME: Why the asymmetry? We divide by word size in bits on other - line 4584: // FIXME: Why the asymmetry, we divide by byte size in bits here? - line 4785: // FIXME: This is not ideal; we shouldn't have to do this copy. - line 4827: // FIXME: Avoid std::string in "Sel.getAsString()" - line 4839: // FIXME: Merge into a single cstring creation function. - line 4880: // FIXME: Merge into a single cstring creation function. - line 4893: // FIXME: Merge into a single cstring creation function. - line 4894: // FIXME: This Decl should be more precise. - line 4941: // FIXME: It would be nice if we had an LLVM construct for this. - line 5005: // FIXME: This is leaked. - line 5006: // FIXME: Merge with rewriter code? - line 5231: // FIXME: This is the size of the setjmp buffer and should be target - line 5754: // FIXME: Is this correct (that meta class size is never computed)? - line 5771: // FIXME: why is this flag set on the metaclass? - line 6093: // FIXME: This matches gcc, but shouldn't the visibility be set on the use as - line 6357: // FIXME: We shouldn't need to do this lookup here, should we? - line 6509: // FIXME: don't use this for that. - line 6752: // FIXME: We shouldn't need to do this cast, rectify the ASTContext and tools/clang/lib/Sema/SemaType.cpp (39 lines): - line 959: // FIXME: Check for protocols to which the class type is already - line 970: // TODO: determine whether that's the right thing to do. - line 972: // FIXME: Check for protocols to which the class type is already - line 1178: // FIXME: Should move the logic from DeclSpec::Finish to here for validity - line 1432: // FIXME: Preserve type source info. - line 1554: // FIXME: Imaginary. - line 2255: // FIXME: Loc is too inprecise here, should use proper locations for args. - line 2378: // TODO: should we care about decl qualifiers? - line 2466: // TODO: mark whether we did this inference? - line 2522: // FIXME: TypeSourceInfo doesn't preserve location information for - line 2556: // FIXME: We can't currently provide an accurate source location and a - line 2882: // FIXME: Maybe we should suggest adding braces instead of parens - line 3649: // FIXME: This check isn't quite right: it allows star in prototypes - line 3779: // FIXME: This really should be in BuildFunctionType. - line 3981: // FIXME: This really should be in BuildFunctionType. - line 4025: // FIXME: It's rather inefficient to have to split into two vectors - line 4155: // FIXME: Checking this here is insufficient. We accept-invalid on: - line 4278: case Declarator::ObjCParameterContext: // FIXME: special diagnostic here? - line 4279: case Declarator::ObjCResultContext: // FIXME: special diagnostic here? - line 4295: // FIXME: We may want to allow parameter packs in block-literal contexts - line 4395: // TODO: mark whether we did this inference? - line 4579: // FIXME: preserve this information to here. - line 4658: // FIXME: This holds only because we only have one unary transform. - line 4739: // FIXME: add other typespec types and change this to an assert. - line 4851: // FIXME: exception specs - line 4880: // FIXME: Provide a source location for the _Atomic keyword. - line 4922: // FIXME: Ordering here? - line 4945: // FIXME: LocInfoTypes are "transient", only needed for passing to/from Parser - line 5632: // FIXME: Handle dependent types that aren't yet object types. - line 5718: // FIXME: MemberPointer chunks don't carry the location of the *. - line 6335: // FIXME: This attribute needs to actually be handled, but if we ignore - line 6372: // FIXME: there should be some type checking happening here, I would - line 6463: // FIXME: The definition might not be visible. - line 6513: // FIXME: Are there other cases which require instantiating something other - line 6666: // FIXME: Add this assertion to make sure we always get instantiation points. - line 6668: // FIXME: Add this assertion to help us flush out problems with - line 6704: // FIXME: What about other cases where an import extends a redeclaration - line 7068: // FIXME: It isn't entirely clear whether incomplete atomic types - line 7093: // FIXME: Do we need any handling for ARC here? tools/clang/lib/Serialization/ASTReaderDecl.cpp (38 lines): - line 360: // FIXME: Reorder according to DeclNodes.td? - line 477: // FIXME: Can we diagnose ODR violations somehow? - line 1255: // FIXME: If this is a redeclaration of a function from another module, handle - line 1512: // FIXME: We only need to do this if the merged definition declares members - line 1542: // FIXME: Move this out into a .def file? - line 1591: // FIXME: Issue a diagnostic if the base classes don't match when we come - line 1594: // FIXME: Issue a diagnostic if the list of conversion functions doesn't - line 1601: // FIXME: Issue a diagnostic if FirstFriend doesn't match when we come to - line 1605: // FIXME: ODR-checking for merging lambdas (this happens, for instance, - line 1705: // FIXME: This is wrong for the ARM ABI, where some other module may have - line 1746: // FIXME: Check consistency if we have an old and new operator delete. - line 1844: // FIXME: Actually merge here, don't just overwrite. - line 1890: /// TODO: Unify with ClassTemplateDecl version? - line 2023: /// TODO: Unify with ClassTemplateSpecializationDecl version? - line 2086: /// TODO: Unify with ClassTemplatePartialSpecializationDecl version? - line 2194: // FIXME: Provide a known merge target to the second and subsequent such - line 2264: // FIXME: This is duplicated in several places. Refactor. - line 2503: // FIXME: For namespaces and types, we're permitted to check that the entity - line 2591: // FIXME: This needs to cope with merging of prototyped/non-prototyped - line 2625: // FIXME: Also check the bitwidth is odr-equivalent, if any. - line 2631: // FIXME: Also check the value is odr-equivalent. - line 2884: // FIXME: We should do something similar if we merge two definitions of the - line 2941: // FIXME: [dcl.fct.spec]p4: - line 3030: // FIXME: In this case, the declaration should only be visible if a module - line 3322: // FIXME: This should really be - line 3547: // FIXME: We have three different dispatches on decl kind here; maybe - line 3585: // FIXME: We should not warn for duplicates in diamond: - line 3712: // FIXME: If we also have an update record for instantiating the - line 3716: // FIXME: We should call addHiddenDecl instead, to add the member - line 3726: // FIXME: Avoid the linear-time scan here. - line 3763: // FIXME: Maybe check for ODR violations. - line 3828: // FIXME: If we already have a partial specialization set, - line 3854: // FIXME: Check consistency if we have an old and new operator delete. - line 3868: // FIXME: If the exception specification is already present, check that it - line 3885: // FIXME: Also do this when merging redecls. - line 3888: // FIXME: If the return type is already deduced, check that it matches. - line 3896: // FIXME: This doesn't send the right notifications if there are - line 3924: // FIXME: This doesn't send the right notifications if there are tools/clang/lib/Sema/SemaHLSL.cpp (37 lines): - line 1897: // TODO: refine the code for getting element type - line 2503: // TODO: review this - this will allocate at least once per string - line 3167: // TODO: implement template parameter constraints for HLSL intrinsic methods in declarations - line 3189: // TODO: reenable the check and skip template argument. - line 3436: // TODO: support operator[][](indexType, uint). - line 3840: // TODO: enalbe this once we introduce precise master option - line 4401: // TODO: handle adding qualifications like const - line 4425: // TODO: handle colmajor/rowmajor - line 5638: // TODO: calculate the function call result. - line 6239: // TODO: support out modifier - line 6534: // TODO: Get* functions used here add up to a bunch of redundant code. - line 6569: // TODO: consider caching this value for perf - line 6605: // TODO: consider caching this value for perf - line 6669: // TODO: handle multidimensional arrays and arrays of arrays - line 6704: // TODO: consider caching this value for perf - line 7375: // TODO: InitializationSequence::Perform in SemaInit should take the arity of incomplete - line 8089: // TODO: Shouldn't we have more specific ICK enums so we don't have to re-evaluate - line 8091: // There's a FIXME note in PerformImplicitConversion that calls out exactly this - line 8173: // TODO: construct vector/matrix and component cast expressions - line 8176: // TODO: determine how to handle individual component conversions: - line 8738: // TODO: TYPE_CONVERSION_BY_REFERENCE does not seem possible here - line 8851: // TODO: skip things like PointStream. - line 9071: // TODO: re-review the Check** in Clang and add equivalent diagnostics if/as needed, possibly after conversions - line 9609: // TODO: Is this correct? Does fxc support lvalue return here? - line 9862: // TODO: LValue to RValue cast was all that CanConvert (ValidateCast) did anyway, - line 10207: // TODO: handle shorthand cases. - line 10427: // TODO: validate no recursion start from every function. - line 10431: // TODO: make these error 'real' errors rather than on-the-fly things - line 11197: // TODO: improve this to provide a 'peek' at intermediate types, - line 11221: // TODO: handle multi-dimensional arrays - line 11487: // TODO: support float arg directly. - line 12550: // TODO : Remove this check once we support function declarations/pointers in HLSL - line 13211: // TODO: Determine if this is really the best way to get the matrix/vector specialization - line 13333: case clang::attr::HLSLInstance: //TODO - test - line 13342: case clang::attr::HLSLMaxTessFactor: //TODO - test - line 13351: case clang::attr::HLSLNumThreads: //TODO - test - line 13508: case clang::attr::HLSLSemantic: // TODO: Consider removing HLSLSemantic attribute include/llvm/IR/DebugInfoMetadata.h (37 lines): - line 109: // FIXME: Fix callers and remove condition on N. - line 134: // FIXME: Fix callers and remove condition on N. - line 313: /// TODO: Merge into node for DW_TAG_array_type, which should have a custom - line 352: /// TODO: Add a pointer to the context (DW_TAG_enumeration_type) once that no - line 403: /// TODO: Separate the concepts of declaration contexts and lexical scopes. - line 455: /// TODO: Merge with directory/file node (including users). - line 456: /// TODO: Canonicalize paths on creation. - line 513: /// TODO: Remove the hardcoded name and context, since many types don't use - line 515: /// TODO: Split up flags. - line 596: /// TODO: Split out DW_TAG_unspecified_type. - line 597: /// TODO: Drop unused accessors. - line 652: /// TODO: Delete; they're not really related. - line 679: /// TODO: Split out members (inheritance, fields, methods, etc.). - line 741: /// TODO: Separate out types that need this extra operand: pointer-to-member - line 770: /// TODO: Delete; they're not really related. - line 837: /// TODO: Detach from DerivedTypeBase (split out MDEnumType?). - line 838: /// TODO: Create a custom, unrelated node for DW_TAG_array_type. - line 922: /// TODO: Detach from CompositeType, and fold the array of types in directly - line 1211: /// FIXME: Add a check for getDiscriminator(). - line 1212: /// FIXME: Add a check for getColumn(). - line 1213: /// FIXME: Change the getFilename() check to getFile() (or add one for - line 1230: /// FIXME: Delete this. See comments in implementation and at the only call - line 1248: /// TODO: Remove DisplayName. It's always equal to Name. - line 1249: /// TODO: Split up flags. - line 1420: /// FIXME: Should this be looking through bitcasts? - line 1436: /// FIXME: Should this be looking through bitcasts? - line 1458: /// TODO: Remove these and update code to use \a DILexicalBlock directly. - line 1571: // TODO: Remove these once they're gone from DILexicalBlockBase. - line 1802: /// TODO: Hardcode to DW_TAG_variable. - line 1844: /// TODO: Remove DisplayName. It's always equal to Name. - line 1928: /// TODO: Split between arguments and otherwise. - line 1929: /// TODO: Use \c DW_TAG_variable instead of fake tags. - line 1930: /// TODO: Split up flags. - line 2009: /// FIXME: Instead of DW_OP_plus taking an argument, this should use DW_OP_const - line 2012: /// TODO: Co-allocate the expression elements. - line 2013: /// TODO: Separate from MDNode, or otherwise drop Distinct and Temporary - line 2062: /// TODO: Store arguments directly and change \a DIExpression to store a tools/clang/tools/libclang/CIndex.cpp (36 lines): - line 620: // FIXME: Eventually remove. This part of a hack to support proper - line 641: // FIXME: ObjCClassRef/ObjCProtocolRef for forward class/protocol - line 724: // FIXME: Visit the "outer" template parameter lists on the TagDecl - line 812: // FIXME: Visit explicitly-specified template arguments! - line 818: // FIXME: Attributes? - line 894: // FIXME: Visit the "outer" template parameter lists on the FunctionDecl - line 903: // FIXME: Visit the "outer" template parameter lists on the TagDecl - line 973: // FIXME: Eventually convert back to just 'VisitDeclContext()'. Essentially - line 1068: // FIXME: This implements a workaround with @property declarations also being - line 1160: // FIXME: No source location information! - line 1254: // FIXME: Per-identifier location info? - line 1263: // FIXME: This whole routine is a hack to work around the lack of proper - line 1379: // FIXME: Visit nested-name-specifier. - line 1383: // FIXME: Visit nested-name-specifier. - line 2346: // FIXME: If we ever want to show these implicit accesses, this will be - line 2752: // FIXME: Lambda init-captures. - line 3051: // FIXME: Add a flag for modules. - line 3581: return /*FIXME:*/Msg->getLeftLoc(); - line 3939: // FIXME: A CXCursor_InclusionDirective should give the location of the - line 3942: // FIXME: A CXCursor_AnnotateAttr should give the location of the annotation - line 3945: // FIXME: A CXCursor_AsmLabelAttr should give the location of the label - line 4629: // FIXME: Setting "FirstInDeclGroup" in CXCursors is a hack that only works - line 4768: // FIXME: Need a way to enumerate all non-reference cases. - line 4817: // FIXME: Multiple variables declared in a single declaration - line 4901: // FIXME: Need a way to enumerate all non-reference cases. - line 4950: // FIXME: Multiple variables declared in a single declaration - line 4989: // FIXME: Multiple variables declared in a single declaration - line 5108: // FIXME: We end up faking the "parent" declaration here because we - line 5176: case Decl::Label: // FIXME: Is this right?? - line 5269: // FIXME: The ASTs should make finding the definition easier. - line 5308: // FIXME: We don't really know where to find the - line 5403: // FIXME: This is, unfortunately, linear time. - line 6235: // FIXME: Some simple tests here could identify macro definitions and - line 6343: // FIXME: We use a ridiculous stack size here because the data-recursion - line 6764: // FIXME: Note that we can't easily compute the lexical context of a - line 7528: // TODO: Portability. lib/CodeGen/SelectionDAG/DAGCombiner.cpp (34 lines): - line 556: // FIXME: determine better conditions for this xform. - line 617: // FIXME: determine better conditions for this xform. - line 762: // FIXME: We blindly ignore splats which include undef which is overly - line 1879: // FIXME: Refactor this and xor and other similar operations together. - line 2087: // FIXME: If the input is something that is easily negated (e.g. a - line 2182: // FIXME: We check for the exact bit here because the generic lowering gives - line 4160: // FIXME: disable this unless the input to the binop is a shift by a constant. - line 4985: // FIXME: Instead of testing for UnsafeFPMath, this should be checking for - line 5660: // FIXME: Only extend SETCC N, N and SETCC N, c for now. - line 5727: // FIXME: Bring more similar combines here, common to sext/zext (maybe aext?). - line 6099: // FIXME: We should extend this to work for vectors too. - line 6663: // TODO: It would be possible to merge the extensions in some cases. - line 7545: // FIXME: This turns two single-precision and one double-precision - line 7584: // FIXME: This turns two single-precision and one double-precision - line 7791: // FIXME: This turns two single-precision and one double-precision - line 7838: // FIXME: This turns two single-precision and one double-precision - line 8285: // FIXME: custom lowering of ConstantFP might fail (see e.g. ARM - line 8377: // FIXME: This optimization requires some level of fast-math, so the - line 8793: // FIXME: FNEG and FABS have a lot in common; refactor. - line 9266: // FIXME: In some cases, we can be smarter about this. - line 9599: // TODO: Handle store large -> read small portion. - line 9600: // TODO: Handle TRUNCSTORE/LOADEXT - line 9755: // FIXME: Do we want some more target hooks? - line 10082: /// FIXME: When the cost model will be mature enough, we can relax - line 11366: // FIXME: is there such a thing as a truncating indexed store? - line 11655: // FIXME: We should handle recursing on other vector shuffles and - line 12187: // TODO: Check to see if this is a CONCAT_VECTORS of a bunch of - line 12929: // FIXME: We could support implicit truncation if the shuffle can be - line 13211: // FIXME: If either is a pre/post inc/dec load, - line 13221: // FIXME: this discards src value information. This is - line 13276: // FIXME: Discards pointer and AA info. - line 13285: // FIXME: Discards pointer and AA info. - line 13518: // FIXME: Turn all of these into setcc if setcc if setcc is legal - line 13962: // FIXME: The depth check could be made to return the last non-aliasing tools/clang/lib/Sema/SemaChecking.cpp (34 lines): - line 30: #include "clang/Lex/Lexer.h" // TODO: Extract static functions to fix layering. - line 873: // FIXME: VFP Intrinsics should error if VFP not present. - line 1284: // FIXME: data member pointers? - line 1322: // FIXME: We should check as much as we can in the template definition. - line 1398: // FIXME: Our choice of AST representation here is less than ideal. - line 1698: // FIXME: For any builtin other than a load, the ValType must not be - line 1710: // FIXME: Can this happen? By this point, ValType should be known - line 1890: // FIXME: We don't allow floating point scalars as input. - line 2200: // FIXME: Do this check. - line 2218: // FIXME: This loses syntactic information. - line 2317: // FIXME: This isn't correct for methods (results in bogus warning). - line 2844: // TODO: This is less than ideal. Overload this to take a value. - line 3805: /// FIXME: This returns the wrong results in some cases (if cv-qualifiers don't - line 3833: // FIXME: Suggest parens if the expression needs them. - line 3880: // FIXME: Technically specifying a precision or field width here - line 4000: // FIXME: We should have a general way to reason about operator - line 4331: // FIXME: If this is an initializer list, suggest removing the braces - line 4438: // FIXME: Technically specifying a precision or field width here - line 4593: } // TODO: handle other formats - line 5141: // TODO: For strncpy() and friends, this could suggest sizeof(dst) - line 5628: // FIXME: That isn't a ConditionalOperator, so doesn't get here. - line 6053: // FIXME: The only reason we need to pass the type in here is to get - line 6145: // TODO: bitfields? - line 6151: // TODO: bitfields? - line 6395: // TODO: Investigate using GetExprRange() to get tighter bounds - line 6824: // FIXME: Force the precision of the source value down so we don't print - line 7189: // TODO: remove this early return once the false positives for constant->bool - line 7199: // TODO: this should happen for bitfield stores, too. - line 7869: // FIXME: Check for more interesting cases, like "x.n = ++x.n". - line 7873: // FIXME: If this is a reference, map through to its value. - line 8071: // FIXME: If there are operations in the RHS which are unsequenced - line 8121: // FIXME: CXXNewExpr and CXXDeleteExpr implicitly call functions. - line 8262: // FIXME: This diagnostic should point the '[*]' if source-location - line 8432: // TODO: Be smarter about handling cases where array_typesize is not a lib/Transforms/Scalar/LoopStrengthReduce.cpp (33 lines): - line 36: // TODO: More sophistication in the way Formulae are generated and filtered. - line 38: // TODO: Handle multiple loops at a time. - line 40: // TODO: Should the addressing mode BaseGV be changed to a ConstantExpr instead - line 43: // TODO: When truncation is free, truncate ICmp users' operands to make it a - line 46: // TODO: When a negated register is used by an add (such as in a list of - line 311: // FIXME: AR->getNoWrapFlags() - line 564: // FIXME: AR->getNoWrapFlags(SCEV::FlagNW) - line 627: // FIXME: AR->getNoWrapFlags(SCEV::FlagNW) - line 654: // FIXME: AR->getNoWrapFlags(SCEV::FlagNW) - line 738: /// TODO: Allow UDivExpr if we can find an existing IV increment that is an - line 852: /// TODO: Some of these could be merged. Also, a lexical ordering - line 932: AddRecCost += 1; /// TODO: This should be a function of the stride. - line 935: // TODO: The non-affine case isn't precisely modeled here. - line 1025: // TODO: This should probably be the pointer size. - line 1194: /// TODO: Represent multiple users of the same expression in common? - line 1206: // TODO: Add a generic icmp too? - line 1886: // correctly. TODO: Remove this restriction. - line 2104: // FIXME: Overly conservative, termination condition could be an 'or' etc.. - line 2238: // TODO: Be less conservative when the type is similar and can use the same - line 2485: // FIXME: not sure if we want to recognize negation. - line 2536: /// TODO: Consider IVInc free if it's already used in another chains. - line 2741: /// TODO: Walk the entire domtree within this loop, not just the path to the - line 3087: /// TODO: This currently misses non-constant addrec step registers. - line 3088: /// TODO: Should this give more weight to users inside the loop? - line 3214: //FIXME: AR->getNoWrapFlags(SCEV::FlagNW) - line 3357: // TODO: If Sum is zero, it probably means ScalarEvolution missed an - line 3446: // TODO: For now, just add the min and max offset, because it usually isn't - line 3568: // TODO: Reconsider this special case. - line 3592: // TODO: This could be optimized to avoid all the copying. - line 3625: // TODO: This assumes we've done basic processing on all uses and - line 3752: // TODO: Use a more targeted data structure. - line 3755: // FIXME: The code for the scaled and unscaled registers looks - line 4738: // with the same value. TODO: Reorganize this. tools/clang/unittests/Format/FormatTest.cpp (33 lines): - line 255: // FIXME: This is slightly inconsistent. - line 1340: // FIXME: One day we might want to implement adjustment of leading whitespace - line 2438: // FIXME: This would fit into the column limit if we'd fit "{ {" on the first - line 2593: // FIXME: We never break before the macro name. - line 2782: // FIXME: We could probably treat IPC_BEGIN_MESSAGE_MAP/IPC_END_MESSAGE_MAP as - line 2877: " A(X x)\n" // FIXME: function-level try blocks are broken. - line 3104: "Aaa(\n" // FIXME: There shouldn't be a linebreak here. - line 3395: // FIXME: Is this a good system? - line 3713: // FIXME: The precise cut-offs wrt. the number of saved lines might need some - line 5087: // FIXME: Should we have the extra indent after the second break? - line 5230: // FIXME: The space after 'i' is wrong, but hopefully, this is a rare case. - line 5512: // FIXME: Is there a way to make this work? - line 5527: // FIXME: We cannot handle this case yet; we might be able to figure out that - line 5666: // FIXME: single value wrapped with paren will be treated as cast. - line 5706: // FIXME: The indentation here is not ideal. - line 5796: // FIXME: Without the comment, this breaks after "(". - line 6139: // FIXME: The alignment of these trailing comments might be bad. Then again, - line 6313: // FIXME: For some nested lists, we can do better. - line 6481: // FIXME: This is still incorrectly handled at the formatter side. - line 6485: // FIXME: - line 6512: // FIXME: Come up with a better indentation for #elif. - line 6725: // FIXME: The formatting is still wrong here. - line 6736: // FIXME: This is not what we want... - line 6818: // FIXME: In LLVM style, there should be a space in front of a '<' for ObjC - line 7099: // FIXME: Make casts work, without breaking f()[4]. - line 7242: " .aaaaaaaa];", // FIXME: Indentation seems off. - line 7260: // FIXME: This violates the column limit. - line 7687: // FIXME: Handle embedded spaces in one iteration. - line 7831: // FIXME: Put additional penalties on breaking at non-whitespace locations. - line 8534: // FIXME: Should align all three assignments - line 9453: // FIXME: Encode Cyrillic and CJK characters below to appease MS compilers. - line 9787: // FIXME: This does not seem right, there should be more indentation before - line 10315: // FIXME: Handle parsing of macros around conflict markers correctly: tools/clang/include/clang/AST/RecursiveASTVisitor.h (32 lines): - line 218: // FIXME: migrate callers to TemplateArgumentLoc instead. - line 232: // FIXME: take a TemplateArgumentLoc* (or TemplateArgumentListInfo) instead. - line 339: // FIXME: revamp to take TypeLoc's rather than Types. - line 360: // FIXME: this currently just calls the matching Type methods - line 794: // FIXME: no template name location? - line 795: // FIXME: no source locations for a template argument pack? - line 809: // FIXME: how can TSI ever be NULL? - line 1063: // FIXME: ComplexTypeLoc is unfinished - line 1080: // FIXME: location of base class? - line 1121: // FIXME: order? why not size expr first? - line 1122: // FIXME: base VectorTypeLoc is unfinished - line 1129: // FIXME: VectorTypeLoc is unfinished - line 1134: // FIXME: size and attributes - line 1135: // FIXME: base VectorTypeLoc is unfinished - line 1143: // FIXME: location of exception specifications (attributes?) - line 1175: // FIXME: location of underlying expr - line 1194: // FIXME: use the loc for the template name? - line 1351: DEF_TRAVERSE_DECL(ObjCPropertyImplDecl, {// FIXME: implement this - line 1388: DEF_TRAVERSE_DECL(ObjCCompatibleAliasDecl, {// FIXME: implement - line 1391: DEF_TRAVERSE_DECL(ObjCCategoryDecl, {// FIXME: implement - line 1399: DEF_TRAVERSE_DECL(ObjCCategoryImplDecl, {// FIXME: implement - line 1402: DEF_TRAVERSE_DECL(ObjCImplementationDecl, {// FIXME: implement - line 1405: DEF_TRAVERSE_DECL(ObjCInterfaceDecl, {// FIXME: implement - line 1417: DEF_TRAVERSE_DECL(ObjCProtocolDecl, {// FIXME: implement - line 1549: // FIXME: For now traverse explicit instantiations here. Change that - line 1768: // FIXME: implement the rest. - line 1775: // FIXME: implement the rest. - line 1936: {// FIXME: MS Asm doesn't currently parse Constraints, Clobbers, etc. Once - line 2071: // All we need are the default actions. FIXME: use a helper function. - line 2232: // We traverse those if so. FIXME: implement these. - line 2703: // FIXME: look at the following tricky-seeming exprs to see if we - line 2711: // FIXME: go through all the stmts and exprs again, and see which of them tools/clang/lib/SPIRV/SpirvEmitter.cpp (32 lines): - line 95: // TODO: The following doesn't handle Load(int, int) yet. And it is basically a - line 701: // TODO: assign specific StageVars w.r.t. to entry point - line 1043: // TODO: consider moving this hack into SPIRV-Tools as a transformation. - line 1069: // TODO: Ouch. Very hacky. We need special path to get the value type if - line 1243: // TODO: figure out the proper flag based on the function decl. - line 1279: // TODO: replace this with FlagArtificial|FlagObjectPointer. - line 1391: // TODO: Actually this is slightly incorrect. The Vulkan spec says: - line 1644: // TODO: revert back to use OpVariable initializer - line 1675: // TODO: replace this with FlagIsLocal enum. - line 2969: // TODO: This could result in rounding error if the initializer is a - line 4304: // TODO: handle multiple stream-output objects - line 4319: // TODO: handle multiple stream-output objects - line 5287: // TODO: We can optimize the codegen by emitting OpCompositeExtract if - line 5896: // TODO: is this optimization always correct? - line 6230: // TODO: the following check is essentially duplicated from - line 6396: // TODO: we are saying the constant has Function storage class here. - line 6658: return rhs; // TODO: incorrect for compound assignments - line 6733: // TODO: OK, this return value is incorrect for compound assignments, for - line 6815: // TODO: OK, this return value is incorrect for compound assignments, for - line 6895: // TODO: OK, this return value is incorrect for compound assignments, for - line 7107: // TODO: some code are duplicated from processBinaryOp. Try to unify them. - line 7219: return nullptr; // TODO: handle constant array index - line 7255: return nullptr; // TODO: handle constant array index - line 7301: // TODO: the following is duplicating the logic in doCXXMemberCallExpr. - line 7304: return nullptr; // TODO: handle constant array index - line 8788: // TODO: We currently don't propagate the NoContraction decoration. - line 9090: // TODO: If the argument can be const folded and evaluated, we could - line 9665: // TODO: We may want to change this behavior for SPIR-V. - line 11490: // TODO: There is no SPIR-V equivalent for "line" topology. Is it the - line 12047: // TODO: We should be able to handle cases where the SV_OutputControlPointID - line 12796: // TODO: Revisit this r-value setting when handling vk::ext_result_id ? - line 13036: // TODO: We support only `sizeof()`. Support other kinds. tools/clang/include/clang/AST/DataRecursiveASTVisitor.h (32 lines): - line 214: // FIXME: migrate callers to TemplateArgumentLoc instead. - line 228: // FIXME: take a TemplateArgumentLoc* (or TemplateArgumentListInfo) instead. - line 337: // FIXME: revamp to take TypeLoc's rather than Types. - line 358: // FIXME: this currently just calls the matching Type methods - line 725: // FIXME: no template name location? - line 726: // FIXME: no source locations for a template argument pack? - line 740: // FIXME: how can TSI ever be NULL? - line 995: // FIXME: ComplexTypeLoc is unfinished - line 1012: // FIXME: location of base class? - line 1053: // FIXME: order? why not size expr first? - line 1054: // FIXME: base VectorTypeLoc is unfinished - line 1061: // FIXME: VectorTypeLoc is unfinished - line 1066: // FIXME: size and attributes - line 1067: // FIXME: base VectorTypeLoc is unfinished - line 1075: // FIXME: location of exception specifications (attributes?) - line 1107: // FIXME: location of underlying expr - line 1126: // FIXME: use the loc for the template name? - line 1274: DEF_TRAVERSE_DECL(ObjCPropertyImplDecl, {// FIXME: implement this - line 1313: DEF_TRAVERSE_DECL(ObjCCompatibleAliasDecl, {// FIXME: implement - line 1316: DEF_TRAVERSE_DECL(ObjCCategoryDecl, {// FIXME: implement - line 1325: DEF_TRAVERSE_DECL(ObjCCategoryImplDecl, {// FIXME: implement - line 1328: DEF_TRAVERSE_DECL(ObjCImplementationDecl, {// FIXME: implement - line 1331: DEF_TRAVERSE_DECL(ObjCInterfaceDecl, {// FIXME: implement - line 1343: DEF_TRAVERSE_DECL(ObjCProtocolDecl, {// FIXME: implement - line 1525: // FIXME: This is incorrect; there is no other node for an explicit - line 1724: // FIXME: implement the rest. - line 1731: // FIXME: implement the rest. - line 1917: {// FIXME: MS Asm doesn't currently parse Constraints, Clobbers, etc. Once - line 2046: // All we need are the default actions. FIXME: use a helper function. - line 2207: // We traverse those if so. FIXME: implement these. - line 2676: // FIXME: look at the following tricky-seeming exprs to see if we - line 2684: // FIXME: go through all the stmts and exprs again, and see which of them tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp (32 lines): - line 538: // FIXME: We may change this at some point. - line 555: // FIXME: Class method lookup. Right now we dont' have a good way - line 896: // FIXME: Remove FunctionDecl parameter. - line 897: // FIXME: Is it really okay if MakeCollectable isn't a suffix? - line 1006: // FIXME: These calls are currently unsupported. - line 1062: // FIXME: This should all be refactored into a chain of "summary lookup" - line 1108: // FIXME: This function has an out parameter that returns an - line 1134: // FIXME: this hack should possibly go away once we can handle - line 1413: // FIXME: Does the non-threaded performSelector family really belong here? - line 1503: // FIXME: Eventually replace the use of state->get with - line 1517: // FIXME: The receiver could be a reference to a class, meaning that - line 1601: // FIXME: For now we opt for false negatives with NSWindow, as these objects - line 1614: // FIXME: For now we don't track NSPanels. object for the same reason - line 1664: // FIXME: Eventually remove. - line 1871: // FIXME: This set of cases was copied from SemaExprObjC. - line 1893: // FIXME: We will eventually need to handle non-statement-based events - line 2344: // FIXME: Per comments in rdar://6320065, "create" only applies to CF - line 2414: // FIXME: This will crash the analyzer if an allocation comes from an - line 2504: // FIXME: This is a hack to make sure the summary log gets cleared between - line 2584: // FIXME: We don't support ARC being turned on and off during one analysis. - line 2717: // FIXME: For now we invalidate the tracking of all symbols passed to blocks - line 2770: // FIXME: If we get an error during a bridge cast, should we report it? - line 2911: // FIXME: We may be able to do this with related result types instead. - line 3091: // FIXME: Add a flag to the checker where allocations are assumed to - line 3123: // FIXME: This is ugly. See checkEndAnalysis for why it's necessary. - line 3405: // FIXME: This should not be necessary, but otherwise the argument seems to be - line 3515: // FIXME: What is the convention for blocks? Is there one? - line 3642: // go. TODO: This could definitely be improved upon. - line 3673: // FIXME: We may add to the interface of evalAssume the list of symbols - line 3749: // FIXME: Handle sending 'autorelease' to already released object. - line 3889: // FIXME: we should instead check for imbalances of the retain/releases, - line 3930: // FIXME: This might not be as unique as we would like. tools/clang/lib/Sema/SemaDeclAttr.cpp (31 lines): - line 151: // FIXME: Should we walk the chain of classes? - line 173: // FIXME: Include the type in the argument list. - line 424: // FIXME -- Check the type that the smart pointer points to. - line 508: // FIXME -- need to check this again on template instantiation - line 916: // FIXME: This check is currently being done in the analysis. It can be - line 952: // FIXME: This check is currently being done in the analysis. It can be - line 1477: // FIXME: it would be good for us to keep the WeakRefAttr as-written instead - line 1516: // FIXME: check if target symbol exists in current file - line 2199: // FIXME: This error message could be improved, it would be nice - line 2403: // TODO: Validation should use a backend target library that specifies - line 2670: // FIXME: Do we need to bounds check? - line 2694: // FIXME: do we need to check if the type is NSString*? What are the - line 2790: // FIXME: this isn't fully correct; we also need to test whether the - line 2975: // FIXME: Cache the number on the Attr object? - line 3028: // FIXME: Cache the number on the Attr object if non-dependent? - line 3029: // FIXME: Perform checking of type validity - line 3147: // FIXME: glibc uses 'word' to define register_t; this is narrower than a - line 3194: // FIXME: Sync this with InitializePredefinedMacros; we need to match int8_t - line 3196: // FIXME: Make sure floating-point mappings are accurate - line 3197: // FIXME: Support XF and TF types - line 3463: // TODO: diagnose uses of these conventions on the wrong target. - line 4210: // FIXME: Check for decl - it should be void ()(void). - line 5108: // FIXME: We should be able to handle these cases in TableGen. - line 5119: // FIXME: We should be able to handle this in TableGen as well. It would be - line 5126: // FIXME: This emits a different error message than - line 5200: // FIXME: Missing call to CheckFunctionDeclaration(). - line 5201: // FIXME: Mangling? - line 5202: // FIXME: Is the qualifier info correct? - line 5203: // FIXME: Is the DeclContext correct? - line 5252: // FIXME: "hideous" code from Sema::LazilyCreateBuiltin - line 5345: // FIXME: we may want to suppress diagnostics for all tools/clang/lib/CodeGen/CGCall.cpp (30 lines): - line 52: // TODO: Add support for __pascal to LLVM. - line 54: // TODO: Add support for __vectorcall to LLVM. - line 63: /// FIXME: address space qualification? - line 102: // FIXME: Kill copy. - line 235: // FIXME: Kill copy. - line 301: // FIXME: Kill copy? - line 324: // FIXME: Do we need to handle ObjCMethodDecl? - line 401: // FIXME: Kill copy. - line 436: // FIXME: Kill copy. - line 450: // FIXME: Kill copy. - line 464: // FIXME: Kill copy. - line 765: // FIXME: What are the right qualifiers here? - line 965: // FIXME: Assert that we aren't truncating non-padding bits when have access - line 988: // FIXME: Do we need to recurse here? - line 1075: // FIXME: Assert that we aren't truncating non-padding bits when have access - line 1186: // FIXME: handle sseregparm someday... - line 1422: // FIXME: handle sseregparm someday... - line 1517: // TODO: Features gets us the features on the command line including - line 1523: // TODO: Migrate the existing backends to keep the map around rather than - line 1553: // TODO: Support the fpmath option this way. It will require checking - line 1758: // FIXME: __attribute__((nonnull)) can also be applied to: - line 1790: // initialize the return value. TODO: it might be nice to have - line 1802: // FIXME: We no longer need the types from FunctionArgList; lift up and - line 1881: // FIXME: We should have a common utility for generating an aggregate - line 2546: // FIXME: Generate IR in one pass, rather than going back and fixing up these - line 2830: // TODO: This is dead if we never emit the cleanup. We should create the - line 3239: // FIXME: We no longer need the types from CallArgs; lift up and simplify. - line 3251: // FIXME: Do this earlier rather than hacking it in here! - line 3449: // FIXME: Avoid the conversion through memory if possible. - line 3666: // FIXME: For now, emit a dummy basic block because expr emitters in lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (29 lines): - line 513: // FIXME: Use CONCAT for 2x -> 4x. - line 669: // FIXME: We capture more information than the dag can represent. For - line 1206: // FIXME: better loc info would be nice. - line 4026: // FIXME: Should we be checking DL->inlinedAt() to determine this? - line 4148: // FIXME: this definition of "user defined address space" is x86-specific - line 4172: // FIXME: this definition of "user defined address space" is x86-specific - line 4192: // FIXME: this definition of "user defined address space" is x86-specific - line 5315: // TODO: Handle 5 byte compare as 4-byte + 1 byte. - line 5316: // TODO: Handle 8 byte compare on x86-32 as two 32-bit loads. - line 5317: // TODO: Check alignment of src and dest ptrs. - line 5731: // FIXME: code duplicated from TargetLowering::ParseConstraints(). - line 6019: // TODO: This isn't quite right. We need to handle these according to - line 6311: // TODO: Support this. - line 6365: // FIXME: Why don't we do this for inline asms with MRVs? - line 6762: /// FIXME: When all targets are - line 6784: // FIXME: equivalent assert? - line 6911: // TODO: allow code generation to take advantage of partially preserved - line 7293: // FIXME: This isn't very clean... it would be nice to make this more - line 7446: // FIXME: A range of consecutive cases has 100% density, but only requires one - line 7651: // FIXME: Using the pointer type doesn't seem ideal. - line 7661: // FIXME: I don't think NumCmps is the correct metric: a single case and a - line 7801: // FIXME: This might not be the best algorithm for finding bit test clusters. - line 7825: // FIXME: This works, but doesn't seem very efficient. - line 7886: // TODO: This could be extended to merge any 2 cases in switches with 3 - line 7888: // TODO: Handle cases where W.CaseBB != SwitchBB. - line 7975: // FIXME: Optimize away range check based on pivot comparisons. - line 7988: JT->Default = Fallthrough; // FIXME: Move Default to JumpTableHeader. - line 7998: // FIXME: Optimize away range check based on pivot comparisons. - line 8215: // FIXME: Exploit unreachable default more aggressively. tools/clang/lib/Serialization/ASTWriter.cpp (29 lines): - line 152: Record.push_back(T->getSizeModifier()); // FIXME: stable values - line 153: Record.push_back(T->getIndexTypeCVRQualifiers()); // FIXME: stable values - line 193: // FIXME: need to stabilize encoding of calling convention... - line 353: // FIXME: Serialize this type (C++ only) - line 1124: // FIXME: This is wrong. We distinguish them by asking if the path is - line 1177: // FIXME: Remove this when output is deterministic. - line 1246: Record.push_back((unsigned)M->Kind); // FIXME: Stable encoding - line 1257: // FIXME: Should we also include a signature here? - line 1639: // FIXME: Using the mtime here will cause problems for explicit module - line 1798: /// TODO: We should probably use an on-disk hash table (stored in a - line 1849: Record.push_back(File.getFileCharacteristic()); // FIXME: stable encoding - line 2027: // FIXME: use diagnostics subsystem for localization etc. - line 2522: //FIXME: How do we emit the 'use'd modules? They may not be submodules. - line 2563: // FIXME: This can easily happen, if we have a reference to a submodule that - line 2595: // FIXME: Make diagnostic pragma sections work properly with modules. - line 3458: // FIXME: We need to build the lookups table, which is logically const. - line 3494: // FIXME: While we might want to start emitting on-disk entries for negative - line 3939: Record.push_back(A->getKind()); // FIXME: stable encoding, target attrs - line 3951: // FIXME: When reading literal tokens, reconstruct the literal pointer - line 3954: // FIXME: Should translate token kind to a stable encoding. - line 3956: // FIXME: Should translate token flags to a stable encoding. - line 4292: // FIXME: Why do we not do this if there's already an update block? - line 4553: // FIXME: If the module has macros imported then later has declarations - line 4659: // FIXME: Ensure we don't get here for explicit instantiations. - line 4867: // FIXME: Is this right? - line 5002: // FIXME: ParmVarDecls that are part of a function type of a parameter of - line 5036: // FIXME: Emit a stable enum for NameKind. 0 = Identifier etc. - line 5540: // FIXME: Make VBases lazily computed when needed to avoid storing them. - line 5664: // FIXME: This happens during template instantiation, should we tools/clang/lib/CodeGen/TargetInfo.cpp (28 lines): - line 206: // FIXME: We should use a predicate for whether this behavior is true in the - line 333: // FIXME: This predicate is missing many cases, currently it just follows - line 345: // FIXME: This needs to be generalized to handle classes as well. - line 362: // FIXME: Reject bit-fields wholesale; there are two problems, we don't know - line 597: // FIXME: Assumes vectorcall is in use. - line 603: // FIXME: Assumes vectorcall is in use. - line 803: // FIXME: Traverse bases here too. - line 893: // FIXME: We should be able to narrow this integer in cases with dead - line 1039: // FIXME: Set alignment on indirect arguments. - line 1568: // FIXME: Assumes vectorcall is in use. - line 1574: // FIXME: Assumes vectorcall is in use. - line 1838: // FIXME: This code can be simplified by introducing a simple value class for - line 1842: // FIXME: Some of the split computations are wrong; unaligned vectors - line 1876: // FIXME: _Decimal32 and _Decimal64 are SSE. - line 1877: // FIXME: _float128 and _Decimal128 are (SSE, SSEUp). - line 2672: // FIXME: Enforce these by construction. - line 2948: // FIXME: This really results in shameful code when we end up needing to - line 2956: // FIXME: Cleanup. - line 3074: // FIXME: mingw-w64-gcc emits 128-bit struct as i128 - line 3190: // TODO: Implement this. For now ignore. - line 3388: // TODO: We can add more logic to computeInfo to improve performance. - line 4759: // FIXME: Try to match the types of the arguments more accurately where - line 4784: // FIXME: Handle vector types! - line 4885: // FIXME: Consider using 2 x vector types if the back end handles them - line 6111: // FIXME: Need to handle alignment - line 6244: // TODO: set calling convention - line 6251: // TODO: support vaarg - line 6262: // TODO: add dxil attributes tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp (27 lines): - line 108: // FIXME: It would be nice if we had a more general mechanism to add - line 374: // and the store. TODO: The function should just return new env and store, - line 570: // TODO: We're not evaluating allocators for all cases just yet as - line 676: // FIXME: Currently we insert temporary destructors for default parameters, - line 684: // FIXME: Currently CleanDtorState can be empty here due to temporaries being - line 689: // FIXME: Inlining of temporary destructors is not supported yet anyway, so - line 727: // FIXME: Currently the state might already contain the marker due to - line 1117: // FIXME: ChooseExpr is really a constant. We need to fix - line 1237: // FIXME: This is not complete. We basically treat @throw as - line 1349: // TODO: Clean up the unneeded nodes. - line 1384: // FIXME: Refactor this into a checker. - line 1681: // FIXME: add checker visit. - line 1687: // FIXME: Implement dispatch for symbolic pointers. - line 1713: // FIXME: Assert that stackFrameDoesNotContainInitializedTemporaries(*Pred)). - line 1747: // FIXME: add checker - line 1777: // FIXME: Eventually we should replace the logic below with a range - line 1884: // FIXME: Compute lvalue of field pointers-to-member. - line 1931: // FIXME: Prechecks eventually go in ::Visit(). - line 2033: // TODO: Move to StoreManager. - line 2299: // FIXME: If I pass null tag, the graph is incorrect, e.g for - line 2375: // FIXME: Some day in the future it would be nice to allow a "plug-in" - line 2413: // FIXME: Since we do not cache error nodes in ExprEngine now, this does not - line 2418: // FIXME: Replace with a general scheme to tell if the node is - line 2499: // FIXME: Get proper printing options. - line 2509: // FIXME: Get proper printing options. - line 2589: // FIXME: Replace with a general scheme to determine - line 2617: // FIXME: Replace with a general scheme to determine tools/clang/unittests/HLSL/SystemValueTest.cpp (25 lines): - line 215: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 225: // TODO: We should probably improve this error message since it pertains to a parameter - line 245: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 250: // TODO: add tests for CullPrimitive - line 280: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 291: // TODO: Verify system value item is included in signature, treated as arbitrary, - line 302: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 313: // TODO: Verify system value is included in signature, system value enum is appropriately set, - line 324: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 335: // TODO: Verify system value is included in signature and arbitrary is packed before system value - line 337: // TODO: Verify warning about declaring the system value last for fxc HLSL compatibility. - line 347: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 358: // TODO: Verify system value is included in signature and has packing location (-1, -1), - line 369: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 380: // TODO: Verify system value is not included in signature, - line 388: // TODO: Implement - line 393: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 404: // TODO: Implement - line 409: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 420: // TODO: Implement - line 425: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 436: // TODO: Implement - line 445: // TODO: add tests for mesh/amplification shaders to system-values.hlsl - line 456: // TODO: Verify system value is included in corresponding signature (with fallback), - line 535: // TODO: add tests for mesh/amplification shaders to system-values.hlsl tools/clang/lib/Analysis/ThreadSafety.cpp (25 lines): - line 66: // FIXME: add a note about the attribute location in MutexExp or D - line 94: /// FIXME: this analysis does not currently support either re-entrant - line 595: // FIXME -- handle compound assignment operators - line 782: // FIXME: Handle other CFGElement kinds. - line 795: // FIXME: Handle other CFGElement kinds. - line 1213: // FIXME: Don't always warn when we have support for reentrant locks. - line 1461: /// FIXME: In future, we may be able to not inherit from a visitor. - line 1685: /// FIXME: For classes annotated with one of the guarded annotations, we need - line 1807: // FIXME: does this store a pointer to DRE? - line 1821: // FIXME -- should only fully remove if the attribute refers to 'this'. - line 1851: /// FIXME: Deal with non-primitive types. - line 1865: /// FIXME: Deal with non-primitive types. - line 1886: } else { // FIXME -- should be AK_Written - line 1892: else // FIXME -- should be AK_Written - line 1921: // TODO: get rid of this, and rely on pass-by-ref instead. - line 1973: // FIXME -- only handles constructors in DeclStmt below. - line 2084: // TODO: this whole function needs be rewritten as a visitor for CFGWalker. - line 2101: // FIXME: Do something a bit more intelligent inside constructor and - line 2136: // FIXME: is there a more intelligent way to check lock/unlock functions? - line 2157: // FIXME -- deal with exclusive vs. shared unlock functions? - line 2177: // FIXME -- Loc can be wrong here. - line 2200: // FIXME: By keeping the intersection, we may output more errors in future - line 2268: // purposes. FIXME: A 'break' statement might be a loop terminator, but - line 2354: // FIXME: the location here is not quite right. - line 2364: // FIXME: Should we call this function for all blocks which exit the function? tools/clang/lib/CodeGen/CGExpr.cpp (25 lines): - line 78: // FIXME: Should we prefer the preferred type alignment here? - line 87: // FIXME: Should we prefer the preferred type alignment here? - line 156: // FIXME: This function should take an LValue as an argument. - line 190: // FIXME: This should be looking at E, not M. - line 214: // FIXME: We should probably register a cleanup in this case. - line 323: // FIXME: Should we put the new global into a COMDAT? - line 342: // FIXME: ideally this would use EmitAnyExprToMem, however, we cannot do so - line 534: // FIXME: If Address Sanitizer is enabled, insert dynamic instrumentation - line 536: // FIXME: Get object address space - line 591: // FIXME: This is not guaranteed to be deterministic! Move to a - line 665: // FIXME: If the base type of the member expr is not FD->getParent(), - line 1591: // TODO: Matrix swizzle members - emit - line 1882: // FIXME: since we're shuffling with undef, can we just use the indices - line 2168: // FIXME: Eventually we will want to emit vector element references. - line 2189: // FIXME: We should be able to assert this for FunctionDecls as well! - line 2190: // FIXME: We should be able to assert this for all DeclRefExprs, not just - line 2968: // TODO: difference between ExtVector and HlslVector - line 3096: // FIXME: It should be impossible to have an LValue without alignment for a - line 3109: // TODO: handle path-aware TBAA for union. - line 3174: // FIXME: this should get propagated down through anonymous structs - line 3205: // FIXME: It should be impossible to have an LValue without alignment for a - line 3502: // TODO: make sure all cases are supported. - line 3779: // FIXME: This shouldn't require another copy. - line 3854: // FIXME: A lot of the code below could be shared with EmitMemberExpr. - line 3865: // FIXME: this isn't right for bitfields. tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp (24 lines): - line 119: // FIXME: Use the actual location of the ellipsis. - line 236: // FIXME: This should be generalized to more than just the AlignedAttr. - line 921: // FIXME: Fixup LBraceLoc - line 1073: // TODO: do we want to track the instantiation progeny of this - line 1292: // FIXME: Check against AS_none is an ugly hack to work around the issue that - line 1483: // TODO: should we remember this connection regardless of whether - line 1500: // FIXME: It might be cleaner to set this when attaching the body to the - line 1929: // TODO: don't always clone when decls are refcounted. - line 2495: // of the class template. FIXME: Diagnose or assert if this fails? - line 2711: // FIXME: We need to be able to instantiate FriendTemplateDecls. - line 3141: // FIXME: Updating the type to work around this is at best fragile. - line 3322: // FIXME: New needs a pointer to Tmpl - line 3390: // FIXME: Optimize to allow individual templates to be deserialized. - line 3475: // FIXME: Is CurContext correct for this? Should we go to the (instantiation - line 3574: // TODO: Set LateAttrs and StartingScope ... - line 3742: // FIXME: Not too happy about invalidating the declaration - line 3837: // FIXME: Factor out the duplicated instantiation context setup/tear down - line 3857: // FIXME: Need to inform the ASTConsumer that we instantiated the - line 4175: /*FIXME: ColonLoc */ - line 4181: // TODO: this could be templated if the various decl types used the - line 4420: // FIXME: Parmeters of pointer to functions (y below) that are themselves - line 4611: // FIXME: Find a better way to find these instantiations! - line 4681: InstantiateFunctionDefinition(/*FIXME:*/Inst.second, Function, true, - line 4722: InstantiateVariableDefinition(/*FIXME:*/ Inst.second, Var, true, utils/TableGen/CodeGenDAGPatterns.cpp (24 lines): - line 239: // FIXME: Really want an SMLoc here! - line 478: if (TypeVec.empty()) { // FIXME: Really want an SMLoc here! - line 525: if (TypeVec.empty()) { // FIXME: Really want an SMLoc here! - line 579: if (VTOperand.TypeVec.empty()) { // FIXME: Really want an SMLoc here! - line 603: if (TypeVec.empty()) { // FIXME: Really want an SMLoc here! - line 641: if (VTOperand.TypeVec.empty()) { // FIXME: Really want an SMLoc here! - line 661: if (TypeVec.empty()) { // FIXME: Really want an SMLoc here! - line 795: // FIXME: This is a hack to statically increase the priority of patterns - line 1143: if (TypeConstraints[i].OperandNo >= NumResults) // FIXME: need value # - line 1162: #if 0 // FIXME: implement refcounted tree nodes! - line 1217: return 1; // FIXME: Generalize SDNodeXForm - line 1417: //delete this; // FIXME: implement refcounting! - line 1467: assert(ResNo == 0 && "FIXME: PatFrag with multiple results?"); - line 1510: assert(ResNo == 0 && "FIXME: ComplexPattern with multiple results?"); - line 1790: // FIXME: This sucks, it should apply all implicit defs. - line 1794: // FIXME: Generalize to multiple possible types and multiple possible - line 1806: assert(getChild(0)->getNumTypes() == 1 && "FIXME: Unhandled"); - line 1968: // TODO: - line 2107: assert(New->getNumTypes() == 1 && "FIXME: Unhandled"); - line 2292: "FIXME: cannot name multiple result nodes yet"); - line 2304: "FIXME: cannot name multiple result nodes yet"); - line 3041: assert(ResNodes[i]->getNumTypes() == 1 && "FIXME: Unhandled"); - line 3046: // FIXME: InstImpResults should not be part of DAGInstruction. - line 3118: // FIXME: Assume only the first tree is the pattern. The others are clobber tools/clang/lib/CodeGen/CGHLSLMS.cpp (24 lines): - line 79: // TODO: make sure how minprec works - line 323: // FIXME: Can we avoid the need for this fake CBufferType? - line 357: // TODO: add AllResourceBound. - line 658: // TODO: refactor for faster search (switch by 1/2/3 first letters, then - line 683: // TODO: save globalcoherent to variable in EmitHLSLBuiltinCallExpr. - line 770: // TODO: save globalcoherent to variable in EmitHLSLBuiltinCallExpr. - line 835: // TODO: change to DxilProperties. - line 1329: // TODO: refactor for faster search (switch by 1/2/3 first letters, then - line 1364: // TODO: this is not efficient. - line 1637: // TODO: This is a duplicate check. We also have this check in - line 1702: // TODO: change getFactor to return float. - line 1801: // TODO: check this in front-end and report error. - line 2119: // TODO: validation this at ASTContext::getFunctionType in - line 2135: // TODO: validation this at ASTContext::getFunctionType in - line 2773: // TODO: collect such helper utility functions in one place. - line 2775: // TODO: refactor for faster search (switch by 1/2/3 first letters, then - line 3423: // TODO: check cannot mix packoffset elements with nonpackoffset - line 4062: // TODO: Stop handling missing cast here. Handle the casting of non-scalar values - line 4773: // TODO: use low precision type when support it in dxil. - line 4777: // TODO: use precision type when support it in dxil. - line 4960: // TODO: support other opcode if need. - line 5908: // TODO: Evolving this to warn then fail in future language versions. - line 5960: // FIXME: This will not emit in correct argument order with the other - line 5981: // TODO: A high level intrinsic for matrix array copy with orientation tools/clang/lib/Sema/SemaTemplateDeduction.cpp (22 lines): - line 274: // FIXME: Do we need to merge the results together here? - line 914: // FIXME: Compatible calling conventions. - line 1843: // FIXME: We follow the logic of C++0x [temp.deduct.type]p22 here, - line 1869: // FIXME: If there are no remaining arguments, we can bail out early - line 2150: // FIXME: These template arguments are temporary. Free them! - line 2163: // FIXME: These template arguments are temporary. Free them! - line 2273: /// TODO: Unify with ClassTemplatePartialSpecializationDecl version? - line 2317: // FIXME: These template arguments are temporary. Free them! - line 2328: // FIXME: These template arguments are temporary. Free them! - line 2393: /// TODO: Unify with ClassTemplatePartialSpecializationDecl version? - line 2704: // FIXME: Currently, this doesn't play nicely with qualification conversions. - line 2832: // FIXME: These template arguments are temporary. Free them! - line 2845: // FIXME: These template arguments are temporary. Free them! - line 2857: // FIXME: Where did the word "trailing" come from? - line 2908: // FIXME: These template arguments are temporary. Free them! - line 3757: // FIXME: When creating the InvokerTemplate in SemaLambda.cpp - line 3980: // FIXME: We're just going to throw this information away. Don't build it. - line 4027: // FIXME: Support a non-canonical deduced type for 'auto'. - line 4384: // FIXME: This mimics what GCC implements, but doesn't match up with the - line 4490: // FIXME: Can we order the candidates in some sane way? - line 4584: /// TODO: Unify with ClassTemplatePartialSpecializationDecl version? - line 4674: // FIXME: if !OnlyDeduced, we have to walk the whole subexpression to lib/Transforms/Scalar/SROA.cpp (22 lines): - line 322: // FIXME: We should probably define a "concat_iterator" helper and use that - line 361: /// FIXME: Do we really? - line 725: // FIXME: This is a manually un-factored variant of the basic code inside - line 813: // FIXME: We should instead consider the pointer to have escaped if this - line 862: // FIXME: Yet another place we really should bypass this when - line 916: // FIXME: What about debug intrinsics? This matches old behavior, but - line 984: // TODO: We could use SimplifyInstruction here to fold PHINodes and - line 1020: // FIXME: This should instead be escaped in the event we're instrumenting - line 1049: // FIXME: We should sink the escape vs. abort info into the caller nicely, - line 1398: /// FIXME: This should be hoisted into a generic utility, likely in - line 1403: // TODO: Allow recursive phi users. - line 1404: // TODO: Allow stores. - line 2091: // FIXME: It'd be nice to replace them with integer vector types, but we can't - line 2272: // FIXME: We shouldn't consider split slices that happen to start in the - line 2834: /// FIXME: Heed the advice above. - line 3570: // FIXME: We could potentially recurse down through the last element in the - line 3641: // FIXME: This is all pretty gross. It means that we can be more aggressive - line 4126: // FIXME: We should be able to bail at this point with "nothing changed". - line 4127: // FIXME: We might want to defer PHI speculation until after here. - line 4128: // FIXME: return nullptr; - line 4248: // FIXME: We currently leave whole-alloca splittable loads and stores. This - line 4563: // FIXME: Currently the SSAUpdater infrastructure doesn't reason about tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp (22 lines): - line 447: // FIXME: This predicate seems like it would be useful to add to ASTContext. - line 781: return; // FIXME: is this correct? - line 963: // FIXME: handle properties that are declared across multiple lines. - line 969: // FIXME: handle category headers that are declared across multiple lines. - line 988: // FIXME: handle protocol headers that are declared across multiple lines. - line 1023: // FIXME: handle forward protocol that are declared across multiple lines. - line 1032: // FIXME: handle forward protocol that are declared across multiple lines. - line 1254: // TODO: avoid this copy. - line 1611: // FIXME: If this should support Obj-C++, support CXXTryStmt - line 3001: // FIXME: Value of 8 is base on ppc32/x86 ABI for the most common cases. - line 3129: // FIXME: This has potential of causing problem. If - line 3194: // FIXME: presence of @public, etc. inside comment results in - line 3202: // FIXME: If there are cases where '<' is used in ivar declaration part - line 3677: // FIXME: Handle enums. - line 4328: // FIXME: This approach avoids rewriting the initializer expression. It - line 4482: // FIXME: Conform to ABI ([[obj retain] autorelease]). - line 4676: // FIXME: Missing definition of - line 4711: // FIXME: What we're doing here is modifying the type-specifier that - line 4829: // FIXME: If this should support Obj-C++, support CXXTryStmt - line 5093: // FIXME: The hack below doesn't work for bitfields. For now, we simply - line 5306: // FIXME: Implementation of a class with no @interface (legacy) does not - line 5888: // FIXME: consider sharing some of this code with the code above. tools/clang/lib/AST/ItaniumMangle.cpp (21 lines): - line 487: // FIXME: specific_attr_iterator iterates in reverse order. Fix that and use - line 597: // FIXME: This is a hack; extern variables declared locally should have - line 774: // FIXME: GCC does not appear to mangle the template arguments when - line 787: // FIXME: GCC does not appear to mangle the template arguments when - line 1476: // FIXME: not clear how to mangle this! - line 1521: // FIXME: not clear how to mangle this! - line 1595: // FIXME: not clear how to mangle this! - line 1885: // FIXME: This is an approximation of the instantiation-dependent name - line 2067: // FIXME: We don't have enough information in the AST to produce the 'Y' - line 2194: // FIXME: not clear how to mangle this! - line 2448: // FIXME: GCC does not appear to mangle the template arguments when - line 2495: // TODO: avoid making this TemplateName. - line 2501: // FIXME: GCC does not appear to mangle the template arguments when - line 2509: // FIXME: this is pretty unsatisfactory, but there isn't an obvious - line 2515: // FIXME: this is pretty unsatisfactory, but there isn't an obvious - line 2722: // FIXME: invent manglings for all these. - line 3187: // FIXME: Add isImplicit to CXXConstructExpr. - line 3264: // FIXME: not clear how to mangle this! - line 3272: // FIXME: not clear how to mangle this! - line 3369: // FIXME: should this really be mangled the same as nullptr? - line 3478: // transformed to have pointer type. FIXME: apparently these don't lib/CodeGen/SelectionDAG/SelectionDAG.cpp (21 lines): - line 2668: // FIXME: it's tricky to do anything useful for this, but it is an important - line 2766: // TODO: Recognize more cases here. - line 2776: // TODO: Recognize more cases here. - line 2902: // FIXME need to be more flexible about rounding mode. - line 2912: // FIXME need to be more flexible about rounding mode. - line 2937: // FIXME: Entirely reasonable to perform folding of other unary - line 3265: // FIXME: This is valid and could be handled by truncating the APInts. - line 3690: // FIXME need to be more flexible about rounding mode. - line 4132: // FIXME: Only does this for 64-bit or more since we don't have proper - line 4169: // TODO: In the AlwaysInline case, if the size is big then generate a loop - line 4235: // FIXME: Handle other cases where store of vector immediate is done in - line 4250: // FIXME does the case above also need this? - line 4490: // FIXME: If the memcpy is volatile (isVol), lowering it to a plain libc - line 4503: // FIXME: pass in SDLoc - line 4551: // FIXME: If the memmove is volatile, lowering it to plain libc memmove may - line 4561: // FIXME: pass in SDLoc - line 4621: // FIXME: pass in SDLoc - line 4695: // FIXME: Volatile isn't really correct; we should keep track of atomic - line 4739: // FIXME: Volatile isn't really correct; we should keep track of atomic - line 5386: // FIXME: figure out how to safely handle things like - line 6644: // TODO: Only iterate over uses of a given value of the node tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp (21 lines): - line 571: // FIXME: This method will soon be eliminated; see the note in Store.h. - line 599: // FIXME: Possibly incorporate the offset? - line 845: // FIXME: This doesn't catch the case where we're really invalidating a - line 861: // FIXME: This is probably incorrect; consider invalidating an outer - line 930: // FIXME: This isn't very precise; see the example in - line 1189: // TODO: This could possibly be more precise with modules. - line 1222: // FIXME: We need to track extra state to properly record the size - line 1266: // FIXME: We can consider lazily symbolicating such memory, but we really - line 1292: // FIXME: Perhaps this method should just take a 'const MemRegion*' argument - line 1297: // FIXME: we do not yet model the parts of a complex type, so treat the - line 1302: // FIXME: We should eventually handle funny addressing. e.g.: - line 1313: // FIXME: Handle unions. - line 1324: // FIXME: handle Vector types. - line 1332: // FIXME: Here we actually perform an implicit conversion from the loaded - line 1341: // FIXME: Here we actually perform an implicit conversion from the loaded - line 1351: // FIXME: Here we actually perform an implicit conversion from the loaded - line 1490: // FIXME: Handle loads from strings where the literal is treated as - line 1523: // FIXME: This is a hack, and doesn't do anything really intelligent yet. - line 1602: // FIXME: This is a hack to deal with RegionStore's inability to distinguish a - line 1642: // FIXME: This is a hack to deal with RegionStore's inability to distinguish a - line 1692: // FIXME: We also need to take ElementRegions with symbolic indexes into tools/clang/lib/Sema/SemaLookup.cpp (20 lines): - line 446: // FIXME: This is wrong. We need to take the more recent declaration in - line 769: // FIXME: Calling convention! - line 1083: // FIXME: In some cases, we know that every name that could be found by - line 1095: // FIXME: This really, really shouldn't be happening. - line 1105: // FIXME: Cache this sorted list in Scope structure, and DeclContext, so we - line 1284: // FIXME: Map from variable template specializations back to the template. - line 1393: // FIXME: Do something better in this case. - line 1444: // FIXME: This is wrong in the case where the previous declaration is not - line 2252: // FIXME: That's not correct, we may have added this class only because it - line 2298: // FIXME: If we want to support export, we probably need to add the - line 2713: // FIXME: [namespace.udecl]p15 says that we should only consider a - line 3183: // rather than hide. FIXME: Look for hiding based on function - line 3279: // FIXME: It would be nice to be able to determine whether referencing - line 3379: // FIXME: C++ [temp.local]p8 - line 3417: // FIXME: We would like the translation unit's Scope object to point to the - line 4172: // FIXME: We should not suggest _Alignof if the alignof macro - line 4272: // TODO: Figure out why typo correction misbehaves in this case, fix it, and - line 4329: // FIXME: Re-add the ability to skip very unlikely potential corrections. - line 4334: // FIXME: Re-add the ability to skip very unlikely potential corrections. - line 4715: // FIXME: Add a Fix-It that imports the corresponding module or includes tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp (20 lines): - line 29: // FIXME: Prechecks eventually go in ::Visit(). - line 47: // FIXME: Handle structs. - line 68: // TODO: This can be removed after we enable history tracking with - line 153: // FIXME: Handle structs. - line 183: // FIXME: postvisits eventually go in ::Visit() - line 223: // FIXME: Move all post/pre visits to ::Visit(). - line 291: // FIXME: For now, member pointers are represented by void *. - line 382: // FIXME: For now, member pointers are represented by void *. - line 449: //TODO:AZ: remove explicit insertion after refactoring is done. - line 454: // FIXME: all pre/post visits should eventually be handled by ::Visit(). - line 711: // FIXME: Handle the case where __builtin_offsetof is not a constant. - line 719: // FIXME: Prechecks eventually go in ::Visit(). - line 734: // FIXME: Add support for VLA type arguments and VLA expressions. - line 761: // FIXME: Prechecks eventually go in ::Visit(). - line 781: // FIXME: We don't have complex SValues yet. - line 798: // FIXME: We don't have complex SValues yet. - line 817: // FIXME: We can probably just have some magic in Environment::getSVal() - line 852: // FIXME: Do we need to handle promotions? - line 856: // FIXME: Do we need to handle promotions? - line 870: // FIXME: handle floating point types. lib/Analysis/ValueTracking.cpp (20 lines): - line 54: // (TODO: evaluate cost vs profit, consider higher thresholds) - line 421: // FIXME: This list is repeated from NoTTI::getIntrinsicCost. - line 536: // TODO: We could potentially be more aggressive here. This would be worth - line 548: // TODO: implement unsigned bound from below (known one bits) - line 549: // TODO: common condition check implementations with assumes - line 550: // TODO: implement other patterns from assume (e.g. V & B == A) - line 1062: // TODO: For now, not handling conversions like: - line 1582: // TODO: Handle vector constants. - line 1677: // FIXME: Support vector-GEPs. - line 1759: // TODO: Handle vectors - line 2109: // FIXME: it's tricky to do anything useful for this, but it is an important - line 2268: // FIXME: Magic number! At the least, this should be given a name because it's - line 2319: // FIXME: Magic number! At the least, this should be given a name because it's - line 2717: // TODO: See if we can integrate these two together. - line 2823: // TODO: Acquire a DominatorTree and AssumptionCache and use them. - line 3112: // FIXME: There are other no-op synthetic instructions that potentially - line 3139: // TODO: some fp intrinsics are marked as having the same error handling - line 3141: // TODO: are convert_{from,to}_fp16 safe? - line 3142: // TODO: can we list target-specific intrinsics here? - line 3395: // TODO: (X > 4) ? X : 5 --> (X >= 5) ? X : 5 --> MAX(X, 5) tools/clang/lib/CodeGen/CGBuiltin.cpp (20 lines): - line 519: // FIXME: Get right address space. - line 527: // FIXME: Technically these constants should of type 'int', yes? - line 860: // TODO: If there's a satisfactory reason, add a target hook for - line 1916: // FIXME: i128 and f128 doesn't get fully support in Clang and llvm. - line 2011: // FIXME: Once LValues are fixed to always set alignment, - line 2027: // FIXME: Once LValues are fixed to always set alignment, - line 2638: // FIXME: use std::is_sorted once C++11 is allowed - line 3002: // FIXME: the integer vmull operations could be emitted in terms of pure - line 3211: // FIXME: this is utterly horrific. We should not be looking at previous - line 4227: // FIXME: We need AArch64 specific LLVM intrinsic if we want to specify - line 5037: // FIXME: probably remove when we no longer support aarch64_simd.h - line 5052: // FIXME: improve sharing scheme to cope with 3 alternative LLVM intrinsics. - line 5058: // FIXME: improve sharing scheme to cope with 3 alternative LLVM intrinsics. - line 5064: // FIXME: improve sharing scheme to cope with 3 alternative LLVM intrinsics. - line 5070: // FIXME: improve sharing scheme to cope with 3 alternative LLVM intrinsics. - line 5092: // FIXME: improve sharing scheme to cope with 3 alternative LLVM intrinsics. - line 5098: // FIXME: improve sharing scheme to cope with 3 alternative LLVM intrinsics. - line 5348: // FIXME: These are handled by the AArch64 scalar code. - line 5693: // FIXME: Sharing loads & stores with 32-bit is complicated by the absence - line 6116: // TODO: When/if this becomes more than x86 specific then use a TargetInfo tools/clang/lib/Driver/ToolChains.cpp (19 lines): - line 112: // FIXME: Make sure this MachO triple mangling is really necessary. - line 597: // FIXME: This should be removed someday when we don't have to care about - line 642: // FIXME: We really want to get out of the tool chain level argument - line 883: // FIXME: It would be far better to avoid inserting those -static arguments, - line 1168: /// FIXME: We shouldn't need an explicit TargetTriple parameter here, and - line 1930: // FIXME: It may be worthwhile to generalize this and look for a second - line 1975: // FIXME: We hack together the directory name here instead of - line 2259: // FIXME: produce errors if we cannot parse the version. - line 2272: // FIXME: should probably be an error. - line 2278: // FIXME: We don't support versions < 4. We should error on them. - line 2714: // FIXME: It'd be nicer to test if this directory exists, but I'm not sure - line 3107: // FIXME: This is a bit of a hack. We should really unify this code for - line 3135: // FIXME: This seems unlikely to be Linux-specific. - line 3246: // FIXME: It's not clear whether we should use the driver's installed - line 3290: // FIXME: It's not clear whether we should use the driver's installed - line 3389: // FIXME: These are older forms of multiarch. It's not clear that they're - line 3396: // FIXME: These are older forms of multiarch. It's not clear that they're - line 3534: // FIXME: We shouldn't hard code 'v1' here to make Clang future proof to - line 3540: // FIXME: We should really remove this. It doesn't make any sense. lib/Transforms/InstCombine/InstCombineCalls.cpp (19 lines): - line 245: // TODO: Model this case as 2 shuffles or a 'logical and' plus shuffle? - line 451: // FIXME: Try to simplify vectors of integers. - line 469: // FIXME: Try to simplify vectors of integers. - line 564: // TODO: fmin(nnan x, inf) -> x - line 565: // TODO: fmin(nnan ninf x, flt_max) -> x - line 587: // TODO: fmax(nnan x, -inf) -> x - line 588: // TODO: fmax(nnan ninf x, -flt_max) -> x - line 712: // FIXME: We don't handle _dq because it's a shift of an i128, but is - line 812: // TODO: eventually we should lower this intrinsic to IR - line 900: // FIXME: That should be changed. - line 1198: // TODO: apply nonnull return attributes to calls and invokes - line 1199: // TODO: apply range metadata for range check patterns? - line 1224: // TODO: provide a hook for this in GCStrategy. This is clearly legal for - line 1233: // TODO: provide a hook for this in GCStrategy. There might be some weird - line 1252: // TODO: bitcast(relocate(p)) -> relocate(bitcast(p)) - line 1255: // TODO: relocate((gep p, C, C2, ...)) -> gep(relocate(p), C, C2, ...) - line 1279: // TODO: This is probably something which should be expanded to all - line 1541: return false; // TODO: Handle multiple return values. - line 1700: // TODO: if (!FT->isVarArg()) this call may be unreachable. PR14722 tools/clang/include/clang/AST/DeclObjC.h (19 lines): - line 1044: // FIXME: Should make sure no callers ever do this. - line 1054: // FIXME: Should make sure no callers ever do this. - line 1071: // FIXME: Should make sure no callers ever do this. - line 1082: // FIXME: Should make sure no callers ever do this. - line 1100: // FIXME: Should make sure no callers ever do this. - line 1112: // FIXME: Should make sure no callers ever do this. - line 1132: // FIXME: Should make sure no callers ever do this. - line 1139: // FIXME: Should make sure no callers ever do this. - line 1246: // FIXME: Should make sure no callers ever do this. - line 1454: // FIXME: Should make sure no callers ever do this. - line 1687: /*TInfo=*/nullptr, // FIXME: Do ObjCAtDefs have declarators ? - line 1954: /// FIXME: this should not be a singly-linked list. Move storage elsewhere. - line 2100: // FIXME: Context should be set correctly before we get here. - line 2105: // FIXME: Context should be set correctly before we get here. - line 2175: /// FIXME: This is a bad API, we are hiding NamedDecl::getIdentifier() - line 2193: // FIXME: This is a bad API, we are hiding NamedDecl::getName with a different - line 2199: // FIXME: Deprecated, move clients to getName(). - line 2338: // FIXME: This is a bad API, we are hiding NamedDecl::getName with a different - line 2347: // FIXME: Move to StringRef API. lib/MC/MCParser/AsmParser.cpp (19 lines): - line 691: // FIXME: We would really like to refer back to where the symbol was - line 1121: // FIXME: gas seems to support '!' as an infix operator? - line 1311: // FIXME: Recurse on local labels? - line 1327: // FIXME: Diagnostics. Note the location of the definition as a label. - line 1328: // FIXME: This doesn't diagnose assignment to a symbol which has been - line 1793: // FIXME: This is mostly duplicated from the function in AsmLexer.cpp. The - line 2399: // FIXME: Improve diagnostic. - line 2449: // FIXME: Improve diagnostic. - line 2698: // FIXME: Diagnose overflow. - line 2735: // FIXME: Target specific behavior about how the "extra" bytes are filled. - line 2747: // FIXME: I'm not sure what this is. - line 2813: // FIXME: Do something with the .line. - line 3627: // FIXME: Sometimes the fill expr is 'nop' if it isn't supplied, instead of 0. - line 3748: // FIXME: Diagnose overflow. - line 3769: // FIXME: Use loc from directive. - line 3782: // FIXME: Actually abort assembly here. - line 4778: // FIXME: Use better location, we should use proper tokens. - line 4803: // FIXME: Diagnostics. Note the location of the definition as a label. - line 4804: // FIXME: Diagnose assignment to protected identifier (e.g., register name). tools/clang/lib/Sema/SemaStmt.cpp (19 lines): - line 711: // FIXME: Introduce a second, default-ignored warning for this case? - line 716: // FIXME: Use different diagnostics for overflow in conversion to promoted - line 814: // FIXME: Grab an IntRange for the condition rather than using the unpromoted - line 843: // FIXME: Remove the default statement from the switch block so that - line 958: // FIXME: We really want to remove the bogus case stmt from the - line 1071: // FIXME: We really want to remove the bogus case stmt from the - line 1080: // TODO: it would be nice if we printed enums as enums, chars as - line 1195: // FIXME: If the case list was broken is some way, we don't have a good system - line 1742: // TODO: should we do a contextual conversion? - line 1791: // TODO: check for an incompatible signature? - line 1905: // FIXME: ARC may want to turn this into 'const __unsafe_unretained' if - line 2522: // TODO: Determine a maximum size that a POD type can be before a diagnostic - line 2847: // FIXME: Blocks might have a return type of 'auto' explicitly specified. - line 2863: // FIXME: Fold this into the 'auto' codepath above. - line 2920: // Delay processing for now. TODO: there are lots of dependent - line 2953: // FIXME: Cleanup temporaries here, anyway? - line 3170: // FIXME: Add a flag to the ScopeInfo to indicate whether we're performing - line 3307: // FIXME: Clean up temporaries here anyway? - line 3321: // FIXME: Clean up temporaries here anyway? tools/clang/lib/CodeGen/CGDebugInfo.cpp (19 lines): - line 367: // FIXME - Eliminate TheCU. - line 641: // TODO: This is using the RTTI name. Is there a better way to get - line 657: // FIXME: This could be a struct type giving a default visibility different - line 923: // TODO: Need to handle 'this' in some way by probably renaming the - line 1127: // TODO: This and the artificial type below are misleading, the - line 1199: // FIXME: Add proper support for debug info for virtual calls in - line 1253: // FIXME: Handle Using(Shadow?)Decls here to create - line 1304: // FIXME: Inconsistent units for BaseOffset. It is in bytes when - line 1932: // FIXME: make getTypeAlign() aware of VLAs and incomplete array types - line 1952: // Add the dimensions of the array. FIXME: This loses CV qualifiers from - line 1969: // FIXME: Verify this is right for VLAs. - line 2013: // FIXME: What is the correct representation? - line 2325: // TODO: Currently used for context chains when limiting debug info. - line 2467: // FIXME: Generalize this for even non-member global variables where the - line 2709: // FIXME: The function declaration we're constructing here is mostly reusing - line 2908: // FIXME: There has to be a better way to do this, but for static - line 2954: // FIXME: Remove this code as soon as GDB supports this. - line 3191: // FIXME: this creates a second copy of this type! - line 3330: // FIXME: why not? tools/clang/lib/Sema/SemaCodeComplete.cpp (19 lines): - line 522: // TODO: Add a predicate for this. - line 558: // FIXME: This isn't true; we can find a tag name hidden by an ordinary - line 1196: // FIXME: We could perform more analysis here to determine whether a - line 1330: // FIXME: Enable when we actually support decimal floating point. - line 1968: // FIXME: Rethrow? - line 2465: // FIXME: Add ref-qualifier! - line 2729: // FIXME: We need to abstract template parameters better! - line 2950: // FIXME: Set priority, availability appropriately. - line 3746: // FIXME: How do we cope with isa? - line 3845: // FIXME: Ideally, we would also be able to look *past* the code-completion - line 4004: // FIXME: Provide support for variadic template functions. - line 4107: // FIXME: Provide support for member initializers. - line 4108: // FIXME: Provide support for variadic template constructors. - line 4253: // FIXME: This isn't wonderful, because we don't know whether we're actually - line 4640: // FIXME: Could introduce the whole pattern, including superclasses and - line 5941: // FIXME: This doesn't work when caching code-completion results. - line 7417: // FIXME: we don't support #assert or #unassert, so don't suggest them. - line 7452: // FIXME: Can we detect when the user just wrote an include guard above? - line 7488: // FIXME: In the future, we could provide "overload" results, much like we tools/clang/lib/AST/Expr.cpp (17 lines): - line 266: // (VD) - FIXME: Missing from the standard: - line 282: // (VD) - FIXME: Missing from the standard: - line 297: // (VD) - FIXME: Missing from the standard: - line 473: // FIXME: Maybe this should use DeclPrinter with a special "print predefined - line 884: // FIXME: Convert UTF-8 back to codepoints before rendering. - line 903: // FIXME: Is this the best way to print wchar_t? - line 964: //FIXME: we assume that the string data comes from a target that uses the same - line 1155: // FIXME: Why do we allocate this? - line 1224: if (!ICE) // FIXME: deal with more complex calls (e.g. (func)(), (*func)()). - line 1403: // FIXME: Wrong. We should be looking at the member declaration we found. - line 1446: // FIXME: We don't want this to happen. Rather, we should be able to - line 2359: // FIXME: In theory, there might be new expressions that don't have side - line 2806: // FIXME: This accepts other cases it shouldn't! - line 3081: // FIXME: The children for an InitListExpr doesn't include the array filler. - line 3154: // FIXME: Only has a side-effect if the variable is volatile or if - line 3187: // FIXME: Classify these cases better. - line 3494: // FIXME: Refactor this code to an accessor on the AST node which returns the tools/clang/lib/Analysis/Consumed.cpp (17 lines): - line 35: // TODO: Adjust states of args to constructors in the same way that arguments to - line 37: // TODO: Use information from tests in for- and while-loop conditional. - line 38: // TODO: Add notes about the actual and expected state for - line 39: // TODO: Correctly identify unreachable blocks when chaining boolean operators. - line 40: // TODO: Adjust the parser and AttributesList class to support lists of - line 42: // TODO: Warn about unreachable code. - line 43: // TODO: Switch to using a bitmap to track unreachable blocks. - line 44: // TODO: Handle variable definitions, e.g. bool valid = x.isValid(); - line 46: // TODO: Take notes on state transitions to provide better warning messages. - line 48: // TODO: Test nested conditionals: A) Checking the same value multiple times, - line 748: // TODO: Make this more specific. (Deferred) - line 783: // FIXME: What should happen if someone annotates the move constructor? - line 785: // TODO: Adjust state of args appropriately. - line 800: // TODO: Adjust state of args appropriately. - line 925: // TODO: See if I need to check for reference types here. - line 1247: // FIXME: This should be removed when template instantiation propagates - line 1424: // TODO: Handle other forms of branching with precision, including while- tools/clang/lib/Parse/ParseDecl.cpp (17 lines): - line 491: // TODO: consider what to do when convertToInteger fails - line 1667: // FIXME: Test cases to make sure this does the right thing for templates. - line 2608: // FIXME: This check should be for a variable template instantiation only. - line 2817: /// TODO: diagnose attribute-specifiers and alignment-specifiers. - line 3076: // TODO: Could inject an invalid typedef decl in an enclosing scope to - line 3105: /// FIXME: Simply returns an alignof() expression if the argument is a - line 3264: // FIXME: Split the DeclSpec into pieces for the standalone - line 3354: // FIXME: It would be good to recover by accepting the attributes, - line 4717: // FIXME: The standard is not entirely clear on how to disambiguate in - line 5565: // FIXME: We can actually do this whether or not the name is qualified, - line 6211: // FIXME: Revisit this once core issue 1488 is resolved. - line 6505: // FIXME: Accept these components in any order, and produce fixits to - line 6534: // FIXME: currently, "static" case isn't handled correctly. - line 6764: // FIXME: Issue a diagnostic if we parsed an attribute-specifier-seq - line 6784: // FIXME: If we can leave the attributes in the token stream somehow, we can - line 6851: // FIXME: Can we use a smart pointer for Toks? - line 7186: // FIXME: Not accurate, the range gets one token more than it should. lib/Transforms/Scalar/LoopInterchange.cpp (17 lines): - line 52: // TODO: Check if we can use a sparse matrix here. - line 124: // TODO: Handle Flow dependence.Check if it is sufficient to populate - line 323: // FIXME: Handle loops with more than one induction variable. Note that, - line 491: // TODO: Add a better heuristic to select the loop to be interchanged based - line 531: // TODO: This should be removed once we handle LCSSA PHI nodes. - line 681: // TODO: Handle triangular loops. - line 763: // TODO: Currently we handle only loops with 1 induction variable. - line 781: // TODO: Currently we handle only loops with 1 induction variable. - line 785: // TODO: Triangular loops are not handled for now. - line 791: // TODO: We only handle LCSSA PHI's corresponding to reduction for now. - line 801: // TODO: Current limitation: Since we split the inner loop latch at the point - line 878: // TODO: The loops could not be interchanged due to current limitations in the - line 949: // TODO: Improve this heuristic to catch more cases. - line 956: // TODO: We need to improve this heuristic. - line 969: // TODO: Add Better Profitibility checks. - line 1044: // TODO: This splitting logic may not work always. Fix this. - line 1083: // FIXME: Check if the induction PHI will always be the first PHI. tools/clang/lib/Frontend/ASTUnit.cpp (17 lines): - line 538: // FIXME: We shouldn't need to do this, the target should be immutable once - line 612: // FIXME: In the long run, ee don't want to drop source managers from modules. - line 849: // FIXME: Currently ObjC method declarations are incorrectly being - line 956: // FIXME: Currently ObjC method declarations are incorrectly being - line 1091: // FIXME: We shouldn't need to do this, the target should be immutable once - line 1098: "FIXME: AST inputs not yet supported here!"); - line 1199: // FIXME: This is a hack so that we can override the preamble file during - line 1533: // FIXME: Generate the precompiled header into memory? - line 1565: // FIXME: We shouldn't need to do this, the target should be immutable once - line 1572: "FIXME: AST inputs not yet supported here!"); - line 1626: // FIXME: Should we leave a note for ourselves to try again? - line 1827: // FIXME: We shouldn't need to do this, the target should be immutable once - line 1834: "FIXME: AST inputs not yet supported here!"); - line 2448: // FIXME: We shouldn't need to do this, the target should be immutable once - line 2455: "FIXME: AST inputs not yet supported here!"); - line 2540: // FIXME: Can we somehow regenerate the stat cache here, or do we need to - line 2600: // FIXME: There should be a cleaner way to do this. tools/clang/lib/Sema/SemaDeclObjC.cpp (17 lines): - line 913: // FIXME: If necessary, add a bit to indicate that this ObjCInterfaceDecl - line 1111: // FIXME: Deal with AttrList. - line 1124: // FIXME: Can we turn this into an error? - line 1221: // FIXME: Recover nicely in the hidden case. - line 1344: // FIXME: Recover nicely in the hidden case. - line 1758: // FIXME: PushOnScopeChains? - line 1810: // FIXME: PushOnScopeChains? - line 1904: // FIXME: Do we support attributes on the @implementation? If so we should - line 1938: // FIXME: Don't leak everything! - line 2085: // FIXME: For now ignore 'IncompleteImpl'. - line 2512: /// FIXME: Type hierarchies in Objective-C can be deep. We could most likely - line 2593: // FIXME: Use a general GetUnarySelector method for this. - line 2941: // FIXME: If necessary, add a bit to indicate that this ObjCInterfaceDecl - line 3082: /// TODO: Handle protocol list; such as id in type comparisons - line 3524: // FIXME: Remove these and use the ObjCContainerDecl/DeclContext. - line 4363: /*FIXME: StartL=*/ID->getLocation(), - line 4397: // FIXME: Recover from "NSObject foo" by inserting the * in "NSObject *foo"? lib/Transforms/Scalar/RewriteStatepointsForGC.cpp (16 lines): - line 197: // TODO: Once we can get to the GCStrategy, this becomes - line 366: // TODO: There a number of local optimizations which could be applied here - line 590: // TODO: find a better name for this - line 733: // TODO: This should be rewritten with a worklist - line 782: // TODO: come back and revisit the state transitions around inputs which - line 836: // TODO: adjust naming patterns to avoid this order of iteration dependency - line 921: // value. A cleanup that remains TODO is changing - line 953: // Operand 1 & 2 are true, false path respectively. TODO: refactor to - line 1254: // TODO: Clear the 'needs rewrite' flag - line 1947: // TODO: Use TTI->getGEPCost here (it exists, but appears to be not - line 1989: // TODO: We can also account for cases when we will be able to remove some - line 2208: // the cost of some possible performance loss. TODO: it would be nice to - line 2260: // TODO: It would be nice to test consistency as well - line 2357: // TODO: This should check the GCStrategy - line 2399: // TODO: only the ones with the flag set! - line 2438: // TODO: Consider using bitvectors for liveness, the set of potentially tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp (16 lines): - line 261: // FIXME: This was originally copied from ArrayBoundChecker.cpp. Refactor? - line 322: // FIXME: It would be nice to eventually make this diagnostic more clear, - line 366: // FIXME: This assumes the caller has already checked that the access length - line 628: // FIXME: This can happen if we strcpy() into a string region. This is - line 641: // FIXME: Handle element regions by upper-bounding the parent region's - line 648: // FIXME: These are rare but not impossible. We should output some kind of - line 756: // FIXME: Can we track this? Is it necessary? - line 759: // FIXME: How can we handle this? It's not good enough to subtract the - line 825: // FIXME: This is a simplified version of what's in CFRefCount.cpp -- it makes - line 835: // FIXME: What about layers of ElementRegions? - line 858: // FIXME: is this necessary or correct? This handles the non-Region - line 998: // FIXME: Even if we can't perfectly model the copy, we should see if we - line 1457: // FIXME: We should actually run this code path for append as well, but - line 1618: // FIXME: Even if we can't perfectly model the copy, we should see if we - line 1880: // FIXME: Poorly-factored string switches are slow. - line 1947: // FIXME: Handle array fields of structs. lib/Analysis/ScalarEvolution.cpp (16 lines): - line 35: // TODO: We should use these routines and value representations to implement - line 115: // FIXME: Enable this with XDEBUG when the test suite is clean. - line 500: // Sort SCEVUnknown values with some loose heuristics. TODO: This is - line 2647: // TODO: Generalize this to non-constants by using known-bits information. - line 2769: // TODO: we could try to find factors in all sorts of things, but for now we - line 3726: // FIXME: For constant StartVal, we should be able to infer - line 3999: // TODO: non-affine addrec - line 4547: // FIXME: SCEV distributes multiplication as V1*C1 + V2*C1. We could attempt - line 5263: // TODO: Use SCEV instead of manually grubbing with GEPs. - line 5821: break; // TODO: smax, umax. - line 6217: // TODO: Handle a nonconstant Step given AddRec. If the - line 6608: // TODO: More simplifications are possible here. - line 8545: // FIXME: Remove this when SCEV gets smarter about them. - line 8560: // FIXME: It would be much better to store actual values instead of strings, - line 8585: // FIXME: We currently ignore SCEV changes from/to CouldNotCompute. This - line 8601: // TODO: Verify more things. tools/clang/include/clang/SPIRV/SpirvInstruction.h (16 lines): - line 181: // TODO: The responsibility of assigning the result-id of an instruction - line 217: /// TODO: Clean up aliasing and try to move it to a separate pass. - line 2129: // TODO: Replace opcode type with an enum, when it is available in - line 2134: // TODO: Replace this with an enum, when it is available in SPIRV-Headers. - line 2241: // TODO: Replace this with an enum, when it is available in SPIRV-Headers - line 2286: // TODO: Replace this with an enum, when it is available in SPIRV-Headers - line 2352: // TODO: Replace this with an enum, when it is available in SPIRV-Headers - line 2391: // TODO: Replace this with an enum, when it is available in SPIRV-Headers - line 2521: /// TODO: Add support for the following debug types: - line 2567: // TODO: Replace uint32_t with enum from SPIRV-Headers once available. - line 2597: // TODO: avoid integer overflow - line 2654: // TODO: Replace uint32_t with enum in the SPIRV-Headers once it is available. - line 2722: // TODO: change the type to SpirvDebugType * when we support - line 2765: // TODO: Replace uint32_t with enum in the SPIRV-Headers once it is - line 2830: // TODO: Replace uint32_t with enum in the SPIRV-Headers once it is - line 2833: // TODO: Replace uint32_t with enum in the SPIRV-Headers once it is tools/clang/lib/Driver/Driver.cpp (16 lines): - line 293: // FIXME: Already done in Compilation *Driver::BuildCompilation - line 366: // FIXME: Handle environment options which affect driver behavior, somewhere - line 385: // FIXME: What are we going to do with -V and -b? - line 387: // FIXME: This stuff needs to go into the Compilation, not the driver. - line 400: // FIXME: We need to figure out where this behavior should live. Most of it - line 410: // FIXME: DefaultTargetTriple is used by the target-prefixed calls to as/ld - line 727: // FIXME: See FIXME above regarding result code interpretation. - line 754: // FIXME: The following handlers should use a callback mechanism, we don't - line 854: // FIXME: The following handlers should use a callback mechanism, we don't - line 1169: // FIXME: Clean this up if we move the phase sequence into the type. - line 1614: // FIXME: This is a hack; find a cleaner way to integrate this into the - line 1647: // FIXME: It would be nice to be able to send the argument to the - line 1768: // FIXME: It would be nice to not claim this here; maybe the old scheme of - line 1822: // FIXME: Clean this up. - line 2097: // FIXME: Needs a better variable than DefaultTargetTriple - line 2250: // TODO: revisit for HLSL proper lib/Bitcode/Reader/BitcodeReader.cpp (16 lines): - line 764: // FIXME: can we inherit this from ConstantExpr? - line 1028: // FIXME: Remove in 4.0. - line 1078: // FIXME: Remove in 4.0. - line 1417: // FIXME: attrid is dead, remove it in LLVM 4.0 - line 2002: // FIXME: Remove in 4.0. - line 2030: // FIXME: Remove in 4.0. - line 2788: } else // TODO: Remove with llvm 4.0 - line 2809: } else // TODO: Remove with llvm 4.0 - line 2858: // FIXME: Remove with the 4.0 release. - line 3243: // FIXME: Remove in 4.0. - line 3314: // FIXME: Change to an error if non-default in 4.0. - line 3395: // FIXME: Change to an error if non-default in 4.0. - line 3458: // FIXME: Change to an error if non-default in 4.0. - line 4231: // FIXME: It is not clear whether values in the range should be - line 4792: // FIXME: Check for unresolved forward-declared metadata references - line 5143: // TODO: Restore the use-lists to the in-memory state when the bitcode was lib/Transforms/Instrumentation/memorysanitizer.cpp (16 lines): - line 387: // FIXME: this function should have "Cold" calling conv, - line 609: // FIXME: Consider using SpecialCaseList to specify a list of functions that - line 748: // FIXME: Insert UnreachableInst if !ClKeepGoing? - line 1530: // TODO: handle struct types. - line 1700: /// FIXME: output seems suboptimal when one of the operands is a constant - line 1830: // FIXME: consider doing manual inline for small constant sizes and proper - line 1897: // FIXME: use ClStoreCleanOrigin - line 1898: // FIXME: factor out common code from materializeStores - line 2006: // FIXME: detect and handle SSE maskstore/maskload - line 2059: // FIXME: consider propagating shadow of ConvertOp, at least in the case of - line 2504: // FIXME: this case is tricky, so we are just conservative here. - line 2536: // FIXME: make it conditional if ClStoreCleanOrigin==0 - line 2630: // FIXME: consider tracking vector origins for app vectors? - line 2815: // FIXME: magic ABI constants. - line 2826: // FIXME: magic ABI constants. - line 2943: // FIXME: magic ABI constants. tools/clang/lib/Lex/ModuleMap.cpp (15 lines): - line 239: // FIXME: Should we map RequestingModule to its top-level module here - line 608: // FIXME: we should be able to give a fix-it hint for the correct spelling. - line 676: // FIXME: If there's no umbrella header, we could probably scan the - line 748: // FIXME: Do we want to warn about subframeworks without umbrella headers? - line 806: // FIXME: Should we only exclude it from umbrella modules within the - line 1651: /// FIXME: Support 'private textual header'. - line 1719: // FIXME: Should we retain the subframework paths here? - line 1751: // FIXME: Can we do this in all cases? - line 1761: // FIXME: We shouldn't be eagerly stat'ing every file named in a module map. - line 1782: // FIXME: Taking the name from the FileEntry is unstable and can give - line 1874: // FIXME: Support string-literal module names here. - line 1975: // FIXME: Support macros with the same name as a keyword here. - line 1992: // FIXME: Support macros with the same name as a keyword here. - line 2129: // FIXME: Handle the 'framework' keyword. - line 2158: // FIXME: Support string-literal module names here. tools/clang/lib/SPIRV/DebugTypeVisitor.cpp (15 lines): - line 52: // TODO: Update linkageName using astContext.createMangleContext(). - line 72: // TODO: Handle class inheritance correctly. - line 81: // TODO: We are currently in the discussion about how to handle - line 99: // TODO: Replace 2u and 3u with valid flags when debug info extension is - line 155: // TODO: if dbgFunction is NULL, it is a member function without - line 185: // TODO: Handle other kinds e.g., value, template template type. - line 252: // TODO: Should we use 1 bit for booleans or 32 bits? - line 254: // TODO: Use enums rather than uint32_t. - line 270: // TODO: Use enums rather than uint32_t. - line 290: // TODO: Use enums rather than uint32_t. - line 310: // TODO: Add DebugTypeComposite for class and union. - line 311: // TODO: Add DebugTypeEnum. - line 328: // TODO: Handle TK_RuntimeArray. We need spec updates for the bindless array. - line 338: // TODO: I temporarily use a DebugTypeArray for a matrix type. - line 368: // TODO: Add mechanism to properly calculate the flags. tools/clang/lib/Lex/LiteralSupport.cpp (15 lines): - line 98: // TODO: K&R: the meaning of '\\a' is different in traditional C - line 390: // FIXME: Make the type of the result buffer correct instead of - line 399: // FIXME: Make the type of the result buffer correct instead of - line 505: /// TODO: add rules... - line 607: // TODO : When we support true half type, these suffixes should be treated differently from f/F - line 704: // FIXME: Don't bother expanding UCNs if !tok.hasUCN(). - line 1080: // FIXME: Don't bother with this if !tok.hasUCN(). - line 1089: // FIXME: The "Value" is an uint64_t so we can handle char literals of - line 1091: // FIXME: This extensively assumes that 'char' is 8-bits. - line 1351: // TODO: K&R warning: "traditional C rejects string constant concatenation" - line 1436: // TODO: Input character set mapping support. - line 1513: // FIXME: Make the type of the result buffer correct instead of - line 1519: // FIXME: Make the type of the result buffer correct instead of - line 1534: // FIXME: Make the type of the result buffer correct instead of - line 1539: // FIXME: Make the type of the result buffer correct instead of tools/clang/unittests/ASTMatchers/ASTMatchersTest.cpp (15 lines): - line 270: // FIXME: Once we have better matchers for template type matching, - line 984: // FIXME: Add tests for other types with getDecl() (e.g. RecordType) - line 1043: // FIXME: Do we want to overload Call() to directly take - line 1149: // FIXME: operator new takes size_t, for which we need stddef.h, for which - line 1313: // FIXME: Uncomment once alignof is enabled. - line 1428: // FIXME: Make this work for MSVC. - line 2216: // FIXME: Operator ',' - line 2358: // FIXME: We probably want to add that. - line 2521: // FIXME: Add a Type matcher so we can replace uses of this - line 3634: // FIXME: Figure out whether this makes sense. It doesn't affect the - line 3705: // FIXME: Node sharing is an implementation detail, exposing it is ugly - line 4006: // FIXME: Make this work for MSVC. - line 4021: // FIXME: Matching against the type-as-written can't work here, because the - line 4048: // FIXME: Reactive when these tests can be more specific (not matching - line 4690: // FIXME: Figure out how to specify paths so the following tests pass on Windows. tools/dsymutil/DwarfLinker.cpp (15 lines): - line 65: // FIXME: Delete this structure. - line 856: // FIXME: code copied and transfromed from - line 875: // FIXME: We should handle the discriminator here, but dsymutil - line 1336: // FIXME: a bit wastefull as the first getName might return the - line 1415: // FIXME: Once we understood exactly if that information is needed, - line 1874: // FIXME: we should be able to design DIEEntry reliance on - line 1930: // FIXME: If DIEBlock and DIELoc just reuses the Size field of - line 2219: // FIXME: This is slightly wrong. An inline_subroutine without a - line 2318: /// FIXME: this could actually be done right in patchRangesForUnit, - line 2347: // FIXME: this only removes the unneeded end_sequence if the - line 2406: // FIXME: This logic is meant to generate exactly the same output as - line 2441: // FIXME: Understand exactly what cases this addresses and - line 2483: // FIXME: LLVM hardcodes it's prologue values. We just copy the - line 2567: // FIXME: dsymutil-classic only caches the last used CIE for - line 2663: // FIXME: for compatibility with the classic dsymutil, we emit lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp (15 lines): - line 373: // FIXME: It would be nice to propagate this in some way, but the type - line 449: // FIXME: We could probably with some care handle both volatile and atomic - line 501: // FIXME: We should also canonicalize loads of vectors when their elements are - line 510: // FIXME: We could probably with some care handle both volatile and atomic - line 551: // FIXME: This should probably live in ValueTracking (or similar). - line 628: // FIXME: We could fold any GEP index to zero that would cause UB if it were - line 688: // FIXME: If the GEP is not inbounds, and there are extra indices after the - line 749: // FIXME: Some of it is okay for atomic loads; needs refactoring. - line 782: // TODO: Consider a target hook for valid address spaces for this xform. - line 795: // TODO: Consider a target hook for valid address spaces for this xform. - line 870: // FIXME: We could probably with some care handle both volatile and atomic - line 884: // FIXME: We should also canonicalize loads of vectors when their elements are - line 890: // FIXME: We could probably with some care handle both volatile and atomic - line 984: // FIXME: Some bits are legal for atomic stores; needs refactoring. - line 1170: // FIXME: This should really be AA driven. lib/HLSL/DxilValidation.cpp (15 lines): - line 163: // TODO: save resource map for each createHandle/createHandleForLib. - line 738: // TODO: validate ROV is used only in PS. - line 2115: // TODO: validate ValidationRule::InstrOnlyOneAllocConsume for lib - line 2183: // TODO: make sure every opcode is checked. - line 2208: // TODO: validate lifetime intrinsic users - line 2830: // TODO: If validating libraries, we should remove all unknown function attributes. - line 3030: // TODO: validate address space and alignment - line 3298: // TODO: Remove attribute for lib? - line 3393: // TODO: return correct result. - line 3686: // TODO: check profile. - line 3935: // TODO: validate flags foreach entry. - line 4856: // TODO: add number at end. need format fn error? - line 5266: // TODO: check other case uninitialized output is allowed. - line 5279: // TODO: check other case uninitialized output is allowed. - line 5898: // TODO: lazy load for perf lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp (14 lines): - line 309: // TODO: Lower these as well, along with function parameter types - line 331: // TODO: Lower these as well, along with function parameter types - line 1191: // TODO: Only do this on basic types. - line 1520: // TODO: should we check HL parameter type for UDT overload instead of - line 1944: // TODO: set precise. - line 2746: // TODO: check other high level dx operations if need to. - line 3106: // TODO: set precise. - line 3112: // TODO: support dynamic indexing on vector by change it to array. - line 3127: // TODO: set precise. - line 3172: // TODO: set precise. - line 3197: // TODO: set precise. - line 3334: // TODO: We should be merging the lifetimes. For convenience, just remove them - line 5386: // TODO: support other DxilParamInputQual. - line 5722: // TODO: how to get col? lib/CodeGen/WinEHPrepare.cpp (14 lines): - line 524: // FIXME: This is imprecise. We need a better way of identifying where a - line 608: /// FIXME: This falls down when values are defined in one handler and live into - line 689: // FIXME: This demotion is inefficient. We should insert spills at the point - line 752: // FIXME: Switch the ehptr type to i32 and then switch this. - line 1002: // FIXME: We should try to sink unescaped allocas from the parent frame into - line 1017: // FIXME: Sink this localrecover into the blocks where it is used. - line 1291: // FIXME: Finish this! - line 1352: // FIXME: Consider sinking this into lib/Target/X86 somehow. TargetLowering - line 1541: // FIXME: Handle instructions in the dispatch block. Currently we drop them, - line 1710: // FIXME: Leave something behind to indicate where the exception object lives - line 2230: // FIXME: We expect to find the dispatch quickly, so this will probably - line 2317: // FIXME: This cleanup might chain into another, and we need to discover - line 2588: // FIXME: Depending on what has happened with block ordering, this may - line 2686: // FIXME: Can code optimization lead to re-used handlers? tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp (14 lines): - line 76: // FIXME: Correctly support promotions/truncations. - line 86: // FIXME: Remove this hack when we support symbolic truncation/extension. - line 135: // FIXME: Handle transparent unions where a value can be "transparently" - line 149: // FIXME: Currently we are using an extent symbol here, - line 282: // FIXME: This is an approximation of Sema::UsualArithmeticConversions. - line 371: // FIXME: This is not correct. char + short will result in a promotion - line 546: // FIXME: This doesn't handle casts yet, and simply stripping the casts - line 556: // FIXME: This is probably where inheritance would be a problem. - line 582: // FIXME: all this logic will change if/when we have MemRegion::getLocation(). - line 639: // FIXME: we can probably do a comparison against other MemRegions, though. - line 640: // FIXME: is there a way to tell if two labels refer to the same location? - line 726: // FIXME: we can probably make a more useful statement about non-code - line 774: // FIXME: This should do something useful even if the types don't match, - line 942: // FIXME: Add support for SymExprs. lib/Transforms/Utils/SimplifyCFG.cpp (14 lines): - line 638: // TODO: Preserve branch weight metadata, similarly to how - line 1298: // TODO: Add support of communativity. - line 1378: // TODO: Use combineMetadata here to preserve what metadata we can - line 1587: // FIXME: Try to remove some of the duplication with HoistThenElseCodeToIf. - line 1615: // FIXME: This doesn't account for how many operations are combined in the - line 2368: // TODO: If BB is reachable from all paths through PredBlock, then we - line 2880: // TODO: Preserve branch weight metadata, similarly to how - line 3936: // FIXME: If the type is wider than it needs to be, e.g. i8 but all values - line 3983: // FIXME: Find the best cut-off. - line 4082: // FIXME: If the switch is too sparse for a lookup table, perhaps we could - line 4085: // FIXME: This creates arrays of GEPs to constant strings, which means each - line 4151: if (SI->getNumCases() < 4) // FIXME: Find best threshold value (benchmark). - line 4409: /// TODO - This transformation could remove entries from a phi in the target - line 4661: // TODO: SwitchInst. tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp (14 lines): - line 547: // FIXME: This predicate seems like it would be useful to add to ASTContext. - line 946: return; // FIXME: is this correct? - line 1135: // FIXME: handle properties that are declared across multiple lines. - line 1141: // FIXME: handle category headers that are declared across multiple lines. - line 1167: // FIXME: handle protocol headers that are declared across multiple lines. - line 1202: // FIXME: handle forward protocol that are declared across multiple lines. - line 1211: // FIXME: handle forward protocol that are declared across multiple lines. - line 1467: // TODO: avoid this copy. - line 1847: // FIXME: If this should support Obj-C++, support CXXTryStmt - line 4563: // FIXME: Handle enums. - line 5421: // FIXME: Conform to ABI ([[obj retain] autorelease]). - line 5642: // FIXME: Missing definition of - line 5682: // FIXME: What we're doing here is modifying the type-specifier that - line 5806: // FIXME: If this should support Obj-C++, support CXXTryStmt lib/Analysis/Lint.cpp (14 lines): - line 15: // not yet implemented. Some of these are indicated by TODO comments, but - line 197: // TODO: Check for irreducible control flow. - line 229: // TODO: Verify that caller and callee attributes are compatible. - line 279: // TODO: Check more intrinsics - line 283: // TODO: If the size is known, use it. - line 305: // TODO: If the size is known, use it. - line 314: // TODO: If the size is known, use it. - line 376: // TODO: Check that the reference is in bounds. - line 377: // TODO: Check readnone/readonly function attributes. - line 763: // TODO: Check for an unusual size (MSB set?) - line 823: // TODO: Look through sext or zext cast, when the result is known to - line 825: // TODO: Look through eliminable cast pairs. - line 826: // TODO: Look through calls with unique return values. - line 827: // TODO: Look through vector insert/extract/shuffle. lib/HLSL/DxilPatchShaderRecordBindings.cpp (14 lines): - line 157: // TODO: I would like to see these prefixed with m_ - line 185: // TODO: Find the right thing to do on failure - line 190: // TODO: Stolen from Brandon's code, merge - line 278: // TODO: Is this okay? What if one of the samplers in the table is a comparison sampler? - line 313: pHandle->SetCompType(CompType::getF32()); // TODO: Need to handle all types - line 376: // TODO: Stolen from Brandon's code - line 649: // TODO: Buffer loads aren't legal with container types, check if this is the right wait to handle this - line 653: // TODO Do I need to check the result? Hopefully not - line 705: // TODO: This code is quite inefficient - line 863: if (!resourceIsResolved) continue; // TODO: This shouldn't actually be happening? - line 917: // TODO: The hi bits can only be ignored if the difference is guaranteed to be < 32 bytes. This is an unsafe assumption, particularly given - line 927: // TODO: Not supporting dynamic indexing yet, should be pulled from CreateHandleForLib - line 955: // TODO: Handle offset in bytes - line 1128: // TODO: Consider pre-calculating this into a map tools/clang/lib/Sema/SemaTemplateInstantiate.cpp (14 lines): - line 382: // FIXME: In all of these cases, we need to show the template arguments - line 924: // FIXME: This needs testing w/ member access expressions. - line 987: // TODO: should we even warn on struct/class mismatches for this? Seems - line 1378: // TODO: only do this uniquing once, at the start of instantiation. - line 1488: // FIXME: Make a copy of the TypeLoc data here, so that we can - line 1544: // TODO: currently we always rebuild expressions. When we - line 1585: // FIXME: Set the exception specification to EST_Uninstantiated here, - line 1696: // FIXME: if we non-lazily instantiated non-dependent default args for - line 1713: // FIXME: OldParm may come from a FunctionProtoType, in which case CurContext - line 1983: // FIXME: This loses the as-written tag kind for an explicit instantiation. - line 2042: // FIXME: Eventually, a NULL return will mean that one of the - line 2083: // FIXME: We should do something similar for explicit instantiations so they - line 2315: // TODO: Actually use the failed-deduction info? - line 2433: // FIXME: We need to notify the ASTMutationListener that we did all of these tools/clang/utils/TableGen/ClangAttrEmitter.cpp (13 lines): - line 416: // FIXME: Do not do the calculation here - line 417: // FIXME: Handle types correctly - line 438: // FIXME: move the definition in Sema::InstantiateAttrs to here. - line 635: // FIXME: Emit a proper error - line 688: // FIXME: this isn't 100% correct -- some enum arguments require printing - line 744: // FIXME: this isn't 100% correct -- some enum arguments require printing - line 761: // FIXME: Emit a proper error - line 1188: // FIXME: always printing the parenthesis isn't the correct behavior for - line 1344: // FIXME: Handle non-GNU attributes - line 1447: // FIXME: Currently, documentation is generated as-needed due to the fact - line 2301: // FIXME: Currently, this maps to ExpectedMethod based on existing code, - line 2644: // TODO: If the attribute's kind appears in the list of duplicates, that is - line 2838: // FIXME: there is no way to have a per-spelling category for the attribute lib/Support/YAMLParser.cpp (13 lines): - line 734: // FIXME: Error reporting. - line 1261: // FIXME: Remove once llvm optimizes this to the faster version without hints. - line 1662: // FIXME: Actually parse the c-ns-shorthand-tag rule. - line 1849: // TODO: Tag resolution. - line 1887: // TODO: Handle newlines properly. We need to remove leading whitespace. - line 1947: // TODO: Report error. - line 2020: // TODO: Report error. - line 2024: // TODO: Report error. - line 2032: // TODO: Report error. - line 2036: // TODO: Report error. - line 2044: // TODO: Report error. - line 2048: // TODO: Report error. - line 2399: // TODO: Properly handle tags. "[!!str ]" should resolve to !!str "", not tools/clang/lib/AST/TypePrinter.cpp (13 lines): - line 353: // FIXME: this should include vectors, but vectors use attributes I guess. - line 362: // FIXME: this should include vectors, but vectors use attributes I guess. - line 386: // FIXME: this should include vectors, but vectors use attributes I guess. - line 396: // FIXME: this should include vectors, but vectors use attributes I guess. - line 408: // FIXME: this should include vectors, but vectors use attributes I guess. - line 418: // FIXME: this should include vectors, but vectors use attributes I guess. - line 430: // FIXME: this should include vectors, but vectors use attributes I guess. - line 445: // FIXME: this should include vectors, but vectors use attributes I guess. - line 583: // FIXME: We prefer to print the size directly here, but have no way - line 689: // FIXME: It would be better to be explicit in certain contexts, such as a - line 1214: // TODO: not all attributes are GCC-style attributes. - line 1282: // FIXME: When Sema learns to form this AttributedType, avoid printing the - line 1323: // FIXME: When Sema learns to form this AttributedType, avoid printing the tools/clang/lib/AST/DeclBase.cpp (13 lines): - line 348: /// FIXME: Make these strings localizable, since they end up in - line 728: // FIXME: a ParmVarDecl can have ClassTemplateSpecialization - line 731: // FIXME: a ClassTemplateSpecialization or CXXRecordDecl can have - line 825: // FIXME: Find a better way to identify friends - line 880: // FIXME: A variable template is a dependent context, but is not a - line 1273: // FIXME: This feels like a hack. Should DeclarationName support - line 1378: // FIXME: Make buildLookup const? - line 1457: // FIXME: Should we be checking these flags on the primary context? - line 1472: // FIXME: If we have lazy external declarations, this will not find them! - line 1473: // FIXME: Should we CollectAllContexts and walk them all here? - line 1551: // FIXME: As a performance hack, don't add such decls into the translation - line 1633: // FIXME: Use something more efficient than normal lookup for using - line 1702: // TODO: Maybe we shouldn't reverse the order during insertion. tools/clang/lib/AST/DeclObjC.cpp (13 lines): - line 272: // FIXME: Should make sure no callers ever do this. - line 305: // FIXME: Should make sure no callers ever do this. - line 540: // FIXME: Should make sure no callers ever do this. - line 571: // FIXME: Should make sure no callers ever do this. - line 606: // FIXME: Should make sure no callers ever do this. - line 661: // FIXME: Should make sure no callers ever do this. - line 1040: // FIXME: Handle related result types here. - line 1402: // FIXME: Should make sure no callers ever do this. - line 1434: // FIXME: Should make sure no callers ever do this. - line 1506: // FIXME: Should make sure no callers ever do this. - line 1559: // FIXME: Treat this as an extension, and flag this as an error when GCC - line 1600: // FIXME: This should really be asserting this: - line 1920: // FIXME: The context should be correct before we get here. tools/clang/lib/AST/Decl.cpp (13 lines): - line 553: // FIXME: we should warn if -fvisibility-inlines-hidden is used with c. - line 781: // FIXME: This is a hack. We should be able to solve this circularity and - line 845: // FIXME: A typedef declaration has linkage if it gives a type a name for - line 924: // FIXME: This is a hack. We should be able to solve this circularity and - line 1540: // FIXME: This returns false for functions that should in fact be replaced. - line 1553: // FIXME: If our target replaces the old target, can we replace the old - line 1591: // FIXME: In this case, we should not add this decl to the lookup table. - line 1931: // FIXME: How do you declare (but not define) a partial specialization of - line 2150: // first time it is evaluated. FIXME: The notes won't always be emitted the - line 2159: // FIXME: Produce a diagnostic for self-initialization. - line 2267: // FIXME: Remove ? - line 2662: // FIXME: A recognised library function may not be directly in an extern "C" - line 2823: // FIXME: What happens if gnu_inline gets added on after the first lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (13 lines): - line 310: // FIXME: Does not handle truncating floating point stores! - line 648: // FIXME: We shouldn't do this for TargetConstantFP's. - line 649: // FIXME: move this to the DAG Combiner! Note that we can't regress due - line 1135: // FIXME: This does not work for vectors on most targets. Sign- - line 1249: // FIXME: Model these properly. LOAD and STORE are complicated, and - line 1255: // FIXME: This shouldn't be necessary. These nodes have special properties - line 1360: // FIXME: The handling for custom lowering with multiple results is - line 2497: // TODO: Generalize this for use with other types. - line 2520: // TODO: Generalize this for use with other types. - line 2537: // TODO: This really should be implemented using a branch rather than a - line 2919: // FIXME: handle "fence singlethread" more efficiently. - line 4090: // FIXME: Custom lowering for these operations shouldn't return null! - line 4124: // FIXME: This should set a bit in the zero extended value instead. tools/clang/lib/Parse/ParseExpr.cpp (12 lines): - line 224: // FIXME: this may erroneously consume a function-body as the braced - line 227: // FIXME: this may erroneously consume a parenthesized rvalue reference - line 287: // FIXME: We can't check this via lookahead before we consume the token - line 382: // FIXME: Errors generated by the delayed typo correction should be - line 419: // FIXME: Errors generated by the delayed typo correction should be - line 1753: // FIXME: Add support for explicit call of template constructor. - line 2047: // TODO: Build AST. - line 2100: // FIXME: This loop leaks the index expressions on error. - line 2474: // TODO: For cast expression with CastTy. - line 2500: // FIXME: If we ever support comma expressions as operands to - line 2664: // FIXME: These expressions should be parsed in a potentially potentially - line 2901: // FIXME: Since the return type isn't actually parsed, it can't be used to tools/clang/lib/Serialization/ASTWriterStmt.cpp (12 lines): - line 342: Record.push_back(E->getIdentType()); // FIXME: stable encoding - line 417: // FIXME: String data should be stored as a blob at the end of the - line 459: Record.push_back(E->getOpcode()); // FIXME: stable encoding - line 473: Record.push_back(ON.getKind()); // FIXME: Stable encoding - line 590: Record.push_back(E->getBridgeKind()); // FIXME: Stable encoding - line 598: Record.push_back(E->getCastKind()); // FIXME: stable encoding - line 609: Record.push_back(E->getOpcode()); // FIXME: stable encoding - line 1021: Record.push_back((unsigned)E->getReceiverKind()); // FIXME: stable encoding - line 1193: Record.push_back(E->getConstructionKind()); // FIXME: stable encoding - line 1212: Record.push_back(E->CaptureDefault); // FIXME: stable encoding - line 1526: Record.push_back(E->TypeTraitExprBits.Kind); // FIXME: Stable encoding - line 1635: // TODO: Figure out sane writer behavior for a TypoExpr, if necessary tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp (12 lines): - line 85: // have a callback. TODO: We could check the types of the arguments here. - line 164: // TODO: Factor this out + handle the lower level const pointers. - line 232: // FIXME: a string representation of the kind would be nice. - line 256: // FIXME: All blocks should have signatures-as-written, even if the return - line 308: // FIXME: Variadic arguments are not handled at all right now. - line 411: // FIXME: This doesn't handle an overloaded ->* operator. - line 459: // FIXME: This is checking that our DynamicTypeInfo is at least as good as - line 503: // FIXME: CallEvent maybe shouldn't be directly accessing StoreManager. - line 553: // FIXME: This also needs to invalidate captured globals. - line 628: // FIXME: Is this the best way to handle class receivers? - line 700: // FIXME: Can this ever happen? - line 734: // TODO: It could actually be subclassed if the subclass is private as well. tools/clang/lib/CodeGen/CGExprAgg.cpp (12 lines): - line 331: // FIXME: Perform the checks on the field types in SemaInit. - line 401: // FIXME: Are there other cases where we can avoid emitting an initializer? - line 469: // element. TODO: some of these stores can be trivially - line 584: // FIXME: Can this actually happen? We have no test coverage for it. - line 588: // FIXME: Do we also need to handle property references here? - line 884: // FIXME: pointer arithmetic? - line 1124: // FIXME: Ignore result? - line 1125: // FIXME: Are initializers affected by volatile? - line 1197: // FIXME: Assess perf here? Figure out what cases are worth optimizing here - line 1272: // FIXME: volatility - line 1333: // FIXME: if we have an array of structures, all explicitly - line 1599: // FIXME: If we have a volatile struct, the optimizer can remove what might tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp (12 lines): - line 37: // FIXME: This is the sort of code that should eventually live in a Core - line 166: // FIXME: This will eventually need to handle new-expressions as well. - line 185: // FIXME: Handle arrays, which run the same constructor for every element. - line 252: // FIXME: Once we properly handle constructors in new-expressions, we'll - line 258: // FIXME: This isn't actually correct for arrays -- we need to zero- - line 282: // FIXME: Handle other kinds of trivial constructors as well. - line 308: // FIXME: We need to run the same destructor on every element of the array. - line 372: // FIXME: Much of this should eventually migrate to CXXAllocatorCall. - line 410: // FIXME: Once we figure out how we want allocators to work, - line 419: // FIXME: GCC has a -fcheck-new option, which forces it to consider the case - line 433: // FIXME: allocating an array requires simulating the constructors. - line 445: // FIXME: Once we have proper support for CXXConstructExprs inside lib/Analysis/IPA/InlineCost.cpp (12 lines): - line 313: // FIXME: This is overly conservative. Dynamic allocas are inefficient for - line 322: // FIXME: We should potentially be tracking values through phi nodes, - line 326: // FIXME: We need to propagate SROA *disabling* through phi nodes, even - line 730: // FIXME: Using the instsimplify logic directly for this is inefficient - line 775: // FIXME: Lift this into part of the InstVisitor. - line 893: // FIXME: This logic isn't really right; we can safely inline functions with - line 901: // FIXME: It's not clear that a single instruction is an accurate model for - line 907: // FIXME: It might be reasonably to discount the cost of instructions leading - line 938: // FIXME: Currently, the number of instructions in a function regardless of - line 1063: // FIXME: It would be nice to remove all such bonuses. At least it would be - line 1097: // FIXME: The maxStoresPerMemcpy setting from the target should be used - line 1177: // FIXME: If a caller has multiple calls to a callee, we end up recomputing tools/clang/lib/Serialization/ASTWriterDecl.cpp (12 lines): - line 118: // FIXME: Put in the same order is DeclNodes.td? - line 258: // FIXME: Can we handle this in AddedVisibleDecl instead? - line 324: Record.push_back((unsigned)D->getTagKind()); // FIXME: stable encoding - line 447: Record.push_back((int)D->SClass); // FIXME: stable encoding - line 538: // FIXME: convert to LazyStmtPtr? - line 562: // FIXME: stable encoding for @required/@optional - line 564: // FIXME: stable encoding for in/out/inout/bycopy/byref/oneway/nullability - line 647: // FIXME: stable encoding for @public/@private/@protected/@package - line 713: // FIXME: stable encoding - line 716: // FIXME: stable encoding - line 892: Record.push_back(D->getObjCDeclQualifier()); // FIXME: stable encoding - line 1529: // FIXME: This is not correct; when we reach an imported declaration we lib/Transforms/Scalar/JumpThreading.cpp (12 lines): - line 222: // FIXME: It is always conservatively correct to drop the info - line 252: // FIXME: THREADING will delete values that are just used to compute the - line 382: // FIXME: This should be an edge property, not a block end property. - line 383: /// TODO: Per PR2563, we could infer value range information about a - line 386: // FIXME: change this to use the more-rich 'getPredicateOnEdge' method if - line 607: // FIXME: Do this more cleverly if both values are known constants? - line 761: // FIXME: Unify this with code below. - line 772: // TODO: This should be extended to handle switches as well. - line 814: // TODO: There are other places where load PRE would be profitable, such as - line 841: // TODO: If we have: "br (X > 0)" and we have a predecessor where we know - line 870: // TODO: Could do simple PHI translation, that would be fun :) - line 1216: // TODO: We could make use of this to do it once for blocks with common PHI lib/CodeGen/MachineScheduler.cpp (12 lines): - line 398: // TODO: Visit blocks in global postorder or postorder within the bottom-up - line 488: // FIXME: Ideally, no further passes should rely on kill flags. However, - line 538: /// FIXME: Adjust SuccSU height based on MinLatency. - line 577: /// FIXME: Adjust PredSU height based on MinLatency. - line 957: /// FIXME: Currently assuming single-use physregs. - line 1695: /// TODO: Also check whether the SU must start a new group. - line 2087: // FIXME: Re-enable assert once PR20057 is resolved. - line 2449: /// TODO: Check execution resources in addition to IssueCount. - line 2529: /// FIXME: This is an unnecessary check on the critical path. Most are root/leaf - line 2696: /// TODO: getMaxPressureDelta results can be mostly cached for each SUnit during - line 2860: /// FIXME: Eventually, we may bundle physreg copies rather than rescheduling - line 2883: // FIXME: extend the mutation API to allow earlier mutations to instantiate lib/Transforms/Vectorize/SLPVectorizer.cpp (12 lines): - line 80: // FIXME: Set this via cl::opt to allow overriding. - line 548: /// TODO: consider moving this to the AliasAnalysis itself. - line 1543: // FIXME: Currently cost of model modification for division by - line 2008: // FIXME: This load reordering might break AllSameOpcode in some rare cases - line 2639: // instructions. TODO: We can further optimize this scan if we split the - line 3100: // TODO: It would be better to limit the vectorization factor based on - line 3160: /// quadratic search on the stores. TODO: We can further reduce this cost - line 3299: // FIXME: Is division-by-2 the correct step? Should we assert that the - line 3368: // FIXME: Register size should be a parameter to this function, so we can - line 3410: // TODO: check if we can allow reordering also for other cases than - line 3599: // FIXME: Register size should be a parameter to this function, so we can - line 4027: // TODO: The limit of 16 inhibits greater vectorization factors. tools/clang/lib/CodeGen/CGClass.cpp (12 lines): - line 100: // TODO: for complete types, this should be possible with a GEP. - line 164: // TODO: "devirtualize" this for accesses to known-complete objects. - line 595: // FIXME: This is hacky at best... if we had a bit more explicit information - line 703: // TODO: white-list trivial vbase initializers. This case wouldn't - line 706: // TODO: white-list cases where: - line 725: // FIXME: Decide if we can do a delegation of a delegating constructor. - line 832: // TODO: in restricted cases, we can emit the vbase initializers of - line 1834: // FIXME: Provide a source location here. - line 1946: // FIXME: per-argument source location - line 2326: // FIXME: Ideally Expr::IgnoreParenNoopCasts should do this, but it doesn't do - line 2474: // FIXME: Making this work correctly is nasty because it requires either - line 2515: // FIXME: Making this work correctly is nasty because it requires either utils/hct/hctdb.py (12 lines): - line 1880: # TODO - some arguments are required to be immediate constants in DXIL, eg resource kinds; add this information - line 1909: # TODO: uncomment assert when opcodes are fixed - line 2229: # TODO: turn STATISTICS macros into ETW events - line 2428: self.add_valrule("Meta.WellFormed", "Metadata must be well-formed in operand count and types.") # TODO: add string arg for what metadata is malformed (this is emitted from a lot of places and provides no context whatsoever) - line 2507: #self.add_valrule("Instr.ERR_GUARANTEED_RACE_CONDITION_UAV", "TODO - race condition writing to shared resource detected, consider making this write conditional.") warning on fxc. - line 2508: #self.add_valrule("Instr.ERR_GUARANTEED_RACE_CONDITION_GSM", "TODO - race condition writing to shared memory detected, consider making this write conditional.") warning on fxc. - line 2509: #self.add_valrule("Instr.ERR_INFINITE_LOOP", "TODO - ERR_INFINITE_LOOP") fxc will report error if it can prove the loop is infinite. - line 2587: self.add_valrule("Sm.NoPSOutputIdx", "Pixel shader output registers are not indexable.")# TODO restrict to PS - line 2657: #self.add_valrule("Uni.NoUniInDiv", "TODO - No instruction requiring uniform execution can be present in divergent block") - line 2658: #self.add_valrule("Uni.GradientFlow", "TODO - No divergent gradient operations inside flow control") # a bit more specific than the prior rule - line 2659: #self.add_valrule("Uni.ThreadSync", "TODO - Thread sync operation must be in non-varying flow control due to a potential race condition, adding a sync after reading any values controlling shader execution at this point") - line 3140: # TODO: verify a single level of indirection lib/Transforms/Scalar/LoopUnswitch.cpp (12 lines): - line 112: // FIXME: The way that MaxSize works is subtle and depends on the - line 265: // FIXME: This is overly conservative because it does not take into - line 389: // TODO: Handle: br (VARIANT|INVARIANT). - line 431: // FIXME: Reconstruct dom info, because it is not preserved properly. - line 493: // FIXME: this should chose the most expensive case! - line 494: // FIXME: scan for a case with a non-critical edge? - line 911: // FIXME: We could register any cloned assumptions instead of clearing the - line 1040: // FIXME: Support correlated properties, like: - line 1088: // TODO: We could do other simplifications, for example, turning - line 1116: // FIXME: This is a hack. We need to keep the successor around - line 1158: /// FIXME: When the loop optimizer is more mature, separate this out to a new - line 1184: // 'false'. TODO: update the domtree properly so we can pass it here. lib/CodeGen/MIRParser/MIParser.cpp (11 lines): - line 160: // TODO: Allow parsing of multiple operands before '=' - line 177: // TODO: Parse the instruction flags and memory operands. - line 194: // FIXME: Move the implicit operand verification to the machine verifier. - line 199: // TODO: Check for extraneous machine operands. - line 278: // TODO: Fix source location when Operands[J].end is right before '=', i.e: - line 325: // TODO: Parse other register kinds. - line 349: // TODO: report an error when we specify the same flag more than once. - line 350: // TODO: parse the other register flags. - line 399: // TODO: Replace this with an error when we can parse CIMM Machine Operands. - line 466: // TODO: Parse offset and target flags. - line 499: // TODO: parse the other machine operands. tools/clang/lib/AST/MicrosoftMangle.cpp (11 lines): - line 228: // FIXME: If we add support for __ptr32/64 qualifiers, then we should push - line 394: // TODO: Fields? Can MSVC even mangle them? - line 698: // FIXME: Test alias template mangling with MSVC 2013. - line 877: // FIXME: This is completely, utterly, wrong; see ItaniumMangle - line 908: // FIXME: Add a vector deleting dtor type. It goes in the vtable, so we need - line 1356: // FIXME: For now, just drop all extension qualifiers on the floor. - line 1562: // TODO: Determine size and mangle accordingly - line 1633: // FIXME: This may not be lambda-friendly. - line 1693: // FIXME: This is a temporary hack. - line 2375: // FIXME: Actually, the dtor thunk should be emitted for vector deleting - line 2489: // TODO: Revisit this when VS2015 gets released. lib/Transforms/Scalar/SCCP.cpp (11 lines): - line 567: // TODO: This could be improved if the operand is a [cast of a] BlockAddress. - line 626: // TODO: This could be improved if the operand is a [cast of a] BlockAddress. - line 656: // TODO: We could do a lot better than this if code actually uses this. - line 814: // TODO: We could do a lot better than this if code actually uses this. - line 925: // TODO : SCCP does not handle vectors properly. - line 941: // TODO : SCCP does not handle vectors properly. - line 965: // TODO : SCCP does not handle vectors properly. - line 1606: // TODO: Reconstruct structs from their elements. - line 1771: // TODO: Could use getStructLatticeValueFor to find out if the entire - line 1814: // TODO: Could use getStructLatticeValueFor to find out if the entire - line 1903: // TODO: Process multiple value ret instructions also. tools/clang/lib/Lex/PPDirectives.cpp (11 lines): - line 587: // FIXME: Look into directly passing the FileEntry from LookupFile instead. - line 756: // FIXME: Traditional: # with whitespace before it not recognized by K&R? - line 890: //isExtension = true; // FIXME: implement #assert - line 893: //isExtension = true; // FIXME: implement #unassert - line 1408: // FIXME: Provide code completion for #includes. - line 1452: // FIXME: Produce this as the current token directly, rather than - line 1688: // FIXME: Should we have a second loadModule() overload to avoid this - line 1703: // FIXME: Pass SuggestedModule in here rather than converting it to a path - line 1756: // FIXME: If we have a suggested module, and we've already visited this file, - line 1806: // FIXME: There's no point doing this if we're handling a #__include_macros - line 2421: // FIXME: Pass in the location of the macro name, not the 'if' token. tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (11 lines): - line 692: // FIXME: We need a more general way of getting the M_ZERO value. - line 896: return State; // TODO: change to assert(RS); after realloc() will - line 1010: // FIXME: We should not rely on fully-constrained symbols being folded. - line 1081: // TODO: We could rewrite post visit to eval call; 'malloc' does not have - line 1235: // FIXME: This doesn't handle indirect calls. - line 1351: // FIXME: at the time this code was written, malloc() regions were - line 1524: // FIXME: where the block came from? - line 2223: // TODO: This logic should be a part of generic symbol escape callback. - line 2235: // TODO: Blocks should be either inlined or should call invalidate regions - line 2370: // TODO: If we want to be more optimistic here, we'll need to make sure that - line 2618: // FIXME: We will eventually need to handle non-statement-based events tools/clang/lib/CodeGen/ItaniumCXXABI.cpp (11 lines): - line 65: // FIXME: Use canCopyArgument() when it is fixed to handle lazily declared - line 858: // FIXME: Use canCopyArgument() when it is fixed to handle lazily declared - line 904: // FIXME: Provide a source location here even though there's no - line 1252: // FIXME: avoid the fake decl - line 1967: // FIXME: shouldn't this be guarded by some variable? - line 2149: // FIXME: need setObjCGCLValueClass? - line 2370: llvm_unreachable("FIXME: Objective-C types are unsupported!"); - line 2381: llvm_unreachable("FIXME: HLSL types are unsupported!"); - line 2439: // FIXME: this may need to be reconsidered if the key function - line 2556: // FIXME: GCC treats block pointers as fundamental types?! - line 3228: // FIXME: Should we allow available_externally aliases? tools/clang/bindings/python/clang/cindex.py (11 lines): - line 86: FIXME: Make libclang expose additional error information in this scenario. - line 241: # FIXME: Eliminate this and make normal constructor? Requires hiding ctypes - line 1177: # TODO: Should probably check that this is either a reference or - line 1446: # FIXME: Expose iteration from CIndex, PR6125. - line 1448: # FIXME: Document this assertion in API. - line 1449: # FIXME: There should just be an isNull method. - line 1506: # FIXME: There should just be an isNull method. - line 1723: # FIXME Support slice objects. - line 2489: # FIXME: It would be great to support an efficient version - line 2553: # FIXME: It would be great to support an efficient version - line 3135: _CXString), # TODO go through _CXString.from_result? tools/clang/lib/Parse/ParseExprCXX.cpp (11 lines): - line 906: // FIXME: If we want to suggest a fixit here, will need to return more - line 968: // FIXME: This is horrible. Adding a mechanism to skip an expression - line 970: // FIXME: If there is a ',' before the next ']' or ':', we can skip to - line 1094: // FIXME: Call into Actions to add any init-capture declarations to the - line 1272: // FIXME: Rename BlockScope -> ClosureScope if we decide to continue using - line 1518: // FIXME: retrieve TemplateKWLoc from template-id annotation and - line 1589: switch (Tok.getKind()) { // FIXME: move this predicate somewhere common. - line 1800: // FIXME: Build a reference to this declaration? Convert it to bool? - line 2121: // FIXME: Store name for literal operator too. - line 2389: if (ParseCXXTypeSpecifierSeq(DS)) // FIXME: ObjectType? - line 2901: // FIXME: Produce a better diagnostic if the '[]' is unambiguously a lib/Miniz/miniz.c (11 lines): - line 3954: /* TODO: Better sanity check archive_size and the # of actual remaining bytes */ - line 4102: /* FIXME: Remove this check? Is it necessary - we already check the filename. */ - line 5314: /* TODO: parse local header extra data when local_header_comp_size is 0xFFFFFFFF! (big_descriptor.zip) */ - line 5882: /* TODO: We could add a flag that lets the user start writing immediately AFTER the existing central dir - this would be safer. */ - line 5888: /* TODO: We could easily maintain the sorted central directory offsets. */ - line 5901: /* TODO: pArchive_name is a terrible name here! */ - line 6807: /* TODO: This func is now pretty freakin complex due to zip64, split it up? */ - line 6848: /* TODO: We don't support central dir's >= MZ_UINT32_MAX bytes right now (+32 fudge factor in case we need to add more extra data) */ - line 6861: /* TODO: Our zip64 support still has some 32-bit limits that may not be worth fixing. */ - line 7152: /* TODO: Support central dirs >= 32-bits in size */ - line 7214: MZ_WRITE_LE16(hdr + MZ_ZIP64_ECDH_VERSION_MADE_BY_OFS, 0x031E); /* TODO: always Unix */ utils/TableGen/AsmMatcherEmitter.cpp (11 lines): - line 238: // FIXME: This is an oversimplification, they should only be related if they - line 267: // FIXME: This ordering seems to be broken. For example: - line 913: // FIXME : Check and raise an error if it is a register. - line 963: // FIXME: Should reject these. The ARM backend hits this with $lane in a - line 1182: // FIXME: diagnostic type. - line 1624: // FIXME: The long term goal is for the MCOperand list to not contain - line 1810: // FIXME: Handle the operand number lookup for custom match functions. - line 2057: // FIXME: Use a more specific diagnostic type. - line 2262: // FIXME: Totally just a placeholder name to get the algorithm working. - line 2358: // FIXME: Allow AssemblerVariantName to be a comma separated list. - line 2786: // FIXME: We can reduce the size of this table very easily. First, we change tools/clang/lib/Parse/ParseDeclCXX.cpp (11 lines): - line 237: // FIXME: Preserve the source information through to the AST rather than - line 460: // FIXME: Are there cases, when we would like to call ActOnUsingDirective? - line 514: // FIXME: This is wrong; we should parse this as a typename-specifier. - line 845: // FIXME: this should return the location of the last token - line 1134: // FIXME: we should emit semantic diagnostic when declaration - line 1288: // FIXME: Are we consistent with the ordering of parsing of different - line 1444: // FIXME: Name may be null here. - line 1631: // (FIXME: "template friend class A::B;"). - line 2320: // TODO: recover from mistakenly-qualified operator declarations. - line 3194: // FIXME: Suggest where the close brace should have gone by looking - line 3965: // FIXME: If this is actually a C++11 attribute, parse it as one. tools/clang/lib/CodeGen/CGObjC.cpp (11 lines): - line 401: // FIXME: This bitcast should just be made an invariant on the Runtime. - line 596: // FIXME: This should pass the Decl not the name. - line 919: // FIXME: Allow unaligned atomic load/store on x86. (It is not - line 999: // TODO: we could actually use setProperty and an expression for non-atomics. - line 1018: // TODO: falling all the way back to objc_setProperty here is - line 1251: // FIXME: Can't this be simpler? This might even be worse than the - line 1266: // FIXME: We shouldn't need to get the function info here, the - line 1380: // FIXME: should this really always be false? - line 1567: // FIXME: We shouldn't need to get the function info here, the runtime - line 1938: // FIXME: We shouldn't need to get the function info here, the runtime already - line 1974: // TODO: this pointer should actually be invariant between tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp (11 lines): - line 677: // FIXME: Maybe this should be an assertion. Are there cases - line 1108: // FIXME: Ignore intra-macro edges for now. - line 1273: // FIXME: Handle non-CallExpr-based CallEvents. - line 2282: // FIXME: There are enough /bytes/ between the endpoints of the edge, but - line 2501: // FIXME: We should just generate invalid edges anyway and have the optimizer - line 2762: // FIXME: Only NSErrorChecker needs BugType's FlushReports. - line 2780: // FIXME: There are leaks from checkers that assume that the BugTypes they - line 3391: // FIXME: Make sure we use the 'R' for the path that was actually used. - line 3515: // FIXME: Print which macro is being invoked. - line 3526: // FIXME: actually print the range. - line 3543: // FIXME: Make this nicer. lib/CodeGen/TwoAddressInstructionPass.cpp (11 lines): - line 186: // FIXME: Shouldn't we be trying to do this before we three-addressify the - line 255: // FIXME: This can be sped up if there is an easy way to query whether an - line 268: if (NumVisited > 30) // FIXME: Arbitrary limit to reduce compile time cost. - line 406: // FIXME: Sometimes tryInstructionTransform() will add instructions and - line 627: // FIXME: - line 699: // FIXME: Why does convertToThreeAddress() need an iterator reference? - line 714: // FIXME: Temporary workaround. If the new instruction doesn't - line 868: // FIXME: Needs more sophisticated heuristics. - line 910: if (NumVisited > 10) // FIXME: Arbitrary limit to reduce compile time cost. - line 930: // FIXME: This may be too conservative. It's ok if the instruction - line 1089: if (NumVisited > 10) // FIXME: Arbitrary limit to reduce compile time cost. lib/HLSL/HLOperationLower.cpp (11 lines): - line 819: // TODO: report this error on front-end - line 3252: // TODO: UpdateStatus for each gather call. - line 3698: // TODO: calculate the real address based on opcode - line 3702: // TODO: calculate the real address based on opcode - line 3919: // TODO: support mip for texture ST - line 5339: // TODO: update nonUniformIndex later. - line 5837: // TODO: Use real size after change constant buffer into linear layout. - line 5867: // TODO: use real size after change constant buffer into linear layout. - line 6842: // TODO: x4 for byte address - line 7237: // TODO: This can be inefficient for row major matrix load - line 7845: // TODO: support store. tools/clang/lib/CodeGen/CodeGenModule.cpp (11 lines): - line 674: // FIXME: Type coercion of void()* types. - line 681: // FIXME: Type coercion of void()* types. - line 1839: // FIXME: This code is overly simple and should be merged with other global - line 2604: // FIXME: this is redundant with part of setFunctionDefinitionAttributes - line 2807: // FIXME: We set the section explicitly to avoid a bug in ld64 224.1. Without - line 3168: // FIXME: If an externally-visible declaration extends multiple temporaries, - line 3542: // TODO: add resource to HLSLRuntime - line 3550: // non-top-level decl. FIXME: Would be nice to have an isTopLevelDeclKind - line 3657: // TODO: should we report variant information for ctors/dtors? - line 3745: // FIXME: Move this loop into the one target that needs it, and only - line 3808: // FIXME: should we even be calling this method if RTTI is disabled tools/clang/lib/CodeGen/CGExprConstant.cpp (11 lines): - line 177: // FIXME: This should never occur, but currently it can because initializer - line 980: // FIXME: This doesn't handle member pointers correctly! - line 1011: // FIXME: Try to avoid packing the array - line 1069: return nullptr; // FIXME: other array types not implemented - line 1128: // FIXME: We should not have to call getBaseElementType here. - line 1215: // FIXME: "Leaked" on failure. - line 1266: // FIXME: need to deal with UCN conversion issues. - line 1396: // FIXME: Implement C++11 [basic.start.init]p2: if the initializer of a - line 1522: // FIXME: the target may want to specify that this is packed. - line 1547: // FIXME: the target may want to specify that this is packed. - line 1625: // FIXME: Try to avoid packing the array lib/Transforms/InstCombine/InstCombineCasts.cpp (11 lines): - line 223: // TODO: Can handle more cases here. - line 427: // TODO: Can handle more cases here. - line 739: // TODO: If important, we could handle the case when the BitsToClear are - line 754: // TODO: If important, we could handle the case when the BitsToClear - line 761: // TODO: Can handle more cases here. - line 821: // TODO: Subsume this into EvaluateInDifferentType. - line 1046: // TODO: Can handle more cases here. - line 1135: // TODO: Eventually this could be subsumed by EvaluateInDifferentType. - line 1267: // TODO: Tighten bound via rigorous analysis of the unbalanced case. - line 1452: // TODO: enable this optimization when validation is updated. - line 1812: // FIXME: Canonicalize bitcast(insertelement) -> insertelement(bitcast) lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (11 lines): - line 427: // FIXME: This is a horrible hack and should be processed via - line 488: // FIXME: VR def may not be in entry block. - line 894: // FIXME: This is pretty gross. 'Select' should be changed to not return - line 1683: // TODO: check to see if missing bits are just not demanded. - line 1717: // TODO: check to see if missing bits are just not demanded. - line 2239: // FIXME: This is a horrible hack and broken in obscure cases, no worse - line 2557: // FIXME: Should these even be selected? Handle these cases in the caller? - line 3014: // FIXME: What if other value results of the node have uses not matched - line 3051: // FIXME: What if other value results of the node have uses not matched - line 3200: // FIXME: This is vastly incorrect for patterns with multiple outputs - line 3313: // FIXME: We just return here, which interacts correctly with SelectRoot lib/Transforms/ObjCARC/ObjCARCOpts.cpp (11 lines): - line 123: // TODO: On code like this: - line 135: // TODO: It should be possible to delete - line 141: // TODO: Critical-edge splitting. If the optimial insertion point is - line 147: // TODO: OptimizeSequences could generalized to be Interprocedural. - line 149: // TODO: Recognize that a bunch of other objc runtime calls have - line 153: // TODO: Sink autorelease calls as far as possible. Unfortunately we - line 157: // TODO: The pointer returned from objc_loadWeakRetained is retained. - line 159: // TODO: Delete release+retain pairs (rare). - line 1701: // TODO: If the fully aggressive solution isn't valid, try to find a - line 1718: // TODO: It's theoretically possible to do code motion in this case, as - line 1828: // TODO: For now, just look for an earlier available version of this value tools/clang/lib/CodeGen/CGBlocks.cpp (11 lines): - line 95: // FIXME: What is the right way to say this doesn't fit? We should give - line 844: // TODO: this can be generalized into the normal initialization logic: - line 875: // FIXME: Pass a specific location for the expr init so that the store is - line 1236: // FIXME: also for 'this' - line 1315: // FIXME: it would be nice if these were mergeable with things with - line 1452: copyCanThrow = true; // FIXME: reuse the noexcept logic - line 1489: // FIXME: We'd like to put these into a mergable by content, with - line 1783: // FIXME: We'd like to put these into a mergable by content, with - line 1855: // FIXME: We'd like to put these into a mergable by content, with - line 2101: // FIXME: We need a sema error for alignment larger than the minimum of - line 2239: EmitNounwindRuntimeCall(F, args); // FIXME: throwing destructors? tools/clang/lib/Frontend/CompilerInvocation.cpp (11 lines): - line 366: // TODO: This could be done in Driver - line 667: // FIXME: Report unrecoverable sanitizers incorrectly specified here. - line 1065: // FIXME: Remove this hack. - line 1146: StringRef Prefix = ""; // FIXME: This isn't the correct default prefix. - line 1312: // FIXME: diagnose if target does not support protected visibility - line 1325: // FIXME: Cleanup per-file based stuff. - line 1685: // FIXME: Eliminate this dependency. - line 1748: // TODO: should we tie low precision to HLSL2018 only? - line 1978: // FIXME: We shouldn't have to pass the DashX option around here - line 1991: // FIXME: ParsePreprocessorArgs uses the FileManager to read the contents of - line 2064: // FIXME: We'd rather use something more cryptographically sound than tools/llvm-objdump/MachODump.cpp (11 lines): - line 1404: // FIXME: this first dash, "-", is for (Mode & S_IFMT) == S_IFREG. - line 1809: // TODO: - line 1871: // TODO: add the VariantKinds to op_info->VariantKind for relocation types - line 1877: // TODO: - line 2353: // TODO: Look for LC_SEGMENT for 32-bit Mach-O files. - line 2450: // TODO: For fully linked images, look through the external relocation - line 5953: // FIXME: Setting the CommentStream in the InstPrinter is problematic in that - line 6009: // FIXME: Using the -cfg command line option, this code used to be able to - line 8433: // TODO: get and print the raw bytes of the load command. - line 8435: // TODO: print all the other kinds of load commands. - line 8485: Entry.address()); // FIXME:add in base address lib/CodeGen/AsmPrinter/DwarfUnit.cpp (11 lines): - line 515: // FIXME: reference and rvalue_reference /probably/ shouldn't be allowed - line 533: // FIXME: Enums without a fixed underlying type have unknown signedness - line 622: // FIXME: This is a bit conservative/simple - it emits negative values always - line 780: // FIXME: Decide whether to implement this for non-C++ languages. - line 967: // FIXME: The support isn't in the metadata for this yet. - line 986: // TODO: Do we care about size for enum forward declarations? - line 1262: // FIXME: An unbounded array should reference the expression that defines - line 1287: // FIXME: This type should be passed down from the front end - line 1294: // FIXME: Should this really be such a loose cast? - line 1377: // FIXME: DWARF 4 states that DW_AT_data_bit_offset (which - line 1468: // FIXME: We could omit private if the parent is a class_type, and tools/clang/include/clang/ASTMatchers/ASTMatchers.h (11 lines): - line 113: /// FIXME: Do we want to support this now that we have bind()? - line 1091: /// FIXME: figure out why these do not match? - line 2047: /// FIXME: Overload to allow directly matching types? - line 2370: /// FIXME: This currently only works for functions. Fix. - line 2634: /// FIXME: Currently this will ignore parentheses and implicit casts on - line 2829: // FIXME: Figure out whether it makes sense to allow this - line 3046: /// FIXME: Unit test this matcher - line 3100: /// FIXME: Generalize this for other kinds of declarations. - line 3101: /// FIXME: What other kind of declarations would we need to generalize - line 3999: /// FIXME: Implement for other node types. - line 4032: // FIXME: getSwitchCaseList() does not necessarily guarantee a stable lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp (11 lines): - line 310: // FIXME: Cost arbitrarily set to 1 because there doesn't seem to be a - line 455: /// TODO: It would be better to give CALLSEQ_END an explicit operand to point - line 615: // FIXME: Instead of visiting the pending Q each time, set a dirty flag on the - line 626: // FIXME: Nodes such as CopyFromReg probably should not advance the current - line 647: // FIXME: For resource conflicts in very long non-pipelined stages, we - line 716: // FIXME: Do not modify node height. It may interfere with - line 917: // FIXME: use ready cycle instead of height - line 1198: /// FIXME: Move to SelectionDAG? - line 1927: // FIXME: This assumes all of the defs are used as call operands. - line 2002: // FIXME: This encompasses the logic in HighRegPressure and MayReduceRegPressure - line 2061: // FIXME: The ScheduleDAG currently loses information about which of a tools/clang/tools/dotnetc/DxilBitcodeReader.cs (11 lines): - line 1230: // FIXME: Remove DEPLIB in 4.0. - line 1247: // FIXME: Remove `PARAMATTR_CODE_ENTRY_OLD' in 4.0 - line 1417: // FIXME: Remove in 4.0. - line 1501: // FIXME: Change to an error if non-default in 4.0. - line 1590: // FIXME: Change to an error if non-default in 4.0. - line 1663: // FIXME: Change to an error if non-default in 4.0. - line 1742: // FIXME: Remove in 4.0. - line 2068: // FIXME: attrid is dead, remove it in LLVM 4.0 - line 2637: else // TODO: Remove with llvm 4.0 - line 2661: else // TODO: Remove with llvm 4.0 - line 2713: // FIXME: Remove with the 4.0 release. tools/clang/lib/CodeGen/CGHLSLMSFinishCodeGen.cpp (11 lines): - line 1040: // TODO: Ensure that constant globals aren't using initializer - line 2228: // FIXME: This store needs to be placed in a new init function for - line 2406: // TODO: make sure the debug info is synced to GEP. - line 2524: // FIXME: Can we avoid creating a fake variable here, since this empty - line 2538: // FIXME: Can we avoid creating a fake variable here, since this empty - line 2673: // TODO: support other types. - line 2845: // TODO: create temp variable for constant which has store use. - line 3019: // TODO: add subobject export names here. - line 3198: // TODO: Verfiy the behavior of static globals in hull shader - line 3213: // TODO: change flattened function names to dx.entry.: - line 3488: // TODO: support aggreagate type and out parameters. lib/Transforms/Utils/SimplifyLibCalls.cpp (10 lines): - line 795: // FIXME: On a 64 bit architecture this prevents us from using the - line 1013: // TODO: Handle intrinsics in the same way as in optimizeUnaryDoubleFP(). - line 1091: // TODO: In fast-math mode, this could be just sqrt(x). - line 1092: // TODO: In finite-only mode, this could be just fabs(sqrt(x)). - line 1199: // FIXME: For finer-grain optimization, we need intrinsics to have the same - line 1243: // FIXME: We're not checking the sqrt because it doesn't have - line 1976: // FIXME: This is the same problem as described in optimizeSqrt(). - line 2146: // TODO: - line 2289: // TODO: It might be nice to get a maximum length out of the possible - line 2329: // FIXME: We shouldn't be changing "nobuiltin" or TLI unavailable calls here. include/llvm/CodeGen/MIRYamlMapping.h (10 lines): - line 87: // TODO: Serialize the virtual register hints. - line 105: // TODO: Serialize the successor weights. - line 131: /// TODO: Determine isPreallocated flag by mapping between objects and local - line 135: // TODO: Serialize LLVM alloca reference. - line 234: // TODO: Serialize StackProtectorIdx and FunctionContextIdx - line 236: // TODO: Serialize callee saved info. - line 237: // TODO: Serialize local frame objects. - line 241: // TODO: Serialize save and restore MBB references. - line 272: // TODO: Serialize the various register masks. - line 273: // TODO: Serialize live in registers. lib/MC/MCParser/DarwinAsmParser.cpp (10 lines): - line 232: // FIXME: Different on PPC and ARM. - line 381: // FIXME: Arch specific. - line 390: // FIXME: This isn't really what 'as' does; I think it just uses the implicit - line 479: // FIXME: If/when .dump and .load are implemented they will be done in the - line 539: // FIXME: Diagnostic location! - line 582: // FIXME: Arch specific. - line 583: bool isText = Segment == "__TEXT"; // FIXME: Hack. - line 727: // FIXME: Diagnose overflow. - line 812: // FIXME: Diagnose overflow. - line 822: // FIXME: Arch specific. tools/clang/lib/AST/Type.cpp (10 lines): - line 298: // FIXME: this seems inherently un-qualifiers-safe. - line 904: // FIXME: Non-trivial to implement, but important for C++ - line 939: // FIXME: Non-trivial to implement, but important for C++ - line 958: // FIXME: Non-trivial to implement, but important for C++ - line 1060: // FIXME: Introduce SubstObjCTypeParamType ? - line 1238: // FIXME: Because ASTContext::getAttributedType() is non-const. - line 1696: // FIXME: In C++, enum types are never integer types. - line 1740: // FIXME: In C++, enum types are never integer types. - line 2218: // FIXME: This is a bit dubious, but plain C structs should trivially meet - line 2344: case ObjCObjectPointer: // FIXME: object pointers aren't really specifiers lib/CodeGen/IfConversion.cpp (10 lines): - line 452: DebugLoc dl; // FIXME: this is nowhere - line 564: // FIXME: Allow true block to have an early exit? - line 695: // FIXME: This instruction is already predicated before the - line 711: // FIXME: Make use of PredDefs? e.g. ADDC, SUBC sets predicates but are - line 995: DebugLoc dl; // FIXME: this is nowhere - line 1017: // FIXME: Const cast here is nasty, but better than making StepForward - line 1152: // FIXME: Must maintain LiveIns. - line 1185: DebugLoc dl; // FIXME: this is nowhere - line 1322: // FIXME: Must maintain LiveIns. - line 1546: // FIXME: Must maintain LiveIns. tools/clang/lib/Sema/SemaExprObjC.cpp (10 lines): - line 481: // FIXME: Is there a better way to avoid quotes than using getName()? - line 891: // FIXME: Do I need to do anything special with BoolTy expressions? - line 1418: // FIXME: Preserve type source info ? - line 2143: // FIXME: The logic for looking up nullary and unary selectors should be - line 2309: // FIXME: refactor/share with ActOnMemberReference(). - line 2388: // FIXME: This is a hack. Ivar lookup should be part of normal - line 2547: // FIXME: Don't emit diagnostic at all if fixits are non-commitable. - line 2925: // TODO: specialized warning on null receivers? - line 2954: // FIXME: The type bound is currently ignored by lookup in the - line 3093: // compatibility. FIXME: should we deviate?? tools/clang/lib/Parse/ParseStmt.cpp (10 lines): - line 168: ProhibitAttributes(Attrs); // TODO: is it correct? - line 343: ProhibitAttributes(Attrs); // TODO: is it correct? - line 651: // FIXME: We should do this whether or not we have a declaration - line 1053: // FIXME: This loses extension expressions in the AST! - line 1066: // FIXME: Save the __extension__ on the decl as a node somehow? - line 1082: // FIXME: Use attributes? - line 1334: // FIXME: This is not optimal recovery, but parsing the body is more - line 1762: // FIXME: The C++11 standard doesn't actually say that this is a - line 2101: // TODO: Factor into common return ParseSEHHandlerCommon(...) - line 2195: // FIXME: Possible draft standard bug: attribute-specifier should be allowed? tools/clang/lib/Format/TokenAnnotator.cpp (10 lines): - line 86: // FIXME: This is getting out of hand, write a decent parser. - line 106: // FIXME: This is a bit of a hack. Do better. - line 302: // FIXME: Do we incorrectly label ":" with this? - line 740: // FIXME: Closure-library specific stuff should not be hard-coded but be - line 1553: // FIXME: Line.Last points to other characters than tok::semi - line 1578: // FIXME: Only calculate this if CanBreakBefore is true once static - line 1580: // FIXME: Move magic numbers to a better place. - line 1974: // incorrectly classified the parenthesis as a cast. FIXME: Detect correctly. - line 2027: // FIXME: This might apply to other languages and token kinds. - line 2186: return Left.isNot(tok::period); // FIXME: Properly parse ObjC calls. tools/clang/lib/Parse/ParseTentative.cpp (10 lines): - line 114: // FIXME: TryParseSimpleDeclaration doesn't look past the first initializer, - line 122: // FIXME: Add statistics about the number of ambiguous statements encountered - line 178: // FIXME: We don't support class-specifiers nor enum-specifiers here. - line 314: // FIXME: Handle this case correctly. - line 321: // FIXME: Change if above assumption does not hold. - line 351: // FIXME: Add statistics about the number of ambiguous statements encountered - line 420: // FIXME: Add statistics about the number of ambiguous statements encountered - line 538: // FIXME: If this disambiguation is too slow, fold the tentative lambda parse - line 1183: // FIXME: If this happens due to an undeclared identifier, treat it as - line 1784: // FIXME: assignment-expression may contain an unparenthesized comma. lib/CodeGen/ScheduleDAGInstrs.cpp (10 lines): - line 307: // TODO: Using a latency of 1 here for output dependencies assumes - line 378: /// TODO: Hoist loop induction variable increments. This has to be - line 417: /// TODO: Handle ExitSU "uses" properly. - line 532: // FIXME: Need to handle multiple memory operands to support all targets. - line 565: // FIXME: Modify API to hide this math from "user" - line 566: // FIXME: Even before we go to AA we can reason locally about some - line 600: // TODO: Need to make sure that if that dependency got eliminated or ignored - line 851: // FIXME: NumDataSuccs would be more precise than NumSuccs here. This - line 867: // TODO: Use an AliasAnalysis and do real alias-analysis queries, and - line 1170: // FIXME: Reuse the LivePhysRegs utility for this. tools/clang/lib/CodeGen/CGDecl.cpp (10 lines): - line 137: // FIXME: We need to force the emission/use of a guard variable for - line 261: // FIXME: Ensure that global blocks get emitted. - line 399: // FIXME: It is really dangerous to store this in the map; if anyone - line 851: // TODO: Should budget depends on the size? Avoiding a large global warrants - line 885: // FIXME: Remove this when msan works with lifetime markers. - line 930: // TODO: We should constant-evaluate the initializer of any variable, - line 1025: // FIXME: in general circumstances, this should be an EH cleanup. - line 1281: // TODO: how can we delay here if D is captured by its initializer? - line 1452: // FIXME: When popping normal cleanups, we need to keep this EH cleanup - line 1705: // FIXME: Why isn't ImplicitParamDecl a ParmVarDecl? tools/clang/include/clang/AST/Decl.h (10 lines): - line 205: // FIXME: This function should be renamed to indicate that it is not just an - line 208: // FIXME: Deprecated, move clients to getName(). - line 229: // FIXME: Remove string version. - line 1603: // FIXME: This can be packed into the bitfields in Decl. - line 2035: // FIXME: Should one day replace iterator interface. - line 2317: // FIXME: This can be packed into the bitfields in Decl. - line 2755: // FIXME: This can be packed into the bitfields in Decl. - line 3282: // FIXME: This can be packed into the bitfields in Decl. - line 3518: // FIXME: This can be packed into the bitfields in Decl. - line 3571: // FIXME: Should eventual replace iterator access. tools/clang/unittests/HLSL/DXIsenseTest.cpp (10 lines): - line 650: // TODO: get a referenced local variable as 'int localVar'; - line 651: // TODO: get a referenced type as 'class Something'; - line 652: // TODO: having the caret on a function name in definition, highlights calls to it - line 653: // TODO: get a class name without the template arguments - line 654: // TODO: get a class name with ftemplate arguments - line 655: // TODO: code completion for a built-in function - line 656: // TODO: code completion for a built-in method - line 669: // TODO - how to get signature? - line 688: // TODO - how to get signature? - line 702: // TODO - how to get signature? tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp (10 lines): - line 82: // FIXME: Should we cache this at all? - line 397: // FIXME: We need a way to map from names to Type*. - line 448: // FIXME: We really should allow ranges of valid theType values, and - line 457: // FIXME: In some cases we can emit an error. - line 468: // FIXME: Eventually we should handle arbitrary locations. We can do this - line 480: // FIXME: If the pointee isn't an integer type, should we flag a warning? - line 495: // FIXME: We can actually create an abstract "CFNumber" object that has - line 569: // FIXME: The rest of this just checks that the argument is non-null. - line 709: // FIXME: Ideally we'd look at the receiver interface here, but that's not - line 923: // FIXME: Copied from ExprEngineObjC. lib/HLSL/DxilContainerReflection.cpp (10 lines): - line 701: // TODO: implement this check, if users actually depend on it - line 707: // TODO: implement `class`-related features, if requested - line 713: // TODO: implement `class`-related features, if requested - line 731: // TODO: implement `class`-related features, if requested - line 804: // TODO: consider just listing the `RasterizerOrdered` cases explicitly, - line 1230: // TODO: are there other cases to be handled? - line 1533: // TODO: D3D_SIT_UAV_CONSUME_STRUCTURED, D3D_SIT_UAV_APPEND_STRUCTURED? - line 1866: // TODO: add tbuffers into m_CBs - line 2340: // TODO: map to used input + output signature rows? - line 2501: // TODO: determine correct value lib/CodeGen/SelectionDAG/TargetLowering.cpp (10 lines): - line 290: // FIXME: ISD::SELECT, ISD::SELECT_CC - line 1322: // TODO: (ctpop x) == 1 -> x && (x & x-1) == 0 iff ctpop is illegal. - line 2068: // FIXME: If running after legalize, we probably can't do this. - line 2698: // TODO: For UDIV use SRL instead of SRA. - line 2733: // FIXME: We should be more aggressive here. - line 2744: // FIXME: We should support doing a MUL in a wider type - line 2798: // FIXME: We should be more aggressive here. - line 2802: // FIXME: We should use a narrower constant when the upper - line 2823: // FIXME: We should support doing a MUL in a wider type - line 2983: // FIXME: Only f32 to i64 conversions are supported. tools/clang/lib/Headers/altivec.h (10 lines): - line 7692: // FIXME: parameter should be treated as 5-bit signed literal - line 7699: // FIXME: parameter should be treated as 5-bit signed literal - line 7708: // FIXME: parameter should be treated as 5-bit signed literal - line 7715: // FIXME: parameter should be treated as 5-bit signed literal - line 7724: // FIXME: parameter should be treated as 5-bit signed literal - line 7731: // FIXME: parameter should be treated as 5-bit signed literal - line 7738: // FIXME: parameter should be treated as 5-bit signed literal - line 7745: // FIXME: parameter should be treated as 5-bit signed literal - line 7752: // FIXME: parameter should be treated as 5-bit signed literal - line 13413: FIXME: the naming convention for the builtins will be adjusted due lib/Transforms/Vectorize/LoopVectorize.cpp (10 lines): - line 842: /// FIXME: The newly created binary instructions should contain nsw/nuw - line 1624: // FIXME: This is hidden behind a flag due to pervasive problems with - line 1634: // FIXME: This check doesn't seem possibly correct -- what if the loop is - line 1768: // FIXME: The newly created binary instructions should contain nsw/nuw flags, - line 3391: // FIXME: The newly created binary instructions should contain nsw/nuw flags, - line 4154: // TODO: we need to follow values all over the loop, not only in this block. - line 4301: // FIXME: Currently we can't handle mixed accesses and predicated accesses - line 4999: // TODO: We need to estimate the cost of intrinsic calls. - line 5011: //TODO: IF-converted IFs become selects. - line 5135: // FIXME: The interleaved load group with a huge gap could be even more tools/clang/lib/SPIRV/DeclResultIdMapper.cpp (10 lines): - line 285: // TODO: support boolean matrix stage I/O variable if needed. - line 331: // TODO: Add support for multiple output streams. - line 565: // TODO: this looks like a hack to make the current tests happy. - line 861: // TODO: replace this with FlagIsLocal enum. - line 913: // TODO: replace this with FlagIsDefinition enum. - line 915: // TODO: update linkageName correctly. - line 2564: // TODO: the following may not be correct? - line 3157: // TODO: Probably we can call hlsl::ValidateSignatureElement() for the - line 3432: // TODO: patch constant function in hull shader - line 4002: // TODO: Handle member field in a struct and function parameter. include/llvm/MC/MCAssembler.h (10 lines): - line 29: #include // FIXME: Shouldn't be needed. - line 90: // FIXME: This could all be kept private to the assembler implementation. - line 515: // FIXME: This really doesn't belong here. See comments below. - line 521: // FIXME: Ditto this. Purely so the Streamer and the ObjectWriter can talk - line 597: // FIXME: We really would like this in target specific code rather than - line 718: // FIXME: How are we going to parameterize this? Two obvious options are stay - line 744: // FIXME: This does not belong here. - line 792: // FIXME: This is a total hack, this should not be here. Once things are - line 827: // FIXME: This is a total hack, this should not be here. Once things are - line 848: // FIXME: This is a total hack, this should not be here. Once things are lib/IR/Verifier.cpp (10 lines): - line 226: // FIXME: It's really gross that we have to cast away constness here. - line 230: // FIXME: We strip const here because the inst visitor strips const. - line 479: // FIXME: Reject the 2-field form in LLVM 4.0. - line 792: // FIXME: Sink this into the subclass verifies. - line 973: // FIXME: Check this incrementally while visiting !dbg attachments. - line 974: // FIXME: Only check when N is the canonical subprogram for F. - line 995: // FIXME: Once N is canonical, check "SP == &N". - line 1585: // TODO: Remove this limitation - line 2700: // FIXME: more conditions??? - line 3570: // FIXME: Remove this check as soon as clang stops doing this; it hides bugs. tools/clang/lib/CodeGen/CodeGenFunction.cpp (10 lines): - line 216: // FIXME: We are at an unreachable point, there is no reason to emit the block - line 515: // FIXME: what about read_write? - line 700: RetTy, ArgTypes, FunctionProtoType::ExtProtoInfo(), None); // HLSL Change - add param mods - TODO: review for inout - line 778: // FIXME: Should we generate a new load for each use of 'this'? The - line 976: // TODO: If anyone cared, we could track __label__'s, since we know that you - line 1041: // FIXME: Rename and handle conversion of other evaluatable things - line 1378: // TODO: there are other patterns besides zero that we can usefully memset, - line 1550: // FIXME: Teach -fsanitize=undefined to trap this. - line 1753: // FIXME We create a new bitcast for every annotation because that's what - line 1769: // FIXME Always emit the cast inst so we can differentiate between tools/clang/lib/Parse/ParseObjc.cpp (10 lines): - line 494: // FIXME: If these aren't protocol references, we'll need different - line 500: // FIXME: Better recovery here?. - line 706: // FIXME: If someone forgets an @end on a protocol, this loop will - line 727: // FIXME: Should this check for ObjC2 being enabled? - line 1126: // FIXME: May have to do additional look-ahead to only allow for - line 1201: // FIXME: Diagnose redundant specifiers. - line 1521: // FIXME: Add support for optional parameter list... - line 1654: // FIXME: Also include types here. - line 2847: // proper recovery can happen. FIXME: Perhaps filter the corrected expr to - line 2971: // FIXME: This doesn't benefit from the same typo-correction we tools/clang/lib/Lex/HeaderSearch.cpp (10 lines): - line 189: // FIXME: Figure out how header maps and module maps will work together. - line 266: // FIXME: This appears to be a no-op. We loaded the module map for this - line 539: // FIXME: This can find a module not part of ModuleName, which is - line 636: // FIXME: Portability. Filename concatenation should be in sys::Path. - line 641: // FIXME: We don't cache the result of getFileInfo across the call to - line 645: // FIXME: If we have no includer, that means we're processing a #include - line 820: // FIXME: SuggestedModule. - line 850: // FIXME: Should we permit '\' on Windows? - line 1178: // FIXME: This assert can fail if there's a race between the above check - line 1330: // FIXME: Deal with header maps. tools/clang/include/clang/Sema/Sema.h (10 lines): - line 219: // FIXME: No way to easily map from TemplateTypeParmTypes to - line 402: // FIXME: We should serialize / deserialize these if they occur in a PCH (but - line 2364: // TODO: make this is a typesafe union. - line 3219: // FIXME: No need to make the entire Sema class a friend when it's just - line 4187: // FIXME: Can we remove this and have the above BuildCXXConstructExpr check if - line 5355: // FIXME: I don't like this name. - line 6466: /// FIXME: Use a TemplateArgumentList - line 6608: /// same instantiation. FIXME: Does this belong in Sema? It's tough - line 6651: /// FIXME: Serialize this structure to the AST file. - line 6834: // FIXME: Using a SFINAETrap for this is a hack. tools/clang/lib/AST/RecordLayoutBuilder.cpp (9 lines): - line 54: // FIXME: Document. - line 570: // FIXME: Remove this and make the appropriate fields public. - line 2044: // FIXME: To the extent that this is meant to cover the Itanium ABI - line 2597: // TODO: Add a Sema warning that MS ignores bitfield alignment in unions. - line 2614: // TODO: Add a Sema warning that MS ignores alignment for zero - line 2623: // TODO: Add a Sema warning that MS ignores bitfield alignment in unions. - line 2912: // FIXME: this should be stored in the record layout. - line 2916: // FIXME: This should be done in FinalizeLayout. - line 3004: // FIXME: remember that we did this for module / chained PCH state? tools/clang/lib/Lex/PPLexerChange.cpp (9 lines): - line 264: // FIXME: Handle other kinds of lexers? It generally shouldn't matter, - line 449: // FIXME: This is hacky, the code-completion point should probably be - line 633: // FIXME: Can we enable Complain here? - line 634: // FIXME: Can we do this when local visibility is disabled? - line 648: // FIXME: If we have local visibility but not modules enabled, the - line 654: // FIXME: Do this lazily, when each macro name is first referenced. - line 692: // FIXME: It'd be better to start at the state from when we most recently - line 731: // FIXME: Issue a warning if multiple headers for the same submodule - line 744: // FIXME: Before we leave this submodule, we should parse all the other tools/clang/lib/Analysis/CFG.cpp (9 lines): - line 941: // FIXME: Add support for dependent-sized array types in C++? - line 1307: // FIXME: This is incorrect. Non-reference declarations can lifetime-extend - line 1357: /// FIXME: This mechanism for adding automatic destructors doesn't handle - line 1429: // FIXME: The expression inside a CXXDefaultArgExpr is owned by the - line 2590: // TODO: consider adding cleanups for the end of @autoreleasepool scope. - line 2594: // FIXME: Add locking 'primitives' to CFG for @synchronized. - line 2777: // FIXME: For now we pretend that @catch and the code it contains does not - line 2783: // FIXME: This isn't complete. We basically treat @throw like a return - line 2898: // FIXME: Can we do this more efficiently without adding another block? lib/CodeGen/MIRPrinter.cpp (9 lines): - line 95: // TODO: Print Stack Slots. - line 121: // TODO: Allow printing of non sequentially numbered MBBs. - line 190: // TODO: Store the mapping between fixed object IDs and object indices to - line 212: // TODO: Store the mapping between object IDs and object indices to print - line 222: // TODO: Serialize unnamed BB references. - line 282: // TODO: Print the instruction flags, machine mem operands. - line 306: // TODO: Print the other register flags. - line 328: // TODO: Print offset and target flags. - line 339: // TODO: Print the other machine operands. tools/clang/lib/Sema/SemaLambda.cpp (9 lines): - line 882: // FIXME: This is a poor diagnostic for ReturnStmts without expressions. - line 883: // TODO: It's possible that the *first* return is the divergent one. - line 901: // FIXME: We should model whether an '=' was present. - line 1004: // FIXME: Pass in separate source locations for '&' and identifier. - line 1203: // FIXME: we should create the init capture variable and mark it invalid - line 1242: // FIXME: Disable corrections that would add qualification? - line 1486: // FIXME: Instead of passing in the CallOperator->getTypeSourceInfo() - line 1605: // FIXME: This is dumb. Add a proper AST representation for array - line 1779: // FIXME: Fix generic lambda to block conversions. lib/Transforms/InstCombine/InstructionCombining.cpp (9 lines): - line 389: // TODO: It would be nice to handle division, aka "(X + Y)/Z = X/Z + Y/Z", - line 404: // TODO: We can handle other cases e.g. Instruction::And, Instruction::Or etc. - line 440: // TODO: We can add other conversions e.g. shr => div etc. - line 507: // TODO: Check for NUW. - line 1981: // FIXME: We can extend the number of predecessor, but in that case, we - line 1989: // FIXME: We could check if we can speculate everything in the - line 2299: // FIXME: If a load is used only by extractvalue instructions then this - line 3030: // FIXME: The AliasAnalysis is not yet supported in the new pass manager - line 3036: // FIXME: Need a way to preserve CFG analyses here! tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp (9 lines): - line 94: // FIXME: This probably shouldn't mutate the original path piece. - line 230: return; // FIXME: Emit a warning? - line 238: return; // FIXME: Emit a warning? - line 241: return; // FIXME: Emit a warning? - line 256: return; // FIXME: Emit a warning? - line 646: // FIXME: Should handle CXXTryStmt if analyser starts supporting C++. - line 831: // FIXME: Provide better range information for different - line 1073: // FIXME: Add profiling support for code hints. - line 1130: // FIXME: Use CallEvent to abstract this over all calls. lib/IR/Attributes.cpp (9 lines): - line 272: // FIXME: These should be output like this: - line 397: // FIXME: Remove this. - line 779: // FIXME it is not obvious how this should work for alignment. For now, say - line 833: // FIXME it is not obvious how this should work for alignment. - line 875: // FIXME it is not obvious how this should work for alignment. - line 1071: // FIXME: Remove this. - line 1251: // FIXME: What if both have alignments, but they don't match?! - line 1273: // FIXME: What if both have alignments, but they don't match?! - line 1358: // FIXME: Remove this in 4.0. lib/Transforms/Scalar/GVN.cpp (9 lines): - line 343: // FIXME: Move the checking logic to MemDep! - line 361: // FIXME: All duplicated with non-local case. - line 975: // FIXME: Study to see if/when this happens. One case is forwarding a memset - line 1614: // FIXME: If we could restructure the CFG, we could make a common pred with - line 1680: // FIXME: We really _ought_ to insert these value numbers into their - line 1810: // FIXME: If both the original and replacement value are part of the - line 2190: // FIXME: We should do this optimization if 'no signed zeros' is - line 2401: // FIXME: Should perform GVN again after PRE does something. PRE can move - line 2416: // FIXME: Kill off InstrsToErase by doing erasing eagerly in a helper function lib/CodeGen/SelectionDAG/StatepointLowering.cpp (9 lines): - line 165: // TODO: We can do better for PHI nodes. In cases like this: - line 176: // TODO: handle simple updates. If a value is modified and the original - line 233: // TODO: currently we reserve space for gc arguments after doing - line 337: // TODO: To eliminate this problem we can remove gc.result intrinsics - line 410: // TODO: We can create TokenFactor node instead of - line 482: // insertion. TODO: This should actually be in the Verifier, but we can't get - line 702: // TODO: Currently, all of these operands are being marked as read/write in - line 799: // TODO: A better future implementation would be to emit a single variable - line 864: // TODO: Probably we can be less restrictive on this, tools/clang/lib/Format/UnwrappedLineParser.cpp (9 lines): - line 285: // FIXME: Add parameter whether this can happen - if this happens, we must - line 438: // FIXME: Closure-library specific stuff should not be hard-coded but be - line 871: // FIXME: Figure out cases where this is not true, and add projections - line 971: // FIXME: This is a dirty way to access the previous token. Find a better - line 1110: // FIXME: Once we have an expression parser in the UnwrappedLineParser, - line 1389: // FIXME: Add error handling. - line 1450: // FIXME: Add error handling. - line 1487: // FIXME: fix handling of complex expressions here. - line 1586: // FIXME: This will also mark enums with braces in the arguments to enum lib/Transforms/Scalar/PlaceSafepoints.cpp (9 lines): - line 226: // TODO: structure this as an analysis pass, cache the result for subloops, - line 275: // This returns an exact expression only. TODO: We really only need an - line 300: // FIXME: This code does not handle invokes - line 364: // TODO: We can create an inner loop which runs a finite number of - line 510: // TODO: This should check the GCStrategy - line 521: // TODO: These should become properties of the GCStrategy, possibly with - line 676: // above loop. TODO: Teach the inliner how to update the dom tree? - line 777: // TODO: Support attributes on the call site as well. - line 873: // TODO: technically, a pass is not allowed to get functions from within a lib/IR/DIBuilder.cpp (9 lines): - line 242: // FIXME: Why is there a name here? - line 483: // FIXME: Restrict this to the nodes where it's valid. - line 490: // FIXME: Restrict this to the nodes where it's valid. - line 509: // FIXME: Define in terms of createReplaceableForwardDecl() by calling - line 596: // FIXME: Why getNonCompileUnitScope()? - line 597: // FIXME: Why is "!Context" okay here? - line 598: // FIXME: Why doesn't this check for a subprogram or lexical block (AFAICT - line 621: // TODO: Remove the callers of this signed version and delete. - line 696: // FIXME: Do we want to use different scope/lines? tools/clang/lib/Tooling/Tooling.cpp (9 lines): - line 50: // FIXME: This file contains structural duplication with other parts of the - line 152: // FIXME: Should '.\\' be accepted on Win32? - line 313: // FIXME: On linux, GetMainExecutable is independent of the value of the - line 332: // FIXME: Make the compilation database interface more explicit about the - line 337: // FIXME: There are two use cases here: doing a fuzzy - line 346: // FIXME: chdir is thread hostile; on the other hand, creating the same - line 361: // FIXME: We need a callback mechanism for the tool writer to output a - line 370: // FIXME: Diagnostics should be used instead. - line 395: // FIXME: This should use the provided FileManager. tools/clang/lib/CodeGen/CGExprCXX.cpp (9 lines): - line 530: // TODO: there are other patterns besides zero that we can usefully memset, - line 532: // TODO: isZeroInitializable can be over-conservative in the case where a - line 927: // FIXME: Refactor with EmitExprAsInit. - line 1002: // element. TODO: some of these stores can be trivially - line 1007: // FIXME: If the last initializer is an incomplete initializer list for - line 1036: // FIXME: If the type is a pointer-to-data-member under the Itanium ABI, - line 1090: // FIXME: Share this cleanup with the constructor call emission rather than - line 1237: // FIXME: Add addAttribute to CallSite. - line 1463: // TODO: kill any unnecessary computations done for the size tools/clang/lib/Basic/FileManager.cpp (9 lines): - line 14: // TODO: This should index all interesting directories with dirent calls. - line 257: // FIXME: Use the directory info to prune this, before doing the stat syscall. - line 258: // FIXME: This will reduce the # syscalls. - line 305: // FIXME: this hack ensures that if we look up a file by a virtual path in - line 315: // FIXME: Neither this nor always using the first name is correct; we want - line 434: // FIXME: we need a set of APIs that can make guarantees about whether a - line 470: // FIXME: FileSystemOpts shouldn't be passed in here, all paths should be - line 534: // FIXME: Move this to llvm::sys::path. - line 564: // FIXME: use llvm::sys::fs::canonical() when it gets implemented lib/HLSL/DxilCondenseResources.cpp (9 lines): - line 1178: // TODO: Not sure if this case will actually work - line 2074: // TODO: add debug info to create handle. - line 2081: // TODO: how to get col? - line 2117: // TODO: set debug info. - line 2353: // TODO: Handle this, or prevent this for tbuffer - line 2813: // TODO: support case when save dynamic resource as local array element. - line 2814: // TODO: share code with LegalizeResourceUseHelper. - line 2954: // TODO: or args.IsNonUniform with !isUniform(Phi) with uniform - line 2983: // TODO: or args.IsNonUniform with !isUniform(Phi). tools/clang/lib/Sema/SemaCast.cpp (8 lines): - line 858: //FIXME: &f; is overloaded and resolvable - line 1162: // FIXME: Should allow casting away constness if CStyle. - line 1226: // FIXME: If the source is a prvalue, we should issue a warning (because the - line 1308: // FIXME: Being 100% compliant here would be nice to have. - line 1711: // FIXME: Scoped enums? - line 1779: // TODO: what if this fails because of DiagnoseUseOfDecl or something - line 1897: // FIXME: Should this also apply to floating point types? - line 2037: // FIXME: Conditionally-supported behavior should be configurable in the lib/Analysis/MemoryDependenceAnalysis.cpp (8 lines): - line 447: // FIXME: This only considers queries directly on the invariant-tagged - line 479: // FIXME: This is overly conservative. - line 522: #if 0 // FIXME: Temporarily disabled. GVN is cleverly rewriting loads - line 553: // FIXME: This is overly conservative. - line 570: // FIXME: this is overly conservative. - line 892: // TODO: volatiles can't be elided, but they can be reordered with other - line 897: // TODO: Handle ordered instructions - line 1333: // FIXME: it is entirely possible that PHI translating will end up with tools/clang/lib/CodeGen/CGVTables.cpp (8 lines): - line 127: // FIXME: This function assumes "this" is the first non-sret LLVM argument of - line 130: // FIXME: This function assumes there is only one "ret" statement per function. - line 131: // FIXME: Cloning isn't correct in the presence of indirect goto! - line 132: // FIXME: This implementation of thunks bloats codesize by duplicating the - line 377: // FIXME: Don't emit unreachable code. - line 400: // FIXME: re-use FnInfo in this computation. - line 458: // FIXME: Do something better here; GenerateVarArgsThunk is extremely ugly. - line 849: // FIXME: Make this user configurable. tools/clang/unittests/HLSL/DxilContainerTest.cpp (8 lines): - line 766: #if 0 // TODO: reenable test when multiple rows are supported. - line 1126: // TODO: verify rest of variable - line 1132: // TODO: verify rest of type - line 1150: // TODO: verify rest of variable - line 1156: // TODO: verify rest of type - line 1167: // TODO: verify rest of variable - line 1173: // TODO: verify rest of type - line 1381: // TODO: FINISH THIS tools/llvm-diff/DifferenceEngine.cpp (8 lines): - line 227: // FIXME: call attributes - line 247: // FIXME: metadata (if Complain is set) - line 264: // FIXME: implement. - line 388: // block. FIXME: tentative matches? - line 410: // FIXME: inbounds? - line 636: // FIXME: types - line 637: // FIXME: attributes and CC - line 638: // FIXME: parameter attributes lib/ExecutionEngine/MCJIT/MCJIT.cpp (8 lines): - line 53: // FIXME: Don't do this here. - line 74: // FIXME: We are managing our modules, so we do not want the base class - line 237: // FIXME: Rename this. - line 294: // FIXME: Do we need to worry about global aliases? - line 319: // FIXME: Support nested archives? - line 347: // FIXME: Should we instead have a LazySymbolCreator callback? - line 396: // FIXME: Asking for the pointer to a function that hasn't been registered, - line 402: // FIXME: Should the Dyld be retaining module information? Probably not. lib/CodeGen/CriticalAntiDepBreaker.cpp (8 lines): - line 97: // FIXME: It may be possible to remove the isKill() restriction once PR18663 - line 154: // FIXME: The issue with predicated instruction is more complex. We are being - line 212: // FIXME: can this check be relaxed to account for undef uses - line 435: // FIXME: Replace this with the existing map in ScheduleDAGInstrs::MISUnitMap - line 502: // TODO: If we tracked more than one register here, we could potentially - line 519: // FIXME: It may be possible to remove the isKill() restriction once PR18663 - line 534: // TODO: Instructions with multiple defs could have multiple - line 623: // TODO: Instead of picking the first free register, consider which might tools/clang/lib/Parse/Parser.cpp (8 lines): - line 900: /// [!C99] init-declarator-list ';' [TODO: warn in c99 mode] - line 929: // FIXME: This still needs better diagnostics. We should only accept - line 936: SkipUntil(tok::semi); // FIXME: better skip? - line 1102: // FIXME: Should we really fall through here? - line 1425: // FIXME: Move the tentative declaration logic into ClassifyName so we can - line 1627: // FIXME: check whether the next token is '<', first! - line 1920: SourceLocation TemplateKWLoc; // FIXME: parsed, but unused. - line 1978: // FIXME: Support module import within __if_exists? tools/clang/lib/CodeGen/CGExprScalar.cpp (8 lines): - line 731: // FIXME: Maybe split this sanitizer out from float-cast-overflow. - line 771: // FIXME: Provide a SourceLocation. - line 1469: // FIXME: evaluate codegen vs. shuffling against constant null vector. - line 1755: // TODO: kill this function off, inline appropriate case here - line 2189: // TODO: Could dynamically modify easy computations here. For example, if - line 2239: // FIXME: It would be nice if we didn't have to loop here! - line 2474: // FIXME: For floating point types, we should be saving and restoring the - line 3808: // FIXME Volatility. lib/Transforms/InstCombine/InstCombineCompares.cpp (8 lines): - line 486: // TODO: Find a way to do this safely. - line 815: // FIXME: If the operand types don't match the type of the divide - line 2507: // FIXME: we may want to go through inttoptrs or bitcasts. - line 2754: // TODO: This could probably be generalized to handle other overflow-safe - line 3723: // enough that preserves all bits. TODO: check here for "known" sign bits. - line 3741: // TODO: Can never be -0.0 and other non-representable values - line 3753: // TODO: If the constant is exactly representable, is it always OK to do - line 4005: // FIXME: This shouldn't be here. lib/Transforms/Scalar/IndVarSimplify.cpp (8 lines): - line 361: // TODO: We could use i64 if it is native and the range requires it. - line 758: // TODO: If we see testcase with multiple ExitingBlocks can be deleted - line 1444: /// TODO: This fails for pointer-type loop counters with greater than one byte - line 1598: /// TODO: If we decide that this is a good approach to checking for undef, we - line 1628: /// FIXME: Accept -1 stride and set IVLimit = IVInit - BECount - line 1630: /// FIXME: Accept non-unit stride as long as SCEV can reduce BECount * Stride. - line 1939: // FIXME: Refactor this check somehow? - line 2062: // FIXME: SCEV expansion has no way to bail out, so the caller must tools/clang/lib/Frontend/CompilerInstance.cpp (8 lines): - line 67: // TODO: harden output file cleanup so there are no additional allocations/exceptions - line 240: // TODO: choose the virtual file system based on the CompilerInvocation. - line 821: // FIXME: Take this as an argument, once all the APIs we used have moved to - line 833: // FIXME: We shouldn't need to do this, the target should be immutable once - line 1046: // FIXME: Even though we're executing under crash protection, it would still - line 1071: // FIXME: have LockFileManager return an error_code so that we can - line 1563: // FIXME: The ASTReader will already have complained, but can we showhorn - line 1650: // FIXME: Should we detect this at module load time? It seems fairly lib/Transforms/IPO/GlobalOpt.cpp (8 lines): - line 328: // TODO: Handle splats. - line 1761: // FIXME: Pass Global's alignment when globals have alignment - line 1905: // FIXME: Is it worth transforming x86_stdcallcc and x86_fastcallcc? - line 2344: // FIXME: This could be extended to support arrays as well. - line 2636: // bail out. TODO: we might want to accept limited recursion. - line 2889: // TODO: Try to handle non-zero GEPs of local aliasees. - line 2960: // FIXME: We could eliminate C++ destructors if they're readonly/readnone and - line 3092: // TODO: Move all global ctors functions to the end of the module for code tools/clang/include/clang/AST/Expr.h (8 lines): - line 1534: // FIXME: StringRef may not be the right type to use as a result for this. - line 2639: // FIXME: Init should never be null. - line 2647: // FIXME: Init should never be null. - line 3202: // FIXME: the type of the conditional operator doesn't - line 3404: // FIXME: Does type-dependence need to be computed differently? - line 3405: // FIXME: Do we need to compute instantiation instantiation-dependence for - line 3764: // FIXME: Eliminate this vector in favor of ASTContext allocation - line 3929: // FIXME: This does not include the array filler expression. tools/clang/lib/Lex/Lexer.cpp (8 lines): - line 158: /// TODO: It would really be nice to make _Pragma just be a wrapper around a - line 421: // TODO: this could be special cased for common tokens like identifiers, ')', - line 1349: // FIXME: What exactly does the StartOfLine bit mean? There are two - line 1483: // TODO: Could merge these checks into an InfoTable flag to make the - line 2004: // FIXME: The next token will not have LeadingSpace set. - line 2941: // FIXME: The next token will not have LeadingSpace set. - line 3396: // TODO: -fpreprocessed mode?? - line 3562: // TODO: -fpreprocessed mode?? tools/clang/lib/AST/DeclPrinter.cpp (8 lines): - line 125: // FIXME: This should be on the Type class! - line 346: // FIXME: Need to be able to tell the DeclPrinter when - line 926: // FIXME: Doesn't print access specifiers, e.g., "public:" - line 1002: // FIXME: print the default argument, if present. - line 1122: // FIXME: selector is missing here! - line 1233: // FIXME: implement the rest... - line 1260: // FIXME: implement the rest... - line 1282: // FIXME: implement the rest... lib/CodeGen/MachineBlockPlacement.cpp (8 lines): - line 65: // FIXME: Find a good default for this flag and remove the flag. - line 357: // FIXME: Due to the performance of the probability and weight routines in - line 466: // FIXME: If this shows up on profiles, it could be folded (at the cost of - line 675: // FIXME: Due to the performance of the probability and weight routines in - line 825: // FIXME: This is a really lame way of walking the chains in the loop: we - line 1009: // FIXME: It would be awesome of updateTerminator would just return rather - line 1032: // FIXME: This should never take place. - line 1046: DebugLoc dl; // FIXME: this is nowhere include/llvm/Target/TargetLowering.h (8 lines): - line 169: /// FIXME: The default needs to be removed once all the code is updated. - line 1051: /// FIXME: Please note that the default implementation here in terms of - line 1461: /// mode is legal for a load/store of any legal type. TODO: Handle - line 1466: /// TODO: Remove default argument - line 1475: /// TODO: Handle pre/postinc as well. - line 1476: /// TODO: Remove default argument - line 2496: /// zeroext/signext integer argument or return value. FIXME: Most C calling - line 2540: /// TODO: Consider merging with ReplaceNodeResults. cmake/modules/AddLLVM.cmake (8 lines): - line 25: # FIXME: Remove this once clang-cl supports SEH - line 89: # FIXME: Don't write the "local:" line on OpenBSD. - line 138: # FIXME: This is not safe because this will create the same target - line 243: # TODO: Enable for MinGW Windows builds too. - line 407: # FIXME: Add name_static to anywhere in TARGET ${name}'s PROPERTY. - line 719: #TODO: Remove this check in a few days once it has circulated through - line 805: # FIXME: This should depend only on the libraries Go needs. - line 861: # FIXME: "ENABLE_SHARED" doesn't make sense, since it is used just for tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp (8 lines): - line 39: // FIXME: Handle floats. - line 40: // FIXME: Handle structs. - line 313: // TODO: When the Max Complexity is reached, we should conjure a symbol - line 398: // FIXME: should rewrite according to the cast kind. - line 416: // FIXME: If we had a state here, we could see if the symbol is known to - line 473: // FIXME: Keep these here for now in case we decide soon that we - line 486: // FIXME: We should handle the case where we strip off view layers to get - line 489: // FIXME: There can be gross cases where one casts the result of a function lib/CodeGen/AsmPrinter/AsmPrinter.cpp (8 lines): - line 185: // FIXME: If we end up with a collection of these sorts of Darwin-specific - line 238: // FIXME: Don't emit DWARF debug info if there's at least one function - line 316: // FIXME: appending linkage variables should go into a section of - line 456: // TODO: This should become an "emit thread local global" method on TLOF. - line 1076: // FIXME: This is not lazy, it would be nice to only print weak references - line 1339: // FIXME: This doesn't have to have any specific name, just any randomly - line 1497: // FIXME: Only allow the 3-field form in LLVM 4.0. - line 2287: /// FIXME: privatize to AsmPrinter. tools/clang/lib/AST/VTableBuilder.cpp (8 lines): - line 253: // FIXME: This should probably use CharUnits or something. Maybe we should - line 450: // FIXME: This should be a real map and not a vector. - line 503: // FIXME: We need to check more things here. - line 1907: // FIXME: write more tests that actually use the dumpLayout output to prevent - line 2842: // FIXME: if a structor knows it belongs to MDC, why doesn't it use a vftable - line 2844: // FIXME: how are vtordisp handled in the presence of nooverride/final? - line 3195: // FIXME: Figure out how to print the real thunk type, since they can - line 3324: /// TODO: Presumably vftables use the same algorithm. tools/clang/lib/Sema/SemaAccess.cpp (8 lines): - line 338: // TODO: this is very conservative - line 351: // TODO: this is very conservative. - line 429: // TODO: we can do better than this - line 554: // FIXME: declarations with dependent or templated scope. - line 802: // FIXME: we're probably not correctly adding the - line 935: // FIXME: fail correctly when there are dependent paths. - line 1053: // TODO: it would be great to have a fixit here, since this is - line 1605: Entity.setDiag(PDiag); // TODO: avoid copy tools/clang/lib/Analysis/ScanfFormatString.cpp (8 lines): - line 74: // FIXME: Much of this is copy-paste from ParsePrintfSpecifier. - line 211: // FIXME: '%' and '*' doesn't make sense. Issue a warning. - line 212: // FIXME: 'ConsumedSoFar' and '*' doesn't make sense. - line 249: // FIXME: ssize_t. - line 290: // FIXME: Unsigned version of ptrdiff_t? - line 344: // FIXME: Mac OS X specific? - line 382: return ArgType(); // FIXME: ssize_t - line 386: return ArgType(); // FIXME: Is this a known extension? tools/clang/tools/libclang/dxcrewriteunused.cpp (8 lines): - line 263: // TODO: template support. - line 1237: // TODO: how to reuse msfPtr when ReigsterOutputStream. - line 1324: // TODO: support ExtractEntryUniforms, GlobalExternByDefault, SkipStatic, - line 1512: // TODO: remove ; for type decl. - line 1520: // TODO: remove ; for var decl. - line 1598: LPCWSTR pOutputName = nullptr; // TODO: Fill this in - line 1604: DxcOutputObject::StringOutput(DXC_OUT_HLSL, CP_UTF8, // TODO: Support DefaultTextCodePage - line 1606: DxcOutputObject::ErrorOutput(CP_UTF8, // TODO Support DefaultTextCodePage tools/clang/lib/Sema/SemaExprMember.cpp (8 lines): - line 281: // FIXME: Share logic with ExtVectorElementExpr::containsDuplicateElements, - line 282: // see FIXME there. - line 284: // FIXME: This logic can be greatly simplified by splitting it along - line 839: // FIXME: check qualified member access - line 848: // FIXME: these are somewhat meaningless - line 1034: // FIXME: diagnose the presence of template arguments now. - line 1357: // FIXME: For a c-style function nested inside an objc implementation - line 1545: // FIXME: this expr should store IsArrow. tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp (8 lines): - line 480: // FIXME: More elaborate pretty-printing. - line 750: // FIXME: This can be made more efficient. - line 784: // TODO: We could walk the complex types here and see if everything is - line 794: // FIXME: Once we implement scope handling, we will need to properly lookup - line 820: // FIXME: The fallback type here is totally bogus -- though it should - line 866: // FIXME: Once we implement scope handling, we want the parent region - line 1128: // FIXME: Handle multi-dimensional arrays. - line 1133: // FIXME: generalize to symbolic offsets. tools/clang/include/clang/AST/DeclTemplate.h (8 lines): - line 997: // FIXME: These probably don't need to be ints. int:5 for depth, int:8 for - line 1131: // FIXME: Collapse this into TemplateParamPosition; or, just move depth/index - line 1545: // FIXME: This is broken. CXXRecordDecl::getMostRecentDecl() returns a - line 1554: // FIXME: Does injected class name need to be in the redeclarations chain? - line 1749: /// FIXME: redundant with TypeAsWritten? - line 1880: // FIXME: Add Profile support! - line 2422: // TODO: Always set this when creating the new specialization? - line 2606: /// FIXME: redundant with TypeAsWritten? lib/CodeGen/BranchFolding.cpp (8 lines): - line 60: // TODO: This should be replaced with a target query. - line 355: // FIXME: This check is dubious. It's used to get around a problem where - line 479: DebugLoc dl; // FIXME: this is nowhere - line 579: // TODO: If the blocks are not adjacent, move one of them so that they are? - line 1022: DebugLoc dl; // FIXME: this is nowhere - line 1182: // TODO: Simplify preds to not branch here if possible! - line 1186: // TODO: Is it ever worth rewriting predecessors which don't already - line 1762: // instruction at the point insertion. FIXME: This is overly lib/MC/MCAssembler.cpp (8 lines): - line 60: // FIXME FIXME FIXME: There are number of places in this file where we convert - line 198: // FIXME: we should probably add a SMLoc to MCExpr. - line 368: // FIXME: It looks like gas supports some cases of the form "foo + 2". It - line 425: // FIXME: This code has some duplication with recordRelocation. We should - line 530: // FIXME: We need a way to communicate this error. - line 658: // FIXME: Embed in fragments instead? - line 678: // FIXME: This error shouldn't actually occur (the front end should emit - line 915: // FIXME: Is there a better way to do this? MCEncodedFragmentWithFixups tools/clang/lib/CodeGen/CGException.cpp (7 lines): - line 409: // FIXME: this isn't quite right! If there's a final unelided call - line 488: // TODO: Revisit exception specifications for the MS ABI. There is a way to - line 566: // TODO: Revisit exception specifications for the MS ABI. There is a way to - line 591: // FIXME: Dropping the reference type on the type into makes it - line 1545: assert(Parent && "FIXME: handle unnamed decls (lambdas, blocks) with SEH"); - line 1630: // FIXME: Remove these restrictions in the future. - line 1755: // TODO: Model unwind edges from instructions, either with iload / istore or lib/ExecutionEngine/ExecutionEngine.cpp (7 lines): - line 169: // FIXME: This is silly, we shouldn't end up with a mapping -> 0 in the - line 396: // FIXME: It is marginally lame that we just do nothing here if we see an - line 670: // FIXME long double - line 676: // FIXME long double - line 1115: /// FIXME: document - line 1139: // FIXME: Will not trap if loading a signaling NaN. - line 1264: // symbol. FIXME is this right for common? utils/hct/hcttodo.js (7 lines): - line 11: // Verifies that all TODO comments have some explanation. - line 17: // var goodToDoLine = /TODO: HLSL #[0-9]+ - [0-9a-zA-Z]+/; - line 18: var goodToDoLine = /TODO: HLSL #[0-9]+ - [0-9a-zA-Z]+/; - line 77: // Fail on any bad TODO lines. - line 79: WScript.Echo("Badly formatted TODO comments found in " + files.length + " files: " + counts); - line 81: WScript.Echo(" // TODO: HLSL #123 - description"); - line 84: WScript.Echo("No badly formatted TODO comments found in " + files.length + " files."); tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp (7 lines): - line 148: // FIXME: A callback should disable checkers at the start of functions. - line 157: // FIXME this really should be context sensitive, where we record - line 175: // FIXME: A callback should disable checkers at the start of functions. - line 188: // FIXME: A callback should disable checkers at the start of functions. - line 216: // FIXME: A callback should disable checkers at the start of functions. - line 244: // FIXME: A callback should disable checkers at the start of functions. - line 361: // FIXME: A callback should disable checkers at the start of functions. lib/Transforms/Vectorize/BBVectorize.cpp (7 lines): - line 113: // FIXME: This should default to false once pointer vector support works. - line 226: // FIXME: const correct? - line 237: // FIXME: The current implementation does not account for pairs that - line 972: // FIXME: handle addsub-type operations! - line 1512: // FIXME: The expensive part of the cycle check is not so much the cycle - line 1759: // FIXME: It may be more efficient to use a topological-ordering - line 2452: // FIXME: If we're fusing shuffle instructions, then we can't apply this unittests/IR/ConstantRangeTest.cpp (7 lines): - line 425: // TODO: ConstantRange is currently over-conservative here. - line 475: EXPECT_EQ(Full.shl(One), Full); // TODO: [0, (-1 << 0xa) + 1) - line 476: EXPECT_EQ(Full.shl(Some), Full); // TODO: [0, (-1 << 0xa) + 1) - line 484: EXPECT_EQ(One.shl(Some), Full); // TODO: [0xa << 0xa, 0) - line 485: EXPECT_EQ(One.shl(Wrap), Full); // TODO: [0xa, 0xa << 14 + 1) - line 486: EXPECT_EQ(Some.shl(Some), Full); // TODO: [0xa << 0xa, 0xfc01) - line 487: EXPECT_EQ(Some.shl(Wrap), Full); // TODO: [0xa, 0x7ff << 0x5 + 1) lib/Support/SourceMgr.cpp (7 lines): - line 193: // FIXME: Handle multibyte characters. - line 275: // FIXME: Handle multibyte characters in the source line. - line 293: // FIXME: This assertion is intended to catch unintended use of multibyte - line 310: // FIXME: Handle multibyte characters in the source line. - line 401: // FIXME: If there are multibyte or multi-column characters in the source, all - line 425: // FIXME: Find the beginning of the line properly for multibyte characters. - line 480: // FIXME: This is trying not to break up replacements, but then to re-sync lib/MC/MachObjectWriter.cpp (7 lines): - line 339: // FIXME: Should this update Data as well? Do we need OrigSymbol at all? - line 344: // FIXME: Are the prebound or indirect fields possible here? - line 354: // FIXME: Set STAB bits. - line 450: // FIXME: Revisit this when the dust settles. - line 497: // FIXME: Do not hardcode. - line 774: // FIXME: Is this machine dependent? - line 936: // FIXME: Check that offsets match computed ones. lib/MC/MCMachOStreamer.cpp (7 lines): - line 103: // FIXME: Just ignore the .file; it isn't important enough to fail the - line 197: // FIXME: Cleanup this code, these bits should be emitted based on semantic - line 327: // FIXME: Cleanup this code, these bits should be emitted based on semantic - line 333: // FIXME: This requires -dynamic. - line 356: // FIXME: This requires -dynamic. - line 362: // FIXME: 'as' enforces that this is defined and global. The manual claims - line 384: // FIXME: Darwin 'as' does appear to allow redef of a .comm by itself. tools/clang/lib/Analysis/ThreadSafetyCommon.cpp (7 lines): - line 337: D = *I; // FIXME: this does not work with multiple inheritance. - line 574: // FIXME: handle different kinds of casts. - line 617: // TODO: add alloca - line 838: // FIXME: right now we emulate params with loads; that should be fixed. - line 856: // FIXME: the entry block will hold function parameters. - line 920: // TODO: set index - line 930: // FIXME: make sure these arent' critical edges. tools/clang/lib/Sema/Sema.cpp (7 lines): - line 147: // FIXME: Isn't this redundant with the initialization above? - line 672: // FIXME: When we perform these implicit instantiations, we do not - line 696: // FIXME: This is wrong for TUKind == TU_Prefix. In that case, we need to - line 742: // FIXME: Actually complain, once we figure out how to teach the - line 950: // FIXME: It doesn't make sense to me that DiagID is an incoming argument here - line 1396: // FIXME: Magic number for max shown overloads stolen from - line 1466: // FIXME: Try this before emitting the fixit, and suppress diagnostics tools/clang/lib/AST/DeclTemplate.cpp (7 lines): - line 50: // FIXME: If a default argument contains an unexpanded parameter pack, the - line 156: // FIXME: If any of the declarations is from an AST file, we probably - line 284: // FIXME: Avoid walking the entire redeclaration chain here. - line 358: // FIXME: Avoid walking the entire redeclaration chain here. - line 990: // TODO: Unify across class, function and variable templates? - line 996: // FIXME: Avoid walking the entire redeclaration chain here. - line 1163: // TODO: The template parameters should be in DC by now. Verify. lib/IR/Instructions.cpp (7 lines): - line 103: // FIXME: we could just swap with the end of the list, then erase. However, - line 1994: // TODO: Target informations may give a more accurate answer here. - line 2148: // FIXME: Is this always true? - line 2200: // FIXME: this state can be merged with (1), but the following assert - line 2220: // FIXME: this state can be merged with (1), but the following assert - line 2232: // FIXME: this state can be merged with (2), but the following assert - line 2600: // FIXME: Check address space sizes here tools/clang/lib/Lex/PPMacroExpansion.cpp (7 lines): - line 188: // FIXME: Remove the defined-in-system-headers check. clang's limits.h - line 481: // FIXME: We lose macro args info with delayed callback. - line 858: // TODO: See if this can be generalized to angle brackets for templates - line 1085: .Case("objc_arr", LangOpts.ObjCAutoRefCount) // FIXME: REMOVE? - line 1172: // FIXME: Should this be __has_feature or __has_extension? - line 1383: // FIXME: Factor out duplication with - line 1700: // FIXME: Should we accept "-R..." flags here, or should that be handled tools/clang/include/clang/AST/Type.h (7 lines): - line 1650: // FIXME: change this to 'raw' interface type, so we can used 'interface' type - line 2287: // FIXME: this might strip inner qualifiers; okay? - line 3565: // FIXME: This predicate is a helper to QualType/Type. It needs to - line 4140: friend class ASTReader; // FIXME: ASTContext::getInjectedClassNameType is not - line 5242: // FIXME: It's really annoying that we don't have an - line 5478: // FIXME: Should we allow complex __fp16? Probably not. - line 5497: // FIXME: In C++, enum types are never integer types. lib/Analysis/LazyValueInfo.cpp (7 lines): - line 59: /// FIXME: This is basically just for bringup, this can be made a lot more rich - line 229: // FIXME: consider the case where RHS is a range [1, 0) and LHS is - line 553: // FIXME: We're currently limited to binops with a constant RHS. This should - line 585: // FIXME: check whether it has a valuerange that excludes zero? - line 880: // TODO: Handle more complex conditionals. If (v == 0 || v2 < 1) is false, we - line 949: // FIXME: this check should be moved to the beginning of the function when - line 1269: // TODO: Move this logic inside getValueAt so that it can be cached rather tools/clang/lib/AST/StmtPrinter.cpp (7 lines): - line 263: IndentLevel = IndentLevel - 1; // HLSL Change - TODO: Find the root cause of this issue. - line 461: // FIXME: Implement MS style inline asm statement printer. - line 1079: // TODO: K&R: the meaning of '\\a' is different in traditional C - line 1185: case BuiltinType::Half: break; // FIXME: suffix? - line 1348: // FIXME: Suppress printing implicit bases (like "this") - line 1938: // FIXME: Attributes - line 2341: // TODO: Print something reasonable for a TypoExpr, if necessary. lib/CodeGen/MachineLICM.cpp (7 lines): - line 264: /// FIXME: Figure out a way to consider 'RegSeen' from all code paths. - line 478: // FIXME: For now, avoid instructions with multiple defs, unless - line 500: // operands. FIXME: Consider unfold load folding instructions. - line 535: // FIXME: That means a reload that're reused in successor block(s) will not - line 812: // FIXME: Come up with a proper cost model that estimates whether sinking - line 889: // FIXME: It seems bad to use RegSeen only for some of these calculations. - line 1174: // FIXME: If there are long latency loop-invariant instructions inside the tools/clang/lib/SPIRV/InitListHandler.cpp (7 lines): - line 181: // TODO: handle (unlikely) extra large array size? - line 185: // TODO: It will generate lots of elements if the array size is very large. - line 308: // TODO: use OpConstantComposite when all components are constants - line 354: // TODO: use OpConstantComposite when all components are constants - line 396: // TODO: use OpConstantComposite when all components are constants - line 429: // TODO: handle (unlikely) extra large array size? - line 436: // TODO: use OpConstantComposite when all components are constants lib/Analysis/BasicAliasAnalysis.cpp (7 lines): - line 316: // TODO: Get a DominatorTree and AssumptionCache and use them here - line 461: // FIXME: This should really be shrink_to_inline_capacity_and_clear(). - line 646: // FIXME: This code is duplicated with MemoryLocation and should be hoisted to - line 741: // FIXME: Handle memset_pattern4 and memset_pattern8 also. - line 943: // FIXME: This really doesn't make any sense. We get a dominator tree below - line 1149: // TODO: Returning PartialAlias instead of MayAlias is a mild hack; the - line 1387: // FIXME: This isn't aggressively handling alias(GEP, PHI) for example: if the tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h (7 lines): - line 542: // TODO: defer actual comparison to LiteralT - line 1345: // TODO: implement CFG comparisons - line 1409: // TODO: implement CFG comparisons - line 1461: // TODO: implement CFG comparisons - line 1653: // TODO: implement CFG comparisons - line 1708: // TODO: set entry and exit! - line 1768: // TODO: implement CFG comparisons tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp (7 lines): - line 610: // FIXME: We don't handle constructors or destructors for arrays properly. - line 617: // FIXME: This is a hack. We don't use the correct region for a new - line 640: // FIXME: This is a hack. We don't handle temporary destructors - line 659: // FIXME: We don't handle constructors or destructors for arrays properly. - line 745: // FIXME: Do not inline variadic calls. - line 812: // FIXME: Remove this once temp destructors are working. - line 845: // FIXME: this checks both static and dynamic properties of the call, which tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp (7 lines): - line 177: // FIXME: might want to have a more precise type in the non-virtual - line 767: // FIXME: Implement for other architectures. - line 829: // FIXME: Provide a source location here even though there's no - line 1114: // FIXME: it doesn't look right that we SExt in GetVirtualBaseClassOffset() - line 1193: // TODO: 'for base' flag - line 1314: // FIXME: Update the code that emits this adjustment in thunks prologues. - line 3886: // FIXME: Figure out how bits 2 or 8 can get set. lib/CodeGen/CodeGenPrepare.cpp (7 lines): - line 556: // TODO: We might want to insert a new base object relocate and gep off - line 593: // A duplicate relocate call. TODO: coalesce duplicates. - line 952: // FIXME: always querying the result type is just an - line 1424: // TODO: Target hook to pick which address space the intrinsic cares - line 2745: // TODO: We can handle "Or Val, Imm" iff this OR is equivalent to an ADD. - line 3859: // FIXME: This should use the same heuristics as IfConversion to determine - line 4658: /// FIXME: Remove the (equivalent?) implementation in SelectionDAG. tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h (7 lines): - line 306: // FIXME: Remove when we migrate over to just using SValBuilder. - line 311: // FIXME: Remove when we migrate over to just using ValueManager. - line 510: // FIXME: 'tag' should be removed, and a LocationContext should be used - line 512: // FIXME: Comment on the meaning of the arguments, when 'St' may not - line 525: // FIXME: 'tag' should be removed, and a LocationContext should be used - line 555: // FIXME: 'tag' should be removed, and a LocationContext should be used - line 607: // FIXME: This does not use the nice trait macros because it must be accessible tools/clang/lib/Basic/VirtualFileSystem.cpp (7 lines): - line 128: // FIXME: This is terrible, we need this for ::close. - line 191: g_RealFileSystem.Retain(); // never let go - TODO: guard against refcount wraparound - line 250: // FIXME: handle symlinks that cross file systems - line 261: // FIXME: handle symlinks that cross file systems - line 677: // FIXME: this is only for directories, what about files? - line 907: // FIXME: handle .. - line 966: if (!F) // FIXME: errc::not_a_file? tools/clang/lib/AST/DeclCXX.cpp (6 lines): - line 106: // FIXME: DelayTypeCreation seems like such a hack - line 177: // FIXME: Standard ref? - line 453: // FIXME: Standard ref? - line 569: // FIXME: We use the 'unsafe' accessor for the access specifier here, - line 1833: // FIXME: other qualifiers? - line 2057: // FIXME: Preserve the aliased namespace as written. tools/clang/lib/Parse/ParseStmtAsm.cpp (6 lines): - line 148: // FIXME: This isn't right if .macro is involved (but hopefully, no - line 162: // FIXME: Assert the answer is sane once we handle .macro correctly. - line 536: // FIXME: init MCOptions from sanitizer flags here. - line 593: // FIXME: We should be passing source locations for better diagnostics. - line 639: // FIXME: Once GCC supports _Atomic, check whether it permits it here. - line 754: // FIXME: Avoid unnecessary std::string trashing. tools/clang/lib/Format/UnwrappedLineFormatter.cpp (6 lines): - line 188: // FIXME: TheLine->Level != 0 might or might not be the right check to do. - line 324: // FIXME: If an option to allow short exception handling clauses on a single - line 346: // FIXME: Consider an option to allow short exception handling clauses on - line 348: // FIXME: This isn't covered by tests. - line 349: // FIXME: For catch, __except, __finally the first token on the line - line 728: // FIXME: Add diagnostic? utils/TableGen/FixedLenDecoderEmitter.cpp (6 lines): - line 702: // FIXME: We may be able to use the NumToSkip values to recover - line 1082: // FIXME: emitDecoder() function can take a buffer directly rather than - line 1186: // FIXME: emitPredicateMatch() functions can take a buffer directly rather - line 1691: // FIXME: We'll need to have a way to manually override this as needed. - line 1845: // FIXME: For complex operands with custom decoders we can't handle tied - line 1889: // FIXME: This need to be extended to handle instructions with custom tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h (6 lines): - line 328: /// FIXME: Document the requirements this imposes on matcher - line 674: /// FIXME: Add other ways to convert... - line 742: /// FIXME: Find a better name. - line 755: /// FIXME: Currently we only allow Stmt and Decl nodes to start a traversal. - line 829: // FIXME: Implement support for BindKind. - line 1536: // FIXME: unify ClassTemplateSpecializationDecl and TemplateSpecializationType's tools/clang/lib/AST/ASTDumper.cpp (6 lines): - line 332: // FIXME: Exception specification. - line 333: // FIXME: Consumed parameters. - line 364: // FIXME: AttrKind - line 413: // FIXME: ElaboratedType, DependentNameType, - line 1380: // FIXME: The redecls() range sometimes has elements of a less-specific - line 1430: // FIXME: We don't add a declaration of a function template specialization tools/clang/lib/StaticAnalyzer/Core/Store.cpp (6 lines): - line 71: // FIXME: We may need different solutions, depending on the symbol - line 119: // FIXME: Need to handle arbitrary downcasts. - line 149: // FIXME: Handle symbolic raw offsets. - line 406: // FIXME: What we should return is the field offset. For example, - line 431: // FIXME: For absolute pointer addresses, we just return that value back as - line 468: // FIXME: This is a somewhat arbitrary restriction. We should be using tools/clang/include/clang/Lex/Preprocessor.h (6 lines): - line 198: /// FIXME: Make sure the lifetime of Identifiers/Selectors *isn't* tied to - line 397: // FIXME: Find a spare bit on IdentifierInfo and store a - line 460: // FIXME: Incorporate module macros into the result of this. - line 530: // FIXME: CounterValue? - line 531: // FIXME: PragmaPushMacroInfo? - line 829: // FIXME: Compute the set of active module macros at the specified location. lib/CodeGen/GlobalMerge.cpp (6 lines): - line 89: // FIXME: This is only useful as a last-resort way to disable the pass. - line 109: // FIXME: this could be a transitional option, and we probably need to remove - line 120: // FIXME: Infer the maximum possible offset depending on the actual users - line 129: /// FIXME: This could learn about optsize, and be used in the cost model. - line 191: // FIXME: Find better heuristics - line 246: // FIXME: Grouping uses by function is way too aggressive, so we should have lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp (6 lines): - line 428: // FIXME: Should we just use 'normal' FP_EXTEND / FP_TRUNC instead of special - line 1420: // FIXME: This generated code sucks. We want to generate - line 1484: // PPC (the libcall is not available). FIXME: Do this in a less hacky way. - line 1505: // PPC (the libcall is not available). FIXME: Do this in a less hacky way. - line 1513: // FIXME: generated code sucks. - line 1814: // FIXME We might be able to do the conversion during compilation and get rid tools/clang/lib/Sema/SemaExceptionSpec.cpp (6 lines): - line 282: // FIXME: We can't just take the expression from the old prototype. It - line 342: // FIXME: This will get more complicated with C++0x - line 582: // FIXME: As usual, we could be more specific in our error messages, but - line 804: // FIXME: If there is a nested dependent exception specification, we should - line 1091: // FIXME: We should handle StmtExpr, but that opens a MASSIVE can of worms. - line 1137: // FIXME: Can any of the above throw? If so, when? lib/Transforms/Instrumentation/SafeStack.cpp (6 lines): - line 127: // FIXME: add support for memset and memcpy intrinsics. - line 134: // FIXME: a more precise solution would require an interprocedural - line 323: // FIXME: On some platforms this could be handled by the longjmp/exception - line 368: // FIXME: use a dedicated register for it ? - line 433: // FIXME: no need to update BasePointer in leaf functions. - line 587: // FIXME: a better alternative might be to store the unsafe stack pointer lib/Support/APFloat.cpp (6 lines): - line 32: /// TODO: If clang source code is ever allowed to use constexpr in its own - line 73: FIXME: While this approximation is equivalent to what GCC uses for - line 2320: /* FIXME: should this just take a const APInt reference? */ - line 3519: // FIXME: this probably shouldn't use 'round half up'. - line 3597: // FIXME: Using a formula based purely on the precision is conservative; - line 3672: // TODO: don't do more precise calculations above than are required. lib/CodeGen/Passes.cpp (6 lines): - line 401: // TODO: add a pass insertion point here - line 493: /// TODO: We could use a single addPre/Post(ID) hook to allow pass injection - line 691: /// FIXME: When MachinePassRegistry register pass IDs instead of function ptrs, - line 731: // FIXME: Once TwoAddressInstruction pass no longer uses kill flags, - line 762: // FIXME: Re-enable coloring with register when it's capable of adding - line 768: // FIXME: can this move into MachineLateOptimization? tools/clang/lib/Format/Format.cpp (6 lines): - line 679: // FIXME: Investigate what token type gives the correct operator priority. - line 1071: // FIXME: This miscounts tok:unknown tokens that are not just - line 1115: // FIXME: Add a more explicit test. - line 1132: // FIXME: Add the trimmed whitespace to Column. - line 1160: // FIXME: ColumnWidth actually depends on the start column, we need to - line 1167: // FIXME: ColumnWidth actually depends on the start column, we need to tools/clang/lib/Sema/SemaObjCProperty.cpp (6 lines): - line 2113: /// appropriate lookup tables. FIXME: Should reconsider if adding synthesized - line 2151: // FIXME: The synthesized property we set here is misleading. We almost always - line 2189: // FIXME: Eventually this shouldn't be needed, as the lexical context - line 2265: // FIXME: Eventually this shouldn't be needed, as the lexical context - line 2317: // FIXME: Improve the reported location. - line 2483: // FIXME: Implement warning dependent on NSCopying being tools/clang/tools/libclang/CXLoadedDiagnostic.cpp (6 lines): - line 72: // FIXME: Fail more softly if the diagnostic level is unknown? - line 115: // FIXME: possibly refactor with logic in CXStoredDiagnostic. - line 325: // FIXME: Why do we care about long strings? - line 333: // FIXME: Why do we care about long strings? - line 343: // FIXME: Why do we care about long strings? - line 369: // FIXME: Why do we care about long strings? tools/clang/lib/Analysis/PrintfFormatString.cpp (6 lines): - line 128: // FIXME: POSIX specific. Always accept? - line 426: // FIXME: How to get the corresponding signed version of size_t? - line 466: // FIXME: How to get the corresponding unsigned - line 497: return ArgType(); // FIXME: ssize_t - line 501: return ArgType(); // FIXME: Is this a known extension? - line 546: // FIXME: Handle other cases. tools/clang/include/clang/AST/TypeLoc.h (6 lines): - line 1532: // FIXME: size expression and attribute locations (or keyword if we - line 1539: // FIXME: size expression and attribute locations. - line 1545: // FIXME: attribute locations. - line 1553: // FIXME: location of the '_Complex' keyword. - line 1645: // FIXME: location of the 'decltype' and parens. - line 1654: // FIXME: While there's only one unary transform right now, future ones may tools/clang/lib/Lex/Preprocessor.cpp (6 lines): - line 270: // FIXME: List information for all submodules. - line 300: // FIXME: Include sizes from all submodules, and include MacroInfo sizes, - line 675: // FIXME: This warning is disabled in cases where it shouldn't be, like - line 692: // FIXME: This warning is disabled in cases where it shouldn't be, - line 798: // FIXME: Include the path in the diagnostic. - line 799: // FIXME: Include the import location for the conflicting module. lib/DxrFallback/StateFunctionTransform.cpp (6 lines): - line 754: // TODO only create the values that are actually needed - line 856: // TODO: We need to set indices of the uses of the gep, not the gep itself - line 1103: // TODO: Need to some analysis to figure this out. We can put the alloca on - line 1205: // TODO: Until we have callable shaders we should not get here except - line 1326: // TODO: Use a single function for both constant and dynamic offsets? Could do - line 1433: // TODO: If offsetVal is a constant we could just create constants instead of add instructions lib/CodeGen/AsmPrinter/DwarfDebug.cpp (6 lines): - line 146: // FIXME: isBlockByrefVariable should be reformulated in terms of complex - line 277: // TODO: Determine whether or not we should add names for programs - line 486: // FIXME: Consider the time-space tradeoff of just storing the unit pointer - line 576: // FIXME: We should use ranges allow reordering of code ala - line 1202: // FIXME: This wouldn't be true in LTO with a -g (with inlining) CU followed - line 1504: // FIXME: ^ tools/clang/tools/driver/cc1as_main.cpp (6 lines): - line 319: // FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and - line 324: // FIXME: Assembler behavior can change with -static. - line 358: // FIXME: There is a bit of code duplication with addPassesToEmitFile. - line 397: // FIXME: init MCTargetOptions from sanitizer flags here. - line 471: // FIXME: Use a better -version message? - line 479: // FIXME: Remove this, one day. tools/clang/lib/Parse/ParseCXXInlineMethods.cpp (6 lines): - line 854: // FIXME: We should be able to perform code-completion here even if - line 871: // FIXME: Count angle brackets, and clear MightBeTemplateArgument - line 906: // FIXME: If we support lambdas here, we'll need to set StopAtSemi to false - line 939: // FIXME: Disambiguate these cases. Note that the latter case is probably - line 1099: // FIXME: A '<' can only start a template-id if it's preceded by an - line 1131: // FIXME: Support all forms of 'template' unqualified-id '<'. tools/clang/lib/Format/ContinuationIndenter.cpp (6 lines): - line 459: // FIXME: This is hacky, find a better way. The problem is that in an ObjC - line 752: // FIXME: This is ugly, find a better way. - line 890: // FIXME: We likely want to do this for more combinations of brackets. - line 1009: // FIXME: String literal breaking is currently disabled for Java and JS, as - line 1031: // FIXME: Handle whitespace between '_T', '(', '"..."', and ')'. - line 1032: // FIXME: Store Prefix and Suffix (or PrefixLength and SuffixLength to tools/clang/unittests/HLSL/Objects.cpp (6 lines): - line 359: // TODO: ByteAddressBuffer is supported on SM4 on compute shaders - line 360: // TODO: RWByteAddressBuffer is supported on SM4 on compute shaders - line 361: // TODO: RWStructuredBuffer is supported on SM4 on compute shaders - line 628: // TODO: log this out - line 988: // TODO: complete the assignment cases with primitive types - line 1029: // TODO: force type promotion to occur for arguments. tools/clang/unittests/SPIRV/CodeGenSpirvTest.cpp (6 lines): - line 1743: // TODO: fix the different type error for OpStore - line 2643: // TODO: Re-enable spirv-val once issue#3006 is fixed. - line 2654: // TODO: Re-enable spirv-val once issue#3006 is fixed. - line 2701: // TODO: Re-enable spirv-val once issue#3006 is fixed. - line 2706: // TODO: Re-enable spirv-val once issue#3006 is fixed. - line 2756: // TODO: Re-enable spirv-val once issue#3006 is fixed. lib/Support/TargetParser.cpp (6 lines): - line 27: // FIXME: TableGen this. - line 65: // FIXME: SubArch values were simplified to fit into the expectations - line 68: // FIXME: TableGen this. - line 113: // FIXME: TableGen this. - line 137: // FIXME: TableGen this. - line 400: // FIXME: Clang uses it, but it's bogus, since neon defaults to vfpv3. lib/HLSL/DxilGenerationPass.cpp (6 lines): - line 44: // TODO: use hlsl namespace for the most of this file. - line 235: // TODO: BUG: This will lower patch constant function sigs twice if - line 561: // TODO: how to get col? - line 579: // TODO: add debug info. - line 713: // TODO: If not inline every function, for function has call site with precise - line 718: // TODO: If all functions have been inlined, and unreferenced functions removed, tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp (6 lines): - line 321: // FIXME: We should have a more generalized location printing mechanism. - line 503: // FIXME: Handle CXXThisRegion as well. (This is not a priority because - line 851: // FIXME: This does not handle other kinds of null references, - line 1189: // FIXME: Assuming that BugReporter is a GRBugReporter is a layering - line 1415: // FIXME: If there's already a constraint tracker for this variable, - line 1500: // FIXME: Copied from ExprEngineCallAndReturn.cpp. tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp (6 lines): - line 121: // TODO: Check if using other data structures would be more optimal. - line 202: // TODO: Currently, we might lose precision here: we always mark a return - line 381: // TODO: Add support for vfscanf & family. - line 484: // TODO: So far we are just going one level down; ideally we'd need to - line 670: // TODO: It might make sense to run this check on demand. In some cases, - line 696: // TODO: Should this check be a part of the CString checker? lib/CodeGen/AsmPrinter/DIEHash.cpp (6 lines): - line 51: // FIXME: The LEB128 routines are copied and only slightly modified out of - line 235: // FIXME: This seems overly restrictive, and causes hash mismatches - line 352: // FIXME: It's uncertain whether or not we should handle this at the moment. - line 420: // FIXME: Add the extended attributes. - line 481: // FIXME: If we figure out how to account for linkage in some way we could - line 507: // TODO: Initialize the type chain at 0 instead of 1 for CU signatures. lib/CodeGen/MIRParser/MIRParser.cpp (6 lines): - line 257: // TODO: Recreate the machine function. - line 321: // TODO: Report an error when adding the same successor more than once. - line 362: // TODO: Report an error when the same virtual register with the same ID is - line 396: // TODO: Store the mapping between fixed object IDs and object indices to - line 411: // TODO: Store the mapping between object IDs and object indices to parse - line 428: // TODO: Translate any source ranges as well. utils/hct/hctdb_instrhelp.py (6 lines): - line 209: print("// TODO: add correct include directives") - line 210: print("// TODO: add accessors with values") - line 211: print("// TODO: add validation support code, including calling into right fn") - line 212: print("// TODO: add type hierarchy") - line 261: # TODO - check operand types - line 678: #TODO: remove code which dependent on g_MaxIntrinsic*. tools/clang/lib/Sema/SemaAttr.cpp (6 lines): - line 136: // FIXME: We should merge AddAlignmentAttributesForRecord with - line 154: // FIXME: This is not true on Darwin/PPC. - line 228: // FIXME: This should come from the target. - line 258: // FIXME: Warn about popping named records as MSVC does. - line 280: // FIXME: Serialize this. - line 299: // FIXME: Serialize this. tools/clang/lib/Basic/OpenMPKinds.cpp (6 lines): - line 361: DKind == OMPD_parallel_for_simd; // TODO add next directives. - line 369: DKind == OMPD_parallel_sections; // TODO add next directives. - line 375: DKind == OMPD_parallel_sections; // TODO add next directives. - line 379: return DKind == OMPD_teams; // TODO add next directives. - line 384: DKind == OMPD_parallel_for_simd; // TODO add next directives. - line 390: Kind == OMPC_reduction; // TODO add next clauses like 'reduction'. lib/CodeGen/RegisterPressure.cpp (6 lines): - line 186: /// TODO: Add support for pressure without LiveIntervals. - line 321: /// FIXME: always ignore tied opers - line 513: // TODO: consider earlyclobbers? - line 674: /// FIXME: comparing each element of the old and new MaxPressure vectors here is - line 777: // FIXME: The snapshot heap space should persist. But I'm planning to - line 937: // FIXME: allow the caller to pass in the list of vreg uses that remain tools/clang/unittests/HLSL/ShaderOpTest.cpp (5 lines): - line 507: GDesc.SampleDesc.Count = 1; // TODO: read from file, set from shader operation; also apply to count - line 508: GDesc.RasterizerState = CD3DX12_RASTERIZER_DESC(D3D12_DEFAULT); // TODO: read from file, set from op - line 509: GDesc.BlendState = CD3DX12_BLEND_DESC(D3D12_DEFAULT); // TODO: read from file, set from op - line 511: // TODO: pending values to set - line 919: // TODO: set all of this from m_pShaderOp. tools/clang/include/clang/Driver/Driver.h (5 lines): - line 21: #include "llvm/Support/Path.h" // FIXME: Kill when CompilationInfo - line 76: // FIXME: Privatize once interface is stable. - line 96: /// FIXME: This type of customization should be removed in favor of the - line 338: // FIXME: This should be in CompilationInfo. - line 346: // FIXME: This should be in CompilationInfo. utils/TableGen/DAGISelMatcherEmitter.cpp (5 lines): - line 364: "FIXME: Add support for CheckType of resno != 0"); - line 628: // FIXME: Annoyingly, these are stored by name, which we never even emit. Yay? - line 654: // FIXME: This should be const. - line 695: // FIXME: This should be const. - line 701: // FIXME: The node xform could take SDValue's instead of SDNode*'s. lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp (5 lines): - line 228: // FIXME: Should be ok if they addresses are identical. But earlier - line 318: // FIXME: Multiply by 2 because we may clone nodes during scheduling. - line 472: // FIXME: See ScheduleDAGSDNodes::EmitCopyFromReg. For now, scheduler - line 645: // FIXME: need target specific adjustment here? - line 891: // Add trailing DbgValue's before the terminator. FIXME: May want to add lib/Transforms/Scalar/Reassociate.cpp (5 lines): - line 449: // TODO: Reduce the weight by exploiting nsw/nuw? - line 464: // TODO: Reduce the weight by exploiting nsw/nuw? (Could do much better than - line 650: #if 0 // TODO: Re-enable once PR13021 is fixed. - line 1740: // FIXME: Have Ops be (ValueEntry, Multiplicity) pairs, simplifying this. - line 2080: // TODO: We should optimize vector Xor instructions, but they are tools/clang/include/clang/AST/ExprCXX.h (5 lines): - line 146: /// FIXME: Returns 0 for member pointer call exprs. - line 2315: // FIXME: Allocate this data after the OverloadExpr subclass. - line 2981: /// FIXME: This member, along with the QualifierLoc, could - line 2989: /// FIXME: could also be a template-id - line 3794: // FIXME: This is not necessarily correct for a temporary materialized utils/lit/lit/TestRunner.py (5 lines): - line 133: # FIXME: Actually, this is probably an instance of PR6753. - line 153: # FIXME: This is slow, but so is deadlock. - line 204: # FIXME: There is probably still deadlock potential here. Yawn. - line 330: # FIXME: Running valgrind on sh is overkill. We probably could just - line 404: # FIXME: This should not be here? tools/clang/tools/dxcompiler/dxcdisassembler.cpp (5 lines): - line 293: // TODO: Print all the data in DxilSignature. - line 387: // TODO: add vector size. - line 1238: // TODO: annotate high-level operations where possible as well - line 1255: // TODO: if an argument references a resource, look it up and write the - line 1707: // TODO: Print the rest of the RDAT info lib/Transforms/IPO/PassManagerBuilder.cpp (5 lines): - line 352: // FIXME: The BarrierNoopPass is a HACK! The inliner pass above implicitly - line 560: // FIXME: This is a HACK! The inliner pass above implicitly creates a CGSCC - line 582: // FIXME: Because of #pragma vectorize enable, the passes below are always - line 653: // FIXME: We shouldn't bother with this anymore. - line 817: // FIXME: this is profitable (for compiler time) to do at -O0 too, but tools/clang/lib/Driver/ToolChain.cpp (5 lines): - line 247: // FIXME: 'single' is only supported on ARM so far. - line 283: // FIXME: older versions of ld64 expect the "arm64" component in the actual - line 293: // FIXME: Factor into subclasses. - line 307: // FIXME: Thumb should just be another -target-feaure, not in the triple. - line 322: // FIXME: this is invalid for WindowsCE lib/Analysis/MemoryBuiltins.cpp (5 lines): - line 52: // FIXME: certain users need more information. E.g., SimplifyLibCalls needs to - line 70: // TODO: Handle "int posix_memalign(void **, size_t, size_t)" - line 329: // FIXME: workaround for PR5130, this will be obsolete when a nobuiltin - line 496: // TODO: handle more standard functions (+ wchar cousins): - line 696: // TODO: handle more standard functions (+ wchar cousins): utils/TableGen/X86RecognizableInstr.cpp (5 lines): - line 237: // FIXME: Is there some better way to check for In64BitMode? - line 620: // FIXME: In AVX, the register below becomes the one encoded - line 642: // FIXME: In AVX, the register below becomes the one encoded - line 666: // FIXME: In AVX, the register below becomes the one encoded - line 699: // FIXME: In AVX, the register below becomes the one encoded tools/clang/lib/Index/USRGeneration.cpp (5 lines): - line 362: // FIXME: We should be able to generate this USR even if the - line 384: // FIXME: We should be able to generate this USR even if the - line 717: // FIXME: Encode the qualifier, don't just print it. - line 782: // FIXME: Visit dependent template names. - line 805: // FIXME: Visit expressions. utils/lint/cpp_lint.py (5 lines): - line 6: # TODO: add unittests for the verifier functions: - line 35: # TODO: implement private headers - line 36: # TODO: implement gtest headers - line 37: # TODO: implement top-level llvm/* headers - line 38: # TODO: implement llvm/Support/* headers lib/CodeGen/LiveIntervalAnalysis.cpp (5 lines): - line 915: // FIXME: UpdateFlags is a workaround that creates live intervals for all - line 1276: // FIXME: This doesn't currently handle early-clobber or multiple removed - line 1296: // FIXME: This could be more efficient if there was a - line 1330: // FIXME: This should probably be handled outside of this branch, - line 1383: // FIXME: Should we support undefs that gain defs? tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h (5 lines): - line 508: // FIXME: We can possibly optimize this later to cache this value. - line 562: // TODO: We might want to return a different type here (ex: id (*ty)(...)) - line 882: // FIXME: We can cache this if needed. - line 937: // FIXME: We can cache this if needed. - line 999: // FIXME: Eventually support symbolic offsets. include/llvm/Analysis/TargetTransformInfo.h (5 lines): - line 88: // FIXME: We should probably in some way ensure that the subtarget - line 214: /// FIXME: It's not clear that this is a good or useful query API. Client's - line 306: /// TODO: Handle pre/postinc as well. - line 323: /// TODO: Handle pre/postinc as well. - line 885: /// FIXME: Should we really use std::function? It's relatively inefficient. tools/clang/lib/Sema/AnalysisBasedWarnings.cpp (5 lines): - line 373: // TODO: Verify this is correct. - line 718: // uninitialized'. FIXME: Can this happen? - line 1251: // FIXME: Should we use a common classification enum and the same set of - line 1893: // FIXME: This isn't the right factoring. This is here for initial - line 1940: // FIXME: We should be able to assert that block is non-null, but lib/MC/MCELFStreamer.cpp (5 lines): - line 278: // TODO: Emit these as a common symbol. - line 339: // FIXME: Should this be caught and done earlier? - line 585: // TODO: drop the lock state and set directly in the fragment - line 612: // FIXME: Use BundleGroups to track the lock state instead. - line 615: // FIXME: Use more separate fragments for nested groups. lib/MC/MCObjectFileInfo.cpp (5 lines): - line 79: // TODO: Verify datarel below. - line 334: // FIXME: The N64 ABI probably ought to use DW_EH_PE_sdata8 but we can't - line 458: // FIXME: We're emitting LSDA info into a readonly section on ELF, even though - line 573: // FIXME: We're emitting LSDA info into a readonly section on COFF, even - line 771: // FIXME: Checking for Arch here to filter out bogus triples such as tools/clang/include/clang/AST/DeclBase.h (5 lines): - line 1080: // FIXME: Remove this from the interface - line 1143: /// context. FIXME: We could probably cache this value somewhere - line 1449: // TODO: Add reference and pointer typedefs (with some appropriate proxy - line 1526: // TODO: Add reference and pointer typedefs (with some appropriate proxy - line 1634: /// FIXME: This is very inefficient; replace uses of it with uses of tools/clang/include/clang/Frontend/ASTUnit.h (5 lines): - line 128: // FIXME: This is temporary; eventually, CIndex will always do this. - line 149: // FIXME: This is just an optimization hack to avoid deserializing large parts - line 820: // FIXME: Move OnlyLocalDecls, UseBumpAllocator to setters on the ASTUnit, we - line 851: // FIXME: Move OnlyLocalDecls, UseBumpAllocator to setters on the ASTUnit, we - line 894: /// FIXME: The Diag, LangOpts, SourceMgr, FileMgr, StoredDiagnostics, and lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (5 lines): - line 330: // FIXME there is no actual debug info here - line 1595: // FIXME: If Amt is zero, the following shift generates an undefined result - line 1639: // them. TODO: Teach operation legalization how to expand unsupported - line 2679: // FIXME: This generated code sucks. - line 2982: // FIXME: Avoid the extend by constructing the right constant pool? lib/Transforms/Scalar/NaryReassociate.cpp (5 lines): - line 72: // Limitations and TODO items: - line 292: // FIXME: extract this method into TTI->getGEPCost. - line 357: // TODO: ComputeSignBits is expensive. Consider caching the results. - line 368: // TODO: handle the negative case as well. - line 459: // TODO: bail out on this case for now. We could emit uglygep. tools/clang/include/clang/Sema/TemplateDeduction.h (5 lines): - line 154: /// FIXME: Finish documenting this. - line 166: /// FIXME: This should be kept internal to SemaTemplateDeduction. - line 224: /// TODO: In the future, we may need to unify/generalize this with - line 245: /// TODO: In the future, we may need to unify/generalize this with - line 264: /// TODO: This may be unnecessary. tools/clang/unittests/HLSL/ValidationTest.cpp (5 lines): - line 138: // TODO: enable this. - line 993: // TODO: enable this after support pass thru hull shader. - line 1652: // TODO: enable this. - line 3311: }// TODO: reject non-zero padding - line 3333: // TODO: Unable to lower stream append, since it's used in a non-GS function. tools/clang/lib/Tooling/Core/Replacement.cpp (5 lines): - line 61: // FIXME: Use SM.translateFile directly. - line 66: // FIXME: We cannot check whether Offset + Length is in the file, as - line 129: // FIXME: This should go into the Lexer, but we need to figure out how - line 167: // FIXME: Remove this function when Replacements is implemented as std::vector - line 250: // FIXME: Remove this function when Replacements is implemented as std::vector lib/DebugInfo/DWARF/DWARFFormValue.cpp (5 lines): - line 28: // FIXME: Support DWARF64. - line 218: // FIXME: This is 64-bit for DWARF64. - line 349: // FIXME: 4 for DWARF32, 8 for DWARF64. - line 504: // FIXME: Add support for DW_FORM_GNU_strp_alt - line 547: // FIXME: Add proper support for DW_FORM_ref_sig8 and DW_FORM_GNU_ref_alt. lib/HLSL/HLModule.cpp (5 lines): - line 81: // Pin LLVM dump methods. TODO: make debug-only. - line 305: // TODO: do m_TGSMVariables and m_StreamOutputs need maintenance? - line 559: name == kHLDxilFunctionPropertiesMDName || // TODO: adjust to proper name - line 919: // TODO: Don't check names. - line 1180: // TODO: Only do this on basic types. tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp (5 lines): - line 263: // FIXME: Because we don't correctly model (yet) sign-extension - line 313: // FIXME: This should probably be part of SValBuilder. - line 320: // FIXME: This should be using ValueManager::ArrayindexTy...somehow. - line 514: // FIXME: We don't really want to use getBaseRegion() here because pointer - line 537: // TODO: should be rewritten using SymExpr::symbol_iterator. lib/Transforms/Scalar/LoopIdiomRecognize.cpp (5 lines): - line 16: // TODO List: - line 755: // TODO: Could also handle negative stride here someday, that will require - line 817: // TODO: Could also handle negative stride here someday, that will require the - line 845: // TODO: For this to be really effective, we have to dive into the pointer - line 886: // TODO: If CI is larger than 16-bytes, we can try slicing it in half to see tools/clang/lib/CodeGen/CGStmt.cpp (5 lines): - line 658: // FIXME: Should this really start with a size of 1? - line 703: // FIXME: In the future I will modifiy the behavior of the metadata - line 733: // FIXME: This condition is never false. Should it be an assert? - line 1132: // FIXME: Clean this up by using an LValue for ReturnTemp, - line 1266: // FIXME: parameters such as this should not be hardcoded. tools/clang/lib/Parse/ParseInit.cpp (5 lines): - line 88: // FIXME: If we didn't skip any inits, parse the lambda from here - line 246: // FIXME: potentially-potentially evaluated expression above? - line 306: // FIXME: We also need to tell Sema that we're in a - line 464: // FIXME: This comment doesn't sound right. If there is a r_brace - line 476: // TODO: save comma locations if some client cares. tools/clang/lib/CodeGen/CodeGenFunction.h (5 lines): - line 95: /// TODO: should vectors maybe be split out into their own thing? - line 1004: // FIXME: Maybe this could be a stack of maps that is pushed/popped as we - line 1715: // FIXME: We should be able to get rid of this method and use the va_arg - line 1747: // FIXME: Every place that calls LoadCXXVTT is something - line 1786: /// FIXME: VTTs are Itanium ABI-specific, so the definition should move include/llvm/IR/DataLayout.h (5 lines): - line 56: // FIXME: Currently the DataLayout string carries a "preferred alignment" - line 312: /// FIXME: The defaults need to be removed once all of - line 317: /// FIXME: The defaults need to be removed once all of - line 322: /// FIXME: The defaults need to be removed once all of - line 327: /// FIXME: The defaults need to be removed once all of tools/clang/lib/CodeGen/CodeGenTypes.cpp (5 lines): - line 61: // FIXME: We should not have to check for a null decl context here. - line 68: // FIXME: We should not have to check for a null decl context here. - line 520: "FIXME: We only handle trivial array types so far!"); - line 529: "FIXME: We only handle trivial array types so far!"); - line 768: // FIXME: This is hugely overconservative. tools/clang/lib/AST/ASTDiagnostic.cpp (5 lines): - line 134: // FIXME: Handle other pointer-like types. - line 188: // FIXME: Playing with std::string is really slow. - line 226: // TODO: Handle ak_declcontext case. - line 366: // FIXME: Get the strings for DeclContext from some localized place - line 1538: // TODO: merge this with other aka printing above. lib/CodeGen/TargetLoweringBase.cpp (5 lines): - line 431: // FIXME: What about other targets? - line 1060: // FIXME: We don't support non-power-of-2-sized vectors for now. Ideally we - line 1435: // FIXME: We don't support non-power-of-2-sized vectors for now. Ideally we - line 1476: /// TODO: Move this out of TargetLowering.cpp. - line 1494: // FIXME: C calling convention requires the return type to be promoted to lib/Support/MemoryBuffer.cpp (4 lines): - line 133: // TODO: Is 16-byte alignment enough? We copy small object files with large - line 298: // FIXME: this chunk of code is duplicated, but it avoids a fstat when - line 322: // FIXME: We should reorganize again getPageSize() on Win32. - line 427: // FIXME: That isn't necessarily true, we should try to mmap stdin and tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp (4 lines): - line 61: // FIXME: Eventually this logic should actually do dispatches to - line 110: // FIXME: The proper thing to do is to really iterate over the - line 131: // FIXME: Eventually all pre- and post-checks should live in VisitStmt. - line 172: // FIXME: This ignores many potential bugs (). tools/clang/lib/CodeGen/CGDeclCXX.cpp (4 lines): - line 70: // FIXME: __attribute__((cleanup)) ? - line 337: // FIXME: Should we support init_priority for thread_local? - line 338: // FIXME: Ideally, initialization of instantiated thread_local static data - line 341: // FIXME: We only need to register one __cxa_thread_atexit function for the tools/clang/lib/Driver/ToolChains.h (4 lines): - line 82: // FIXME: These might be better as path objects. - line 306: // FIXME: This should be eliminated. What we want to do is make this part of - line 350: // FIXME: Eliminate these ...Target functions and derive separate tool chains - line 354: // FIXME: For now, allow reinitialization as long as values don't lib/ExecutionEngine/SectionMemoryManager.cpp (4 lines): - line 69: // FIXME: It would be useful to define a default allocation size (or add - line 72: // FIXME: Initialize the Near member for each memory group to avoid - line 81: // FIXME: Add error propagation to the interface. - line 107: // FIXME: Should in-progress permissions be reverted if an error occurs? tools/clang/tools/dxclib/dxc.cpp (4 lines): - line 138: // TODO : Refactor two functions below. There are duplicate functions in DxcContext in dxa.cpp - line 576: // TODO : Right now we are just going to bild a new blob with updated root signature to verify root signature - line 1056: // TODO : There is an identical code in DxaContext in Dxa.cpp. Refactor this function. - line 1392: // TODO: implement all other actions. lib/HLSL/HLSignatureLower.cpp (4 lines): - line 555: // TODO: support case cols not 1 - line 566: // TODO: support array. - line 1565: // TODO: generate a emit which has the data being emited as its argment. - line 1577: // TODO: generate a emit which has the data being emited as its argment. tools/clang/lib/Sema/SemaTemplateVariadic.cpp (4 lines): - line 225: // FIXME: Store 'Unexpanded' on the lambda so we don't need to recompute it - line 329: // FIXME: We shouldn't need this null check! - line 897: // FIXME: We shouldn't ever have to worry about missing - line 912: // FIXME: Find some way to avoid the copy? tools/clang/lib/Sema/DeclSpec.cpp (4 lines): - line 23: #include "clang/Parse/ParseDiagnostic.h" // FIXME: remove this back-dependency! - line 1044: //TODO: perform validation - line 1100: // TODO: if the implementation does not implement _Complex or _Imaginary, - line 1232: // TODO: return "auto function" and other bad things based on the real type. lib/Option/Option.cpp (4 lines): - line 180: // FIXME: Avoid strlen. - line 201: // FIXME: Avoid strlen. - line 217: // FIXME: Avoid strlen. - line 247: // FIXME: Avoid strlen. lib/MC/ELFObjectWriter.cpp (4 lines): - line 402: // FIXME: produce a better error message. - line 584: // FIXME: We could use the section but add the bit to the relocation value. - line 735: // FIXME: this is here just to diagnose the case of a var = commmon_sym. - line 821: // FIXME: All name handling should be done before we get to the writer, tools/clang/lib/AST/HlslTypes.cpp (4 lines): - line 38: // TODO: check pointer instead of name - line 116: // TODO: avoid check by name - line 146: // TODO: check pointer instead of name - line 427: // TODO: Add type cache to ASTContext. tools/clang/include/clang/Parse/Parser.h (4 lines): - line 598: /// The identifier is a template name. FIXME: Add an annotation for that. - line 900: /// - exception-specifications (TODO: C++0x) - line 936: /// FIXME: Perhaps we should change the name of LateParsedDeclaration to - line 1757: /// A context for parsing declaration specifiers. TODO: flesh this tools/clang/lib/Frontend/FrontendAction.cpp (4 lines): - line 333: // FIXME: should not overwrite ASTMutationListener when parsing model files? - line 393: // FIXME: If this is a problem, recover from it by creating a multiplex - line 486: // FIXME: There is more per-file stuff we could just drop here? - line 540: // FIXME: Move the truncation aspect of this into Sema, we delayed this till tools/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp (4 lines): - line 343: // FIXME: What to do if the file name is a macro? - line 385: // FIXME: Subframeworks aren't handled here. Do we care? - line 432: // TODO: Consider adding a switch that strips possibly unimportant content, - line 591: // TODO: It would be even faster if the preprocessor could be switched lib/CodeGen/SelectionDAG/FastISel.cpp (4 lines): - line 493: // FIXME: What's a good SWAG number for MaxOffs? - line 919: // FIXME: sret demotion isn't supported yet - bail out. - line 1209: // FIXME: This does not handle register-indirect values at offset 0. - line 1706: // FIXME: If the materialized register here has no uses yet then this lib/DxilContainer/DxilContainerAssembler.cpp (4 lines): - line 107: // TODO: Final_* values need mappings - line 507: // TODO: for >= 6.2 version, create more efficient structure - line 1192: // TODO: add dynamic index flag - line 1664: // TODO: add a flag to update the module and remove information that is not part lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp (4 lines): - line 769: // TODO: generalize the predicates here to also match their unsigned variants. - line 782: // TODO: this restriction is easily removable -- we just have to - line 804: // TODO: this restriction is easily removable -- we just have to - line 1376: // TODO: we could widen the smaller range and have this work; but for now we lib/Support/raw_ostream.cpp (4 lines): - line 260: // FIXME: Implement our formatter to here or Support/Format.h! - line 262: // FIXME: It should be generic to C++11. - line 832: // the data is flushed). See the FIXME below. - line 838: // FIXME: Prevent resizing during this flush(). tools/clang/lib/CodeGen/CGObjCRuntime.cpp (4 lines): - line 41: // FIXME: We should eliminate the need to have ObjCImplementationDecl passed - line 55: // FIXME: The index here is closely tied to how ASTContext::getObjCLayout is - line 117: // FIXME: Note that currently we make a very conservative estimate of the - line 136: // FIXME: This is incredibly wasteful, these should be uniqued or part of some lib/DXIL/DxilUtil.cpp (4 lines): - line 501: // TODO: don't check names. - line 532: // TODO: don't check names. - line 546: // TODO: don't check names. - line 570: // TODO: How is this suppoed to check for Input/OutputPatch types if tools/clang/unittests/Format/FormatTestJS.cpp (4 lines): - line 367: // FIXME: This is not ideal yet. - line 379: // FIXME: This is bad, we should be wrapping before "function() {". - line 460: // FIXME: Here, we should probably break right after the "(" for consistency. - line 519: // FIXME: This is bad, we should be wrapping before "() => {". lib/IR/ConstantFold.cpp (4 lines): - line 284: // TODO: Handle the 'partially zero' case. - line 306: // TODO: Handle the 'partially zero' case. - line 340: // TODO: Handle the 'partially zero' case. - line 990: // TODO: undef >>a X -> undef if the shift is exact include/dxc/DXIL/DxilConstants.h (4 lines): - line 22: // TODO: - line 67: // TODO: move these to appropriate places (ShaderModel.cpp?) - line 397: // TODO: change opcodes. - line 1167: // TODO: add operand index for all the OpCodeClass. include/dxc/DXIL/DxilInstructions.h (4 lines): - line 19: // TODO: add correct include directives - line 20: // TODO: add accessors with values - line 21: // TODO: add validation support code, including calling into right fn - line 22: // TODO: add type hierarchy include/llvm/IR/Metadata.h (4 lines): - line 57: // TODO: expose remaining bits to subclasses. - line 1113: // FIXME: Fix callers and remove condition on N. - line 1117: // FIXME: Fix callers and remove condition on N. - line 1133: /// TODO: Inherit from Metadata. tools/clang/lib/CodeGen/CodeGenPGO.cpp (4 lines): - line 135: // TODO: When this format changes, take in a version number here, and use the - line 769: // FIXME: 30% is from preliminary tuning on SPEC, it may not be optimal. - line 773: // FIXME: 1% is from preliminary tuning on SPEC, it may not be optimal. - line 805: // TODO: Consider a more specific warning for this case. lib/CodeGen/MachineBasicBlock.cpp (4 lines): - line 159: // FIXME: This needs to change if we wish to bundle labels / dbg_values - line 388: DebugLoc dl; // FIXME: this is nowhere - line 448: // FIXME: This does not seem like a reasonable pattern to support, but it - line 673: DebugLoc dl; // FIXME: this is nowhere lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp (4 lines): - line 399: // FIXME: this is an inefficient way to handle this. We should computed the - line 670: // TODO: There is only ARM far stub now. We should add the Thumb stub, - line 796: // FIXME: Implement error handling that doesn't kill the host program! - line 835: // FIXME: There's a potential issue lurking here if a single instance of tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp (4 lines): - line 42: // FIXME: Do some performance optimization in general and - line 57: // FIXME: Benchmark whether memoization of non-pointer typed nodes - line 129: // FIXME: Add other base types after adding tests. - line 463: // FIXME: Improve this with a switch or a visitor pattern. lib/Transforms/Scalar/DeadStoreElimination.cpp (4 lines): - line 13: // FIXME: This should eventually be extended to be a post-dominator tree - line 217: // FIXME: We don't know the size of the trampoline, so we can't really - line 499: // FIXME: cross-block DSE would be fun. :) - line 576: // TODO: base this on the target vector size so that if the earlier lib/IR/ConstantRange.cpp (4 lines): - line 593: // TODO: If either operand is a single element and the multiply is known to - line 697: // TODO: replace this with something less conservative - line 710: // TODO: replace this with something less conservative - line 731: // FIXME: implement the other tricky cases tools/clang/lib/Basic/TargetInfo.cpp (4 lines): - line 460: // FIXME: We temporarily return false - line 470: // FIXME: Check that there is a another register after this one. - line 577: // FIXME: This error return is in place temporarily so we can - line 601: // FIXME: Fail if % is used with the last operand. tools/clang/lib/AST/TemplateBase.cpp (4 lines): - line 374: // FIXME: distinguish between pointer and reference args? - line 497: // FIXME: We're guessing at LangOptions! - line 510: // FIXME: We're guessing at LangOptions! - line 616: // FIXME: There's room for this in the padding before the template args in lib/Transforms/Scalar/LoopUnrollPass.cpp (4 lines): - line 175: // FIXME: Loop unroll requires LCSSA. And LCSSA requires dom info. - line 397: /// TODO: Add visitors for other instruction types, e.g. ZExt, SExt. - line 401: /// TODO: Probaly it's worth to hoist the code for estimating the - line 454: // FIXME: For now we conservatively ignore out of bound accesses, but tools/clang/unittests/HLSL/ExecutionTest.cpp (4 lines): - line 2483: // TODO: add divergent branching and verify that the otherwise uniform values properly diverge - line 2850: // TODO: provide validation for quads where the same pixel was shaded multiple times - line 3982: // TODO: uin16_t may be used to represent two different types when we introduce uint16 - line 7213: // TODO: use different comparison for floating point inputs tools/clang/lib/CodeGen/CGObjCRuntime.h (4 lines): - line 59: // FIXME: Several methods should be pure virtual but aren't to avoid the - line 192: // FIXME: Current this just generates the Function definition, but really this - line 287: // FIXME: This probably shouldn't be here, but the code to compute - line 295: //TODO: This should include some way of selecting which runtime to target. include/llvm/IR/PassManager.h (4 lines): - line 222: // FIXME: Historically, the pass managers all called the LLVM context's - line 293: // FIXME: Provide template aliases for the models when we're using C++11 in - line 755: /// FIXME: Make the above true for all of LLVM's actual passes, some still - line 762: /// FIXME: Make the above true for all of LLVM's actual passes, some still lib/Support/DeltaAlgorithm.cpp (4 lines): - line 29: // FIXME: Allow clients to provide heuristics for improved splitting. - line 31: // FIXME: This is really slow. - line 72: // FIXME: Parallelize. - line 86: // FIXME: This is really slow. tools/clang/lib/Basic/SourceManager.cpp (4 lines): - line 107: // FIXME: This is definitely not ideal, but our immediate clients can't - line 793: // FIXME: This could be made faster by using a function that's aware of - line 1319: // FIXME: I would like to be convinced that this code is worth being as - line 1334: // FIXME: Potential overflow? tools/clang/include/clang/AST/ASTContext.h (4 lines): - line 710: // FIXME: Remove ? - line 1069: /// FIXME: We will need these to be uniqued, or at least comparable, at some - line 1107: /// FIXME: We will need these to be uniqued, or at least comparable, at some - line 2455: // FIXME: This currently contains the set of StoredDeclMaps used lib/HLSL/HLLegalizeParameter.cpp (4 lines): - line 136: // TODO: remove copy for global in - line 230: // TODO: Adding lifetime intrinsics isn't easy here, have to analyze uses. - line 293: // TODO: Adding lifetime intrinsics isn't easy here, have to analyze uses. - line 305: // TODO: Adding lifetime intrinsics isn't easy here, have to analyze uses. tools/clang/lib/Parse/ParsePragma.cpp (4 lines): - line 775: // FIXME: Add support for the '[, func-name]' part of the pragma. - line 1237: // FIXME: Should we be expanding macros here? My guess is no. - line 1900: // FIXME: warn that 'exestr' is deprecated. - line 1901: // FIXME: If the kind is "compiler" warn if the string is present (it is lib/Option/ArgList.cpp (4 lines): - line 47: // FIXME: Make search efficient? - line 55: // FIXME: Make search efficient? - line 65: // FIXME: Make search efficient? - line 75: // FIXME: Make search efficient? lib/MC/MCParser/AsmLexer.cpp (4 lines): - line 196: // FIXME: This is broken if we happen to a comment at the end of a file, which - line 401: // TODO: does gas allow multiline string constants? - line 467: // FIXME: special case for the bogus "##" comment string in X86MCAsmInfoDarwin - line 593: // TODO: Quoted identifiers (objc methods etc) tools/clang/lib/Sema/SemaOpenMP.cpp (4 lines): - line 1840: // TODO: add processing for other clauses. - line 2435: // TODO: add distribute directive. - line 6269: // TODO: Allow scope specification search when 'declare reduction' is - line 6285: // FIXME: Only 'min' and 'max' identifiers are supported for now. lib/Transforms/Scalar/StraightLineStrengthReduce.cpp (4 lines): - line 48: // TODO: - line 323: // TODO: We currently implement an algorithm whose time complexity is linear in - line 451: // TODO: we could extend SLSR to float and vector types. - line 514: // TODO: handle vector GEPs lib/MC/MCExpr.cpp (4 lines): - line 437: // FIXME: The use if InSet = Addrs is a hack. Setting InSet causes us - line 543: // FIXME: This routine (and other evaluation parts) are *incredibly* sloppy - line 655: // FIXME: This is small hack. Given - line 733: // FIXME: We need target hooks for the evaluation. It may be limited in tools/clang/lib/Frontend/InitHeaderSearch.cpp (4 lines): - line 239: // FIXME: temporary hack: hard-coded paths. - line 353: // FIXME: temporary hack: hard-coded paths. - line 619: (/*FIXME !Lang.ObjC1 && */Lang.CPlusPlus && it->first == CXXSystem) || - line 637: bool DontSearchCurDir = false; // TODO: set to true if -I- is set? tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp (4 lines): - line 174: // FIXME: This logic should probably go higher up, where we can - line 177: // FIXME: Expand these checks to include all undefined behavior. - line 192: // FIXME: This logic should probably go higher up, where we can - line 195: // FIXME: Expand these checks to include all undefined behavior. lib/HLSL/DxilLinker.cpp (4 lines): - line 569: // TODO: skip duplicate operands. - line 596: // TODO: check conflict in flags. - line 1113: // TODO: move FixShaderModelMismatch to separate file. - line 1227: // TODO: fix more issues. lib/Option/OptTable.cpp (4 lines): - line 243: // FIXME: This is searching much more than necessary, but I am - line 286: // FIXME: Handle '@' args (or at least error on them). - line 407: // FIXME: Split out option groups. - line 440: // FIXME: Split out option groups. lib/CodeGen/AggressiveAntiDepBreaker.cpp (4 lines): - line 299: // FIXME: We must leave subregisters of live super registers as live, so that - line 432: // FIXME: The issue with predicated instruction is more complex. We are being - line 586: // FIXME: remove this once PR18663 has been properly fixed. For now, - line 610: // FIXME: Using getMinimalPhysRegClass is very conservative. We should lib/MC/MCAsmStreamer.cpp (4 lines): - line 836: // FIXME: Parameterize this based on MAI. - line 861: // FIXME: Verify that Offset is associated with the current section. - line 1240: // FIXME: Note the fixup comments for Thumb2 are completely bogus since the - line 1262: // FIXME: Some of the 8 bits require fix up. lib/MC/MCParser/COFFAsmParser.cpp (4 lines): - line 675: // FIXME: Err on %xmm* registers - line 680: // FIXME: This method is inherently x86-specific. It should really be in the - line 702: // FIXME: Err on non-%xmm* registers - line 761: // FIXME: TargetAsmInfo::getCalleeSavedRegs() commits a serious layering lib/CodeGen/InlineSpiller.cpp (4 lines): - line 1109: // FIXME: Teach targets to deal with subregs. - line 1296: // FIXME: Infer regclass from instruction alone. - line 1317: // FIXME: Use a second vreg if instruction has no tied ops. - line 1360: // FIXME: Do this with a LiveRangeEdit callback. tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp (4 lines): - line 287: // FIXME: enhance track back for uninitialized value for arbitrary - line 468: // FIXME: getTrackNullOrUndefValueVisitor can't handle "super" yet. - line 517: // FIXME: This won't track "self" in messages to super. - line 571: // FIXME: For now take the conservative approach that we only lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp (4 lines): - line 127: // TODO: Support other types such as StructTyID, ArrayTyID, OpaqueTyID, etc. - line 175: // TODO: Support other types such as StructTyID, ArrayTyID, OpaqueTyID, etc. - line 186: // TODO: We don't have type information about the remaining arguments, because - line 316: //FIXME: should we report or raise here? include/llvm/CodeGen/RegAllocPBQP.h (4 lines): - line 201: // FIXME: Re-implementing default behavior to work around MSVC. Remove once - line 217: // FIXME: Re-implementing default behavior to work around MSVC. Remove once - line 228: // FIXME: Re-implementing default behavior to work around MSVC. Remove once - line 245: // FIXME: Re-implementing default behavior to work around MSVC. Remove once lib/CodeGen/PrologEpilogInserter.cpp (4 lines): - line 630: // FIXME: Once this is working, then enable flag will change to a target - line 809: // FIXME: This should be unconditional but we have bugs in the preparation - line 907: // TODO: This code should be commoned with the code for - line 974: /// FIXME: Iterating over the instruction stream is unnecessary. We can simply include/llvm/Support/TargetParser.h (4 lines): - line 18: // FIXME: vector is used because that's what clang uses for subtarget feature - line 28: // FIXME: To TableGen this we need to make some table generated files available - line 152: // FIXME: BE8 vs. BE32? - line 181: // FIXME: This should be moved to TargetTuple once it exists tools/clang/utils/ABITest/ABITestGen.py (4 lines): - line 226: # FIXME: Use designated initializers to access non-first - line 492: # FIXME: Wrong size. - line 504: # FIXME: Wrong size. - line 536: # FIXME: Allow overriding builtins here lib/Transforms/Utils/LoopSimplify.cpp (4 lines): - line 475: /// FIXME: Currently this accepts both lots of analyses that it uses and a raw - line 600: // FIXME: It isn't clear we can't rely on LLVM to TRE this. - line 795: // FIXME: Restore this code when we re-enable verification in verifyAnalysis - line 842: // FIXME: This routine is being called mid-way through the loop pass manager lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp (4 lines): - line 375: // FIXME: for XOR, we prefer to force bits to 1 if they will make a -1. - line 768: // TODO: Could compute known zero/one bits based on the input. - line 944: // TODO: Just compute the UndefElts information recursively. - line 1206: // TODO: Lower MIN/MAX/ABS/etc lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp (3 lines): - line 430: // TODO: Add Thumb relocations. - line 1136: // TODO: Now ELF SymbolRef::ST_Debug = STT_SECTION, it's not obviously - line 1309: // FIXME: Calculate correct addends for R_MIPS_HI16, R_MIPS_LO16, include/llvm/CodeGen/BasicTTIImpl.h (3 lines): - line 307: // TODO: Once we have extract/insert subvector cost we need to use them. - line 682: // FIXME: We should return 0 whenever getIntrinsicCost == TCC_Free. - line 701: // TODO: Once we have extract/insert subvector cost we need to use them. include/llvm/Analysis/TargetTransformInfoImpl.h (3 lines): - line 126: // FIXME: This is wrong for libc intrinsics. - line 155: // FIXME: These should almost certainly not be handled here, and instead - line 376: // FIXME: We should use instsimplify or something else to catch calls which tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp (3 lines): - line 43: // FIXME: Eventually replace RegionRawOffset with this class. - line 75: // FIXME: improve this later by tracking symbolic lower bounds - line 192: // FIXME: This diagnostics are preliminary. We should get far better tools/clang/tools/libclang/IndexDecl.cpp (3 lines): - line 257: // FIXME: Parent for the following is CXIdxEntity_Unexposed with no USR, - line 268: // FIXME: Parent for the following is CXIdxEntity_Unexposed with no USR, - line 286: // FIXME: Notify subsequent callbacks if info comes from implicit lib/CodeGen/SlotIndexes.cpp (3 lines): - line 51: // FIXME: This can be simplified. The mi2iMap_, Idx2MBBMap, etc. should - line 149: // FIXME: Is this really necessary? The only caller repairIntervalsForRange() - line 171: // FIXME: Conceptually, this code is implementing an iterator on MBB that lib/Analysis/LoopAccessAnalysis.cpp (3 lines): - line 742: // FIXME: This should probably only return true for NUW. - line 1148: // FIXME: Should use max factor instead of max distance in bytes, which could - line 1567: // FIXME: this function is currently a duplicate of the one in tools/clang/lib/Analysis/LiveVariables.cpp (3 lines): - line 311: // FIXME: These cases eventually shouldn't be needed. - line 505: // FIXME: we should enqueue using post order. - line 510: // FIXME: Scan for DeclRefExprs using in the LHS of an assignment. lib/CodeGen/MachineCSE.cpp (3 lines): - line 141: // FIXME: We should trivially coalesce subregister copies to expose CSE - line 355: // FIXME: we should be able to hoist loads with no other side effects if - line 367: // FIXME: Heuristics that works around the lack the live range splitting. lib/MC/MCParser/ELFAsmParser.cpp (3 lines): - line 80: // FIXME: Part of this logic is duplicated in the MCELFStreamer. What is - line 364: // FIXME: This is a work in progress. - line 705: // FIXME: Share code with the other alias building directives. lib/Bitcode/Writer/BitcodeWriter.cpp (3 lines): - line 2018: // FIXME: Set up the abbrev, we know how many values there are! - line 2019: // FIXME: We know if the type names can use 7-bit ascii. - line 2284: // FIXME: This should only use space for first class types! tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp (3 lines): - line 551: // FIXME: This should be replaced with something that doesn't rely on - line 641: // FIXME: Inter-procedural analysis will need to handle invalid CFGs. - line 713: // Ubigraph Visualization. FIXME: Move to separate file. lib/Transforms/Utils/LoopUnroll.cpp (3 lines): - line 43: // TODO: Should these be here or in LoopUnroll? - line 482: // FIXME: We could register any cloned assumptions instead of clearing the - line 488: // FIXME: Reconstruct dom info, because it is not preserved properly. lib/DebugInfo/DWARF/DWARFContext.cpp (3 lines): - line 615: // FIXME: Use the other dwo range section when we emit it. - line 643: // TODO: Add support for relocations in other sections as needed. - line 692: // FIXME: We are not handling scattered relocations, do we have to? lib/Transforms/InstCombine/InstCombineAddSub.cpp (3 lines): - line 92: // TODO: We should get rid of this function when APFloat can be constructed - line 944: /// TODO: Handle this for Vectors. - line 968: // TODO: implement logic similar to checkRippleForAdd tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h (3 lines): - line 322: // TODO -- handle alpha-renaming of variables - line 362: // TODO -- handle alpha-renaming of variables - line 407: // TODO: further distinguish between binary operations. lib/Transforms/Scalar/DxilLoopUnroll.cpp (3 lines): - line 320: // revisit than later on. FIXME: Remove this if indirectbr support into - line 364: // Recurse and re-process each PHI instruction. FIXME: we should really - line 626: // TODO: Inherit lifetimes start/end locations from AI if available. tools/lli/RemoteMemoryManager.cpp (3 lines): - line 72: // FIXME: This is part of a work around to keep sections near one another - line 88: // FIXME: Make this function thread safe. - line 152: // FIXME: Make this function thread safe. include/llvm/Analysis/PtrUseVisitor.h (3 lines): - line 18: /// FIXME: Provide a variant which doesn't track offsets and is cheaper. - line 191: /// FIXME: Generalize this for all values rather than just instructions. - line 206: // FIXME: Support a vector of pointers. cmake/modules/HandleLLVMOptions.cmake (3 lines): - line 194: # TODO: support other platforms and toolchains. - line 541: # FIXME: With MSVS, consider compiling with /Gy and linking with /OPT:REF? - line 583: # FIXME: Make this configurable. include/llvm/IR/PassManagerInternal.h (3 lines): - line 205: // FIXME: We should actually use two different concepts for analysis results - line 289: // FIXME: Replace PassT::Result with type traits when we use C++11. - line 327: // FIXME: Replace PassT::Result with type traits when we use C++11. tools/clang/tools/libclang/Indexing.cpp (3 lines): - line 50: // FIXME: On windows it is disabled since current implementation depends on - line 635: // FIXME: Add a flag for modules. - line 695: // FIXME: Only deserialize inclusion directives. lib/Transforms/Scalar/LICM.cpp (3 lines): - line 268: // FIXME: This is really heavy handed. It would be a bit better to use an - line 482: // FIXME: This should use mod/ref information to see if we can hoist or - line 496: // TODO: Plumb the context instruction through to make hoisting and sinking tools/clang/lib/CodeGen/CGCXXABI.cpp (3 lines): - line 43: // FIXME: This assumes that all lazily declared copy and move constructors are - line 155: // FIXME: I'm not entirely sure I like using a fake decl just for code - line 274: // TODO: Store base specifiers in APValue member pointer paths so we can lib/Transforms/InstCombine/InstCombinePHI.cpp (3 lines): - line 291: // FIXME: This is overconservative; this transform is allowed in some cases - line 614: /// TODO: The user of the trunc may be an bitcast to float/double/vector or an - line 799: // FIXME: The hasOneUse check will fail for PHIs that use the value more lib/AsmParser/LLParser.cpp (3 lines): - line 288: /// FIXME: Remove in 4.0. Currently parse, but ignore. - line 4022: // FIXME: LabelTy should not be a first-class type. - line 4033: // FIXME: LabelTy should not be a first-class type. tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h (3 lines): - line 281: // FIXME: Add a helper for checking namespaces. - line 282: // FIXME: Move this down to AnyFunctionCall once checkers have more - line 291: // FIXME: Move this down to AnyFunctionCall once checkers have more lib/Transforms/IPO/MergeFunctions.cpp (3 lines): - line 977: // TODO: Already checked in cmpOperation - line 1021: // TODO: if it's internal and only used in direct calls, we could handle this - line 1462: // FIXME: Should still merge them if they are unnamed_addr and produce an utils/hct/hcttest-samples.py (3 lines): - line 20: # TODO: read xml and return xml root - line 80: # TODO: limit ActionCopyCompilerBins action to ones that do run-time compilation. - line 390: print("TODO - run Debug config vs. DxilDebug config and verify results are the same") tools/llvm-rtdyld/llvm-rtdyld.cpp (3 lines): - line 341: // FIXME: Preserve buffers until resolveRelocations time to work around a bug - line 376: // FIXME: Error out if there are unresolved relocations. - line 620: // FIXME: Preserve buffers until resolveRelocations time to work around a bug utils/llvm-build/llvmbuild/main.py (3 lines): - line 180: # FIXME: We aren't actually correctly checking for cycles along the - line 555: # FIXME: File a CMake RFE to get a properly supported version of this - line 683: # FIXME: Technically, we need to properly quote for Make here. tools/clang/unittests/Tooling/RefactoringTest.cpp (3 lines): - line 123: // FIXME: Remove this test case when Replacements is implemented as std::vector - line 185: // FIXME: Remove this test case when Replacements is implemented as std::vector - line 253: // FIXME: Figure out whether there is a way to get the SourceManger to tools/clang/utils/analyzer/SATestBuild.py (3 lines): - line 22: - Copy over a copy of the Repository Directory. (TODO: Prefer to ensure that - line 31: Assumptions (TODO: shouldn't need to assume these.): - line 397: # TODO: Add a line "See the results folder for more." tools/yaml2obj/yaml2elf.cpp (3 lines): - line 97: /// TODO: This class still has a ways to go before it is truly a "single - line 509: // TODO: Flesh out section header support. - line 510: // TODO: Program headers. tools/clang/include/clang/Sema/DeclSpec.h (3 lines): - line 172: /// FIXME: This routine should be used very, very rarely, in cases where we - line 648: /// TODO: use a more general approach that still allows these - line 893: // FIXME: These two are unrelated and mutually exclusive. So perhaps tools/clang/utils/ClangDataFormat.py (3 lines): - line 119: # FIXME: lldb should provide something like getBaseType - line 133: # FIXME: lldb should provide something like getCanonicalType - line 137: # FIXME: Hashing for SBTypes does not seem to work correctly, uses the typename instead, tools/clang/lib/Format/BreakableToken.cpp (3 lines): - line 88: // FIXME: Reduce unit test case. - line 176: // FIXME: It might be a cleaner solution to merge the tokens as a - line 273: // FIXME: We could, probably, align them to current indentation level, but lib/CodeGen/MachineVerifier.cpp (3 lines): - line 464: // FIXME: This should probably be: - line 725: // FIXME: If conversion shouldn't need to violate this rule. - line 1107: // TODO: verify that earlyclobber ops are not used. lib/Support/Windows/MSFileSystem.inc.cpp (3 lines): - line 239: // TODO: consider erasing this - line 547: // TODO: look at GetLastError as well. - line 814: SIZE_T Result = VirtualQuery(Mapping, &mbi, sizeof(mbi)); // TODO: do we need to plumb through fsr? utils/lit/lit/main.py (3 lines): - line 88: # FIXME: Record some information on the lit configuration used? - line 89: # FIXME: Record information from the individual test suites? - line 155: # FIXME: I find these names very confusing, although I like the tools/clang/include/clang/AST/ASTVector.h (3 lines): - line 15: // FIXME: Most of this is copy-and-paste from BumpVector.h and SmallVector.h. - line 42: // FIXME: This is a horrible hack. - line 191: // TODO: NEED To compile time dispatch on whether in_iter is a random access tools/clang/include/clang/Basic/FileSystemStatCache.h (3 lines): - line 30: // FIXME: should probably replace this with vfs::Status - line 39: bool IsVFSMapped; // FIXME: remove this when files support multiple names - line 92: // FIXME: The pointer here is a non-owning/optional reference to the tools/clang/tools/libclang/IndexingContext.cpp (3 lines): - line 433: // FIXME: This seems like the wrong definition for redeclaration. - line 488: // FIXME: This seems like the wrong definition for redeclaration. - line 983: // FIXME: isPOD check is not sufficient, a POD can contain methods, tools/clang/include/clang/AST/Comment.h (3 lines): - line 233: // TODO: const child iterator - line 909: CMK_At) // FIXME: improve source fidelity. - line 963: CMK_At), // FIXME: improve source fidelity. lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (3 lines): - line 35: // FIXME: Once GDB supports this, it's probably worthwhile using the address - line 69: // FIXME: add a better feature test than hasRawTextSupport. Even better, - line 155: // FIXME: Make this work with -gsplit-dwarf. lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp (3 lines): - line 197: // FIXME Clang currently sets DisplayName to "bar" for a C++ - line 343: // FIXME: is there a simpler a way to do this? Can we just search - line 356: // FIXME: do we need the first subcondition? lib/Support/CrashRecoveryContext.cpp (3 lines): - line 56: // FIXME: Stash the backtrace. - line 166: // TODO: We can capture the stack backtrace here and store it on the - line 333: // FIXME: Portability. tools/clang/lib/SPIRV/RawBufferMethods.cpp (3 lines): - line 191: // TODO: If 8-bit types are to be supported in the future, we should also - line 299: // TODO: This is currently doing a row_major matrix load. We must - line 599: // TODO: This is currently doing a row_major matrix store. We must utils/TableGen/PseudoLoweringEmitter.cpp (3 lines): - line 69: // FIXME: This pass currently can only expand a pseudo to a single instruction. - line 91: // FIXME: We probably shouldn't ever get a non-zero BaseIdx here. - line 219: // FIXME: Instruction operands with defaults values (predicates and cc_out lib/CodeGen/StackSlotColoring.cpp (3 lines): - line 70: // FIXME: This assumes PEI locate spill slot with smaller indices - line 142: // FIXME: Need the equivalent of MachineRegisterInfo for frameindex operands. - line 376: // FIXME: This could be much more aggressive, but we need to investigate tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp (3 lines): - line 107: /// FIXME: Remove this when these classes start using 'instancetype'. - line 887: // FIXME: Make determination of operator precedence more general and - line 1085: // FIXME: Use a custom category name to distinguish migration diagnostics. tools/clang/lib/Driver/SanitizerArgs.cpp (3 lines): - line 297: // for CFI. FIXME: Remove this once we support vptr on Windows. - line 328: // FIXME: Currently -fsanitize=leak is silently ignored in the presence of - line 438: // TODO: Add deprecation notice for this form. tools/clang/lib/Driver/MSVCToolChain.cpp (3 lines): - line 92: // FIXME: We should be using the W versions of the registry functions, but - line 484: // FIXME: Don't guess drives and paths like this on Windows. - line 497: // FIXME: There should probably be logic here to find libc++ on Windows. tools/clang/lib/Lex/PTHLexer.cpp (3 lines): - line 152: // FIXME: We can just grab the last token instead of storing a copy - line 440: // FIXME: Add ec.message() to this diag. - line 488: return nullptr; // FIXME: Proper error diagnostic? lib/IR/Metadata.cpp (3 lines): - line 807: // FIXME: This preserves long-standing behaviour, but is it really the right - line 821: // FIXME: This preserves long-standing behaviour, but is it really the right - line 835: // FIXME: This preserves long-standing behaviour, but is it really the right tools/clang/lib/CodeGen/CodeGenTBAA.cpp (3 lines): - line 139: // TODO: Implement C++'s type "similarity" and consider dis-"similar" - line 150: // TODO: Is there a way to get a program-wide unique name for a - line 183: // TODO: Handle C++ base classes. tools/clang/lib/CodeGen/CodeGenAction.cpp (3 lines): - line 292: // TODO: Avoid copying files into memory. - line 296: // FIXME: Keep a file ID map instead of creating new IDs for each location. - line 764: // TODO: Unify this with ConvertBackendLocation() lib/DxilPIXPasses/DxilShaderAccessTracking.cpp (3 lines): - line 63: // TODO: Make this a unique value if supported in PIX, then enable - line 767: // readWrite = ShaderAccessFlags::DescriptorRead; // TODO: Support - line 775: // readWrite = ShaderAccessFlags::Read; // TODO: Support lib/Transforms/Scalar/MemCpyOptimizer.cpp (3 lines): - line 750: // FIXME: MD_tbaa_struct and MD_mem_parallel_loop_access should also be - line 800: // TODO: If the code between M and MDep is transparent to the destination "c", - line 823: // TODO: Is this worth it if we're creating a less aligned memcpy? For lib/Analysis/CaptureTracking.cpp (3 lines): - line 222: // TODO: If StoreCaptures is not true, we could do Fancy analysis - line 251: // TODO: See comment in PointerMayBeCaptured regarding what could be done - line 259: /// TODO: Write a new FunctionPass AliasAnalysis so that it can keep tools/clang/unittests/dxc_batch/dxc_batch.cpp (3 lines): - line 145: // TODO: implement all other actions. - line 495: // TODO : Right now we are just going to bild a new blob with updated root - line 889: // TODO: validate unused option for dxc_bach. lib/Transforms/Utils/ValueMapper.cpp (3 lines): - line 72: // FIXME: This assert crashes during bootstrap, but I think it should be - line 177: // FIXME: This assert crashes during bootstrap, but I think it should be - line 285: // FIXME: This assert crashes during bootstrap, but I think it should be lib/Analysis/ConstantFolding.cpp (3 lines): - line 157: if (!isa(C) && // FIXME: Remove ConstantVector. - line 1003: /// TODO: This function neither utilizes nor preserves nsw/nuw/inbounds/etc - line 1114: // FIXME: The following comment is out of data and the DataLayout is here now. tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp (3 lines): - line 55: // FIXME: All of this out-of-bounds checking should eventually be refactored - line 70: // FIXME: This bug correspond to CWE-466. Eventually we should have bug - line 78: // FIXME: It would be nice to eventually make this diagnostic more clear, lib/CodeGen/MachineSink.cpp (3 lines): - line 358: // FIXME: Need much better heuristics. - line 528: // FIXME - If finding successor is compile time expensive then cache results. - line 693: // FIXME: This should include support for sinking instructions within the lib/Transforms/InstCombine/InstCombineShifts.cpp (3 lines): - line 47: // FIXME: Should this get moved into SimplifyDemandedBits by saying we don't - line 82: // TODO: Handle opposite shift by exact value. - line 87: // TODO: Check that the input bits are already zero with MaskedValueIsZero tools/clang/lib/AST/APValue.cpp (3 lines): - line 106: // FIXME: Reduce the malloc traffic here. - line 466: // FIXME: If CastToBase is non-0, we should prefix the output with - line 528: // FIXME: This is not enough to unambiguously identify the member in a lib/Transforms/Scalar/TailRecursionElimination.cpp (3 lines): - line 402: // FIXME: The code generator produces really bad code when an 'escaping - line 443: // FIXME: We can move load/store/call/free instructions above the call if the - line 453: // FIXME: Writes to memory only matter if they may alias the pointer lib/DXIL/DxilModule.cpp (3 lines): - line 64: // TODO: revisit data layout descriptions for the following: - line 75: // TODO: consider generating attributes from hctdb - line 965: // TODO: resID could be other types of instructions depending on the compiler optimization. tools/clang/lib/CodeGen/CGExprComplex.cpp (3 lines): - line 148: // FIXME: CompoundLiteralExpr - line 656: // FIXME: C11 also provides for imaginary types which would allow folding - line 757: // FIXME: We would be able to avoid the libcall in many places if we tools/clang/lib/StaticAnalyzer/Core/SVals.cpp (3 lines): - line 70: // FIXME: should we consider SymbolRef wrapped in CodeTextRegion? - line 103: // TODO: The next 3 functions have to be simplified. - line 112: // FIXME: should we consider SymbolRef wrapped in CodeTextRegion? lib/Transforms/ObjCARC/ObjCARCContract.cpp (3 lines): - line 26: // TODO: ObjCARCContract could insert PHI nodes when uses aren't - line 228: // TODO: This is one area where the optimization could be made more - line 551: // TODO: Change this to a do-while. lib/CodeGen/TargetLoweringObjectFileImpl.cpp (3 lines): - line 283: // FIXME: this is getting the alignment of the character, not the - line 590: // FIXME: Alignment check should be handled by section classifier. - line 965: // FIXME: we should produce a symbol for F instead. lib/Transforms/Scalar/ScalarReplAggregates.cpp (3 lines): - line 557: // FIXME: This should handle all of the cases that are currently accepted - line 1184: // TODO: Allow recursive phi users. - line 1185: // TODO: Allow stores. lib/TableGen/StringMatcher.cpp (3 lines): - line 85: // FIXME: Need to escape general characters. - line 91: // FIXME: Need to escape general strings. - line 108: // TODO: escape hard stuff (like \n) if we ever care about it. include/dxc/DxilContainer/DxilRuntimeReflection.inl (3 lines): - line 166: // TODO: error handling - line 239: // TODO: Implement pipeline state validation with runtime data - line 240: // TODO: Update BlobContainer.h to recognize 'RDAT' blob tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp (3 lines): - line 43: //Args.push_back(""); // FIXME: Remove dummy argument. // HLSL Change - parse directly as compilation - line 46: // FIXME: Find a cleaner way to force the driver into restricted modes. - line 52: // FIXME: We shouldn't have to pass in the path info. lib/Transforms/Utils/LCSSA.cpp (3 lines): - line 142: // revisit than later on. FIXME: Remove this if indirectbr support into - line 186: // Recurse and re-process each PHI instruction. FIXME: we should really - line 254: // FIXME: This is a big hammer, can we clear the cache more selectively? tools/clang/lib/AST/ExprCXX.cpp (3 lines): - line 538: // FIXME: Will eventually need to cope with member pointers. - line 547: // FIXME: Will eventually need to cope with member pointers. - line 952: // FIXME: Propagate "has unexpanded parameter pack" bit. tools/clang/tools/libclang/dxcisenseimpl.cpp (3 lines): - line 1162: // TODO: until an interface to file access is defined and implemented, simply fall back to pure Win32/CRT calls. - line 1477: // TODO: until an interface to file access is defined and implemented, simply fall back to pure Win32/CRT calls. - line 1598: // TODO: until an interface to file access is defined and implemented, simply fall back to pure Win32/CRT calls. lib/Analysis/CFLAliasAnalysis.cpp (3 lines): - line 235: // TODO: ConstantExpr handling -- CFLAA may report NoAlias when comparing - line 811: // TODO: If the call is indirect, we might be able to enumerate all potential - line 1004: // TODO: Because all of these things are constant, we can determine whether lib/Transforms/Scalar/Float2Int.cpp (3 lines): - line 197: // FIXME: Handle select and phi nodes. - line 255: // FIXME: Handle select and phi nodes. - line 428: // FIXME: Pick the smallest legal type that will fit. tools/clang/include/clang/AST/DeclCXX.h (3 lines): - line 261: /// FIXME: This is a little CXXRecordDecl-specific that the moment. - line 476: /// FIXME: This is wasted space for a union. - line 2626: // FIXME: Could omit 'Key' in name. lib/DxcSupport/HLSLOptions.cpp (3 lines): - line 791: // TODO: more fxc option check. - line 794: // TODO: other front-end error. - line 843: // XXX TODO: Sort this out, since it's required for new API, but a separate argument for old APIs. tools/clang/lib/Format/UnwrappedLineParser.h (3 lines): - line 39: // FIXME: Don't use std::list here. - line 129: // FIXME: We are constantly running into bugs where Line.Level is incorrectly - line 166: // FIXME: This is a temporary measure until we have reworked the ownership lib/Target/TargetLoweringObjectFile.cpp (3 lines): - line 283: // FIXME: Need a better predicate for this: what about custom entries? - line 289: // FIXME: this isn't the right predicate, should be based on the MCSection - line 342: // FIXME: It's not clear what, if any, default this should have - perhaps a lib/Support/DAGDeltaAlgorithm.cpp (3 lines): - line 24: // FIXME: The current algorithm doesn't actually provide a strong guarantee - line 74: // FIXME: Gross. - line 340: // FIXME: We could enforce CurrentSet intersect Required == {} here if we include/miniz/miniz.h (3 lines): - line 153: /* TODO: Work around "error: include file 'sys\utime.h' when compiling with tcc on Linux */ - line 1221: /* TODO */ - line 1326: /* TODO: Perhaps add an option to leave the existing central dir in place in case the add dies? We could then truncate the file (so the old central dir would be at the end) if something goes wrong. */ lib/HLSL/DxilPrecisePropagatePass.cpp (3 lines): - line 158: // TODO: This could be a util function - line 159: // TODO: Should this tunnel through addrspace cast? - line 249: // FIXME: When i points outside idxList, it's an indication that this GEP tools/clang/lib/CodeGen/CGCleanup.cpp (2 lines): - line 63: llvm::Value *V = rv.getAggregateAddr(); // TODO: volatile? - line 787: // TODO: base this on the number of branch-afters and fixups include/llvm/ADT/Hashing.h (2 lines): - line 323: // FIXME: This needs to be a per-execution seed. This is just a placeholder - line 342: // FIXME: We want to replace is_integral_or_enum and is_pointer here with lib/CodeGen/AsmPrinter/DwarfDebug.h (2 lines): - line 332: // FIXME: replace this with a map from comp_dir to table so that we - line 643: // FIXME: Sink these functions down into DwarfFile/Dwarf*Unit. tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp (2 lines): - line 360: // TODO: We might want a more precise diagnostic for double free - line 496: // TODO: This logic is the same as in Malloc checker. tools/clang/include/clang/Lex/PPCallbacks.h (2 lines): - line 279: // FIXME: better to pass in a list (or tree!) of Tokens. - line 289: // FIXME: better to pass in a list (or tree!) of Tokens. tools/clang/lib/Sema/TypeLocBuilder.cpp (2 lines): - line 84: // FIXME: This algorithm is a absolute mess because every TypeLoc returned - line 86: // FIXME: 4 and 8 are sufficient at the moment, but it's pretty ugly to tools/clang/include/clang/SPIRV/SpirvFunction.h (2 lines): - line 105: /// TODO: Clean up aliasing and try to move it to a separate pass. - line 139: /// TODO: Clean up aliasing and try to move it to a separate pass. lib/Support/Windows/explicit_symbols.inc (2 lines): - line 25: EXPLICIT_SYMBOL(__main) // FIXME: Don't call it. - line 34: #ifdef HAVE___CMPDI2 // FIXME: unused tools/clang/include/clang/Sema/ParsedTemplate.h (2 lines): - line 153: /// FIXME: Temporarily stores the name of a specialization - line 156: /// FIXME: Temporarily stores the overloaded operator kind. tools/clang/tools/dxrfallbackcompiler/dxcdxrfallbackcompiler.cpp (2 lines): - line 197: // TODO: Stolen from Brandon's code, merge - line 380: // TODO: Lifetime managment? tools/clang/lib/SPIRV/GlPerVertex.cpp (2 lines): - line 27: // TODO: duplication! Same as the one in DeclResultIdMapper.cpp - line 444: // TODO: handle extra large array size? lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp (2 lines): - line 432: /// FIXME: Move to SelectionDAG? - line 779: // FIXME: Handle dbg_values. tools/clang/lib/Frontend/InitPreprocessor.cpp (2 lines): - line 413: // FIXME: Use correct value for C++17. - line 848: // FIXME: This is target-dependent. tools/clang/lib/Tooling/CompilationDatabase.cpp (2 lines): - line 198: /// FIXME: This functionality should probably be made available by - line 262: // FIXME: Emit a warning of some kind? tools/clang/lib/Edit/EditedSource.cpp (2 lines): - line 245: // FIXME: Should use TokenConcatenation to make sure we don't allow stuff like - line 289: // FIXME: Remove newline. include/llvm/MC/MCStreamer.h (2 lines): - line 95: // FIXME: declared here because it is used from - line 372: // FIXME: These emission are non-const because we mutate the symbol to include/llvm/CodeGen/CallingConvLower.h (2 lines): - line 47: // FIXME: Not implemented yet. Code that uses AExt to mean - line 51: // TODO: a subset of the value is in the location. lib/CodeGen/LexicalScopes.cpp (2 lines): - line 150: // FIXME: Should the following dyn_cast be DILexicalBlock? - line 202: // FIXME: Should the following isa be DILexicalBlock? tools/clang/lib/Serialization/ASTCommon.cpp (2 lines): - line 109: // FIXME: These can be defined in one place... except special member - line 138: // FIXME: These are defined in one place, but properties in class extensions tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h (2 lines): - line 28: /// tag kind. TODO: Should support multiple tag kinds. - line 29: // FIXME: This does not use the nice trait macros because it must be accessible tools/clang/include/clang/Analysis/Analyses/Consumed.h (2 lines): - line 76: // FIXME: Add documentation. - line 81: // FIXME: This can be removed when the attr propagation fix for templated include/llvm/IR/User.h (2 lines): - line 144: /// FIXME: As that the number of operands is used to find the start of - line 157: /// FIXME: As that the number of operands is used to find the start of lib/Passes/PassBuilder.cpp (2 lines): - line 287: // FIXME: No verifier support for CGSCC passes! - line 369: // FIXME: Should this routine accept a TargetMachine or require the caller to lib/DxilDia/DxilDiaTable.h (2 lines): - line 107: return hr; // TODO: this leaks prior tables. - line 168: return hr; // TODO: this leaks prior items. utils/FileCheck/FileCheck.cpp (2 lines): - line 461: // FIXME: One easy improvement here is have the regex lib generate a single - line 548: // FIXME: If we wanted to be really friendly we would show why the match lib/IR/Instruction.cpp (2 lines): - line 407: case Instruction::Fence: // FIXME: refine definition of mayReadFromMemory - line 425: case Instruction::Fence: // FIXME: refine definition of mayWriteToMemory tools/clang/lib/AST/Stmt.cpp (2 lines): - line 663: // FIXME: This needs to be translated into the IR string representation. - line 764: // FIXME: Avoid the allocation/copy if at all possible. tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp (2 lines): - line 370: // FIXME: Use constant-folding in CFG construction to simplify this - line 615: // TODO: We should run remove dead bindings here. lib/CodeGen/LiveRangeEdit.cpp (2 lines): - line 180: // FIXME: Targets don't know how to fold subreg uses. - line 303: // FIXME: It would be better to have something like shrinkToUses() for utils/TableGen/FastISelEmitter.cpp (2 lines): - line 646: // FIXME: This should be a PrintError once the x86 target - line 870: // TODO: SignaturesWithConstantForms should be empty here. tools/clang/lib/Sema/CodeCompleteConsumer.cpp (2 lines): - line 259: // FIXME: It would be more efficient to teach Twine to tell us its size and - line 567: // FIXME: Forward declarations of Objective-C classes and protocols tools/clang/tools/dxcompiler/dxcassembler.cpp (2 lines): - line 124: DxcOutputObject::ErrorOutput(CP_UTF8, // TODO Support DefaultTextCodePage - line 144: DxcOutputObject::ErrorOutput(CP_UTF8, // TODO Support DefaultTextCodePage tools/clang/unittests/HLSLTestLib/FileCheckForTest.cpp (2 lines): - line 440: // FIXME: One easy improvement here is have the regex lib generate a single - line 530: // FIXME: If we wanted to be really friendly we would show why the match lib/CodeGen/ShadowStackGCLowering.cpp (2 lines): - line 226: // FIXME: Is this actually dangerous as WritingAnLLVMPass.html claims? Seems - line 322: // FIXME: Account for original alignment. Could fragment the root array. tools/clang/lib/SPIRV/LiteralTypeVisitor.cpp (2 lines): - line 114: // TODO: We can do more to deduce information in OpBitCast. - line 352: // TODO: This method is currently not recursive. We can use recursion if utils/TableGen/SubtargetEmitter.cpp (2 lines): - line 697: // TODO: If ProcModel has a base model (previous generation processor), - line 751: // TODO: If ProcModel has a base model (previous generation processor), include/llvm/MC/MCContext.h (2 lines): - line 26: #include // FIXME: Shouldn't be needed. - line 509: // FIXME: We should really do something about that. tools/clang/lib/CodeGen/CGValue.h (2 lines): - line 89: // FIXME: Aggregate rvalues need to retain information about whether they are - line 493: // FIXME: Alignment? tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp (2 lines): - line 122: // FIXME: Handle (some_union){ some_other_union_val }, which turns into - line 133: // FIXME: Handle LazyCompoundVals? tools/clang/lib/AST/CXXInheritance.cpp (2 lines): - line 321: // FIXME: This is an O(N^2) algorithm, but DPG doesn't see an easy - line 421: // FIXME: Refactor the "is it a nested-name-specifier?" check tools/clang/tools/libclang/CursorVisitor.h (2 lines): - line 99: // FIXME: Eventually remove. This part of a hack to support proper - line 231: // FIXME: ObjCCompatibleAliasDecl requires aliased-class locations. lib/DxrFallback/DxrFallbackCompiler.cpp (2 lines): - line 396: // TODO: It might be worth dropping this from the tests eventually - line 448: // TODO: Avoiding the intrinsic to support the test's use of TraceRayTest unittests/IR/ValueMapTest.cpp (2 lines): - line 177: // TODO: Implement this when someone needs it. - line 197: // FIXME: These tests started failing on Windows. lib/Target/TargetMachine.cpp (2 lines): - line 57: // FIXME: This function needs to go away for a number of reasons: - line 114: // FIXME: what should we do for protected and internal visibility? lib/Support/FileOutputBuffer.cpp (2 lines): - line 50: // FIXME: There is no sys::fs:: api for checking this. - line 51: // FIXME: In posix, you use the access() call to check this. include/llvm/Support/MachO.h (2 lines): - line 1578: // TODO swap: fp_control_t fpu_fcw; - line 1579: // TODO swap: fp_status_t fpu_fsw; lib/CodeGen/CalcSpillWeights.cpp (2 lines): - line 157: // FIXME: we probably shouldn't use floats at all. - line 189: // FIXME: this gets much more complicated once we support non-trivial tools/clang/lib/Analysis/UninitializedValues.cpp (2 lines): - line 711: // now, just assume such a call initializes all variables. FIXME: Only - line 780: // FIXME: Mark the variable as uninitialized whenever its scope is tools/lli/lli.cpp (2 lines): - line 649: // FIXME: Remove this pointless fallback mode which causes tests to "pass" - line 685: // FIXME: argv and envp handling. tools/clang/lib/Lex/MacroInfo.cpp (2 lines): - line 132: // FIXME: Dump locations. - line 217: // FIXME: Dump SourceLocation. include/llvm/Analysis/LazyCallGraph.h (2 lines): - line 100: /// FIXME: This class is named LazyCallGraph in a lame attempt to distinguish - line 295: /// FIXME: We could possibly optimize this quite a bit for cases where the lib/Fuzzer/FuzzerLoop.cpp (2 lines): - line 192: // FIXME: Apply DFSan labels. - line 210: // e.g. test/FullCoverageSetTest.cpp. FIXME: make it scale. tools/clang/lib/AST/StmtProfile.cpp (2 lines): - line 120: // TODO: maybe visit attributes? - line 188: // FIXME: Implement MS style inline asm statement profiler. lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (2 lines): - line 211: // FIXME: Can this happen for floating point types? - line 1761: // TODO: If the input elements are power-two vectors, we could convert this to include/llvm/MC/MCSymbol.h (2 lines): - line 61: // FIXME: Use a PointerInt wrapper for this? - line 66: /// FIXME: We might be able to simplify this by having the asm streamer create lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h (2 lines): - line 102: /* TODO: Temporary for compatibility! */ - line 260: /* TODO: Add Support for not Intel compilers for IA64 */ unittests/ADT/SmallVectorTest.cpp (2 lines): - line 508: // FIXME: This is inefficient, we shouldn't move things into newly allocated - line 569: // FIXME: This is inefficient, we shouldn't move things into newly allocated lib/CodeGen/TailDuplication.cpp (2 lines): - line 276: // FIXME: Should it SSAUpdate job to delete debug instructions - line 491: // There could be duplicate phi source entries. FIXME: Should sdisel tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h (2 lines): - line 263: /// FIXME: Pull out common code with above macro? - line 367: // FIXME: add a matcher for TypeLoc derived classes using its custom casting lib/Analysis/LoopPass.cpp (2 lines): - line 397: // FIXME: Report this to dbgs() only once per function. - line 400: // FIXME: Delete loop from pass manager's queue? tools/clang/utils/analyzer/CmpRuns.py (2 lines): - line 163: # FIXME: Why is this named files, when does it have multiple - line 243: # FIXME: Add fuzzy matching. One simple and possible effective idea would be lib/Support/Triple.cpp (2 lines): - line 345: // FIXME: Do we need to support these? - line 1327: // FIXME: this is invalid for WindowsCE lib/Analysis/InstructionSimplify.cpp (2 lines): - line 3283: // TODO: We could hand off more cases to instsimplify here. - line 4075: if (!isa(C) && // FIXME: Remove ConstantVector. tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp (2 lines): - line 186: // FIXME: Really use a short string. - line 396: // FIXME: handle blocks, which have no name. tools/clang/lib/Parse/RAIIObjectsForParser.h (2 lines): - line 24: // TODO: move ParsingClassDefinition here. - line 25: // TODO: move TentativeParsingAction here. tools/clang/unittests/HLSL/ShaderOpTest.h (2 lines): - line 200: UINT SampleMask = UINT_MAX; // TODO: parse from file - line 201: DXGI_FORMAT RTVFormats[8]; // TODO: parse from file include/llvm/Support/SourceMgr.h (2 lines): - line 207: // FIXME: Twine.str() is not very efficient. - line 213: // FIXME: Twine.str() is not very efficient. lib/MC/MCStreamer.cpp (2 lines): - line 335: // FIXME: Error if there is no matching cfi_remember_state. - line 717: // TODO: keep track of the last subsection so that this symbol appears in the tools/clang/tools/dotnetc/EditorForm.cs (2 lines): - line 668: // TODO: run validation on this shader blob - line 1655: // TODO: consider accepting DXIL in the code editor as well include/llvm/Bitcode/LLVMBitCodes.h (2 lines): - line 57: // FIXME: Remove DEPLIB in 4.0. - line 80: // FIXME: Remove `PARAMATTR_CODE_ENTRY_OLD' in 4.0 tools/clang/lib/Format/BreakableToken.h (2 lines): - line 32: /// FIXME: The interface seems set in stone, so we might want to just pull the - line 226: // FIXME: Revisit the decision to do this; the main reason was to support tools/llvm-objdump/llvm-objdump.cpp (2 lines): - line 341: // TODO: Read implicit addend from section data. - line 1253: // TODO: Extract DWARF dump tool to objdump. lib/IR/AttributeImpl.h (2 lines): - line 85: // FIXME: Remove this! - line 271: // FIXME: This atrocity is temporary. lib/IR/Constants.cpp (2 lines): - line 428: /// FIXME: This really should not be in IR. - line 1334: // FIXME rounding mode needs to be more flexible lib/Support/ConvertUTFWrapper.cpp (2 lines): - line 35: // FIXME: Make the type of the result buffer correct instead of - line 48: // FIXME: Make the type of the result buffer correct instead of lib/CodeGen/AsmPrinter/DebugLocStream.h (2 lines): - line 30: /// FIXME: Do we need all these temp symbols? - line 31: /// FIXME: Why not output directly to the output stream? tools/clang/lib/Sema/SemaCXXScopeSpec.cpp (2 lines): - line 221: // FIXME: The definition might not be visible; complain if it is not. - line 554: // FIXME: Deal with ambiguities cleanly. tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp (2 lines): - line 65: // FIXME: Eventually migrate into its own file, and have it managed by - line 403: // FIXME: What about references? lib/MC/MCAsmInfoDarwin.cpp (2 lines): - line 80: // FIXME: Change this once MC is the system assembler. - line 97: // FIXME: For now keep the previous behavior, AShr, matching the previous tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h (2 lines): - line 104: // FIXME: This should soon be eliminated altogether; clients should deal with - line 278: // FIXME: Do we need to pass ProgramStateManager anymore? tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp (2 lines): - line 217: // FIXME: Cumbersome! Maybe add hook at construction of SVals at start of - line 295: // FIXME: Can ID ever be NULL? lib/CodeGen/StackColoring.cpp (2 lines): - line 16: // TODO: In the future we plan to improve stack coloring in the following ways: - line 513: // FIXME: In order to enable the use of TBAA when using AA in CodeGen, tools/llvm-nm/llvm-nm.cpp (2 lines): - line 140: // FIXME: This option takes exactly two strings and should be allowed anywhere - line 727: // FIXME: should we print 'b'? At the IR level we cannot be sure if this tools/clang/include/clang/Sema/AttributeList.h (2 lines): - line 72: class AttributeList { // TODO: This should really be called ParsedAttribute - line 349: // FIXME: Use a better mechanism to determine this. lib/IR/DebugInfoMetadata.cpp (2 lines): - line 70: // FIXME: This seems completely wrong. - line 369: // FIXME: Should this be looking through bitcasts? tools/clang/include/clang/AST/DeclarationName.h (2 lines): - line 423: // FIXME: this should go away once all DNLocs are properly initialized. - line 440: // FIXME: remove it. tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h (2 lines): - line 254: // TODO: move this back into ThreadSafety.cpp - line 341: // FIXME: we don't always have a self-variable. lib/DxcSupport/FileIOHelper.cpp (2 lines): - line 8: // TODO: consider including an empty blob singleton (possibly UTF-8/16 too). // - line 910: // TODO: implement when we find this codepath internally lib/Transforms/Utils/InlineFunction.cpp (2 lines): - line 989: // TODO: This isn't 100% true. Some personality functions are proper - line 1071: // FIXME: We could register any cloned assumptions instead of clearing the include/llvm/MC/MCSubtargetInfo.h (2 lines): - line 84: /// FIXME: Find a way to stick this in the constructor, since it should only - line 136: // TODO: The number of read advance entries in a class can be significant include/llvm/IR/DebugLoc.h (2 lines): - line 89: /// FIXME: Remove this. Users should use DILocation::get(). - line 108: /// FIXME: Remove this. Users should use DILocation/DILocalScope API to include/llvm/ADT/Twine.h (2 lines): - line 58: /// We maintain a number of invariants on Twine objects (FIXME: Why): - line 354: // FIXME: Unfortunately, to make sure this is as efficient as possible we tools/clang/include/clang/AST/RecordLayout.h (2 lines): - line 32: /// ObjCInterfaceDecl. FIXME - Find appropriate name. - line 122: /// FIXME: This should really use a SmallPtrMap, once we have one in LLVM :) lib/CodeGen/RegAllocGreedy.cpp (2 lines): - line 89: // FIXME: Find a good default for this flag and remove the flag. - line 1943: // FIXME: SplitAnalysis may repair broken live ranges coming from the tools/clang/lib/Driver/Compilation.cpp (2 lines): - line 71: // FIXME: Why are we trying to remove files that we have not created? For - line 77: // FIXME: If this is necessary, we can still try to split tools/clang/lib/Lex/Pragma.cpp (2 lines): - line 243: // FIXME: C++11 does not specify how to handle raw-string-literals here. - line 1435: // TODO: add HLSL-specific pragma handlers include/llvm/Analysis/CGSCCPassManager.h (2 lines): - line 237: // FIXME: This isn't quite correct. We need to handle the case where the - line 469: // FIXME: We need to update the call graph here to account for any deleted lib/Transforms/InstCombine/InstCombineInternal.h (2 lines): - line 167: // FIXME: These members shouldn't be public. - line 184: // FIXME: These can never be null and should be references. lib/IR/Function.cpp (2 lines): - line 285: // FIXME: needed by operator delete - line 503: assert(!STyp->isLiteral() && "TODO: implement literal types"); tools/clang/unittests/HLSLTestLib/D3DReflectionDumper.cpp (2 lines): - line 442: WriteLn("DefaultValue: ", pDefaultValue ? "" : ""); // TODO: Dump DefaultValue - line 535: WriteLn("Flags: ", std::hex, std::showbase, Desc.Flags); // TODO: fxc compiler flags tools/clang/lib/Frontend/DiagnosticRenderer.cpp (2 lines): - line 248: // FIXME: We want submodule granularity here. - line 371: // FIXME: Ugly hack to stop a crash; this code is making bad lib/Transforms/IPO/Inliner.cpp (2 lines): - line 369: // FIXME: All of this logic should be sunk into getInlineCost. It relies on - line 605: // TODO: Can remove if in SCC now. lib/CodeGen/MachineInstr.cpp (2 lines): - line 722: // FIXME: Allow mixed explicit and implicit operands on inline asm. - line 724: // implicit-defs, but they must not be moved around. See the FIXME in tools/clang/lib/AST/ExprClassification.cpp (2 lines): - line 136: // FIXME: Is this wise? Should they get their own kind? - line 143: // FIXME: ObjC++0x might have different rules include/llvm/Analysis/LoopIterator.h (2 lines): - line 37: /// TODO: This could be generalized for any CFG region, or the entire CFG. - line 152: /// TODO: If anyone is interested, we could record preorder numbers here. lib/HLSL/DxilConvergent.cpp (2 lines): - line 68: // TODO: emit warning here. - line 156: // TODO: static indexing cbuffer is fine. tools/clang/lib/Basic/IdentifierTable.cpp (2 lines): - line 225: // FIXME: __declspec isn't really a CUDA extension, however it is required for - line 321: // TODO: Figure out maximum times an identifier had to probe for -stats. tools/clang/lib/Frontend/TextDiagnostic.cpp (2 lines): - line 424: // FIXME: Detect non-ASCII whitespace characters too. - line 450: // FIXME: Detect non-ASCII whitespace characters too. tools/clang/include/clang/Frontend/CompilerInstance.h (2 lines): - line 250: // FIXME: This function should take the stream to write any debugging / - line 253: // FIXME: Eliminate the llvm_shutdown requirement, that should either be part cmake/config-ix.cmake (2 lines): - line 403: # TODO: Check existence of libraries. - line 456: # FIXME: Signal handler return type, currently hardcoded to 'void' tools/clang/lib/Format/ContinuationIndenter.h (2 lines): - line 50: // FIXME: canBreak and mustBreak aren't strictly indentation-related. Find a - line 345: /// FIXME: Come up with a better algorithm instead. lib/Analysis/MemoryLocation.cpp (2 lines): - line 93: // FIXME: This code is duplicated with BasicAliasAnalysis and should be hoisted - line 174: // FIXME: Handle memset_pattern4 and memset_pattern8 also. include/llvm/Analysis/RegionInfoImpl.h (2 lines): - line 491: OS << BB->getName() << ", "; // TODO: remove the last "," - line 495: OS << **I << ", "; // TODO: remove the last ", lib/Object/MachOObjectFile.cpp (2 lines): - line 41: // FIXME: Replace all uses of this function with getStructOrErr. - line 553: // FIXME: Unimplemented. include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h (2 lines): - line 75: // FIXME: This ownership hack only exists because RuntimeDyldELF still - line 88: // FIXME: Remove this as soon as RuntimeDyldELF can apply relocations without tools/clang/include/clang/Basic/IdentifierTable.h (2 lines): - line 99: // FIXME: This is gross. It would be best not to embed specific details - line 112: // FIXME: This is gross. It would be best not to embed specific details lib/MC/WinCOFFStreamer.cpp (2 lines): - line 64: // FIXME: this is identical to the ELF one. - line 277: // TODO: Implement this if you want to emit .comment section in COFF obj files. tools/clang/lib/AST/Mangle.cpp (2 lines): - line 38: // FIXME: For blocks we currently mimic GCC's mangling scheme, which leaves - line 249: // FIXME: We were doing a mangleUnqualifiedName() before, but that's include/llvm/Analysis/IntervalPartition.h (2 lines): - line 17: // TODO: The IntervalPartition class should take a bool parameter that tells - line 75: // TODO: isIrreducible - look for triangle graph. tools/clang/lib/Frontend/CacheTokens.cpp (2 lines): - line 32: // FIXME: put this somewhere else? - line 510: // FIXME: Handle files with non-absolute paths. tools/clang/include/clang/Tooling/CompilationDatabase.h (2 lines): - line 84: /// FIXME: Currently only supports JSON compilation databases, which - line 122: /// FIXME: Add a layer in Tooling that provides an interface to run a tool lib/Analysis/IPA/GlobalsModRef.cpp (2 lines): - line 318: // TODO: Could try some IP mod/ref of the loaded pointer. - line 454: // FIXME: It is completely unclear why this is necessary and not lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h (2 lines): - line 404: // FIXME: Just look up as a function for now. Overly simple of course. - line 414: // FIXME: Just look up as a function for now. Overly simple of course. lib/Transforms/Scalar/LoopRerollPass.cpp (2 lines): - line 712: // FIXME: Add support for negative values. - line 1297: // FIXME: Why do we need this check? lib/Transforms/InstCombine/InstCombineMulDivRem.cpp (2 lines): - line 71: // TODO: Lots more we could do here: - line 1186: if (!isa(Divisor)) // TODO: handle vectors. tools/clang/unittests/Tooling/RewriterTestContext.h (2 lines): - line 60: // FIXME: this code is mostly a duplicate of - line 103: // FIXME: Figure out whether there is a way to get the SourceManger to tools/clang/include/clang/StaticAnalyzer/Core/CheckerRegistry.h (2 lines): - line 17: // FIXME: move this information to an HTML file in docs/. - line 58: // FIXME: The Clang version string is not particularly granular; tools/clang/utils/analyzer/SATestAdd.py (2 lines): - line 66: # TODO: Add an option not to build. - line 67: # TODO: Set the path to the Repository directory. lib/Transforms/IPO/ArgumentPromotion.cpp (2 lines): - line 506: // TODO: This runs the above loop over and over again for dead GEPs - line 796: // TODO: Tell AA about the new values? tools/clang/lib/Serialization/GlobalModuleIndex.cpp (2 lines): - line 209: // FIXME: this doesn't work correctly for module names containing path - line 595: // FIXME: we could read the signature out of the import and validate it. tools/clang/include/clang/AST/Stmt.h (2 lines): - line 72: // FIXME: Verify that this will correctly return a signed distance. - line 1595: // FIXME: If we wanted to, we could allocate all of these in one big array. tools/clang/lib/Rewrite/HTMLRewrite.cpp (2 lines): - line 411: // FIXME: Exclude the optional ud-suffix from the highlighted range. - line 488: // FIXME: This is a huge hack; we reuse the input preprocessor because we want tools/clang/lib/Lex/PPExpressions.cpp (2 lines): - line 15: // FIXME: implement testing for #assert's. - line 409: // FIXME: Handle #assert lib/Transforms/Scalar/Sink.cpp (2 lines): - line 199: // FIXME: Split critical edges if not backedges. - line 238: // FIXME: This should include support for sinking instructions within the include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h (2 lines): - line 51: // FIXME: Use capture-init when we move to C++14. - line 127: // FIXME: We could clean all this up if we had a way to reliably demangle tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp (2 lines): - line 75: // TODO: ignore multiplications by 1, reject if multiplied by 0. - line 104: // TODO: Could push this into the innermost scope where 'e' is tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp (2 lines): - line 178: // FIXME: Use a better -version message? - line 196: // FIXME: Remove this, one day. tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h (2 lines): - line 57: // FIXME: Make these protected again once RegionStoreManager correctly - line 78: // FIXME: Remove the second disjunct when we support symbolic tools/clang/include/clang/AST/Mangle.h (2 lines): - line 96: // FIXME: consider replacing raw_ostream & with something like SmallString &. - line 143: /// TODO: Extend this to internal types by generating names that are unique utils/TableGen/CodeGenRegisters.cpp (2 lines): - line 964: // FIXME: This could just be RegistersByName[name] = register, except that - line 1257: // FIXME: What if ad-hoc aliasing introduces overlaps that aren't represented lib/DebugInfo/DWARF/DWARFDebugFrame.cpp (2 lines): - line 178: // TODO: implement this - line 466: // TODO: For honest DWARF64 support, DataExtractor will have to treat tools/clang/include/clang/Sema/TypoCorrection.h (2 lines): - line 289: // TODO: Expand these to apply to non-keywords or possibly remove them. - line 305: // FIXME: This probably does not return true when both tools/clang/lib/StaticAnalyzer/Core/CheckerRegistry.cpp (2 lines): - line 141: // FIXME: Alphabetical sort puts 'experimental' in the middle. - line 146: // FIXME: Print available packages. lib/CodeGen/TargetSchedule.cpp (2 lines): - line 221: // FIXME: Automatically giving all implicit defs defaultDefLatency is - line 281: // TODO: The following hack exists because predication passes do not tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp (2 lines): - line 94: // FIXME: We should emit a warning here about an unknown inlining kind, - line 128: // FIXME: We should emit a warning here if the value is something other than tools/clang/lib/CodeGen/ABIInfo.h (2 lines): - line 34: // FIXME: All of this stuff should be part of the target interface - line 78: // FIXME: This is a gaping layering violation if we wanted to drop lib/CodeGen/Analysis.cpp (2 lines): - line 364: // call". FIXME: with sufficiently cunning bit-tracking, we could look through - line 497: // FIXME: Decline tailcall if it's not guaranteed and if the block ends in tools/clang/lib/Frontend/FrontendActions.cpp (2 lines): - line 234: // FIXME: This shouldn't happen unless there is a file system race. Is - line 294: // FIXME: Eventually, we could consider asking whether there was just tools/clang/tools/libclang/CIndexHigh.cpp (2 lines): - line 203: // FIXME: For a macro definition make sure that all expansions - line 298: // FIXME: For a macro definition make sure that all expansions lib/Linker/LinkModules.cpp (2 lines): - line 1276: /// FIXME: this creates an asymmetric result: we strip functions from losing - line 1278: /// TODO: Remove this logic once the backend can correctly determine canonical tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp (2 lines): - line 153: // FIXME: Implement the Not operator to take a single matcher instead of a - line 332: // FIXME: There is still room for improvement, but it would require copying a lib/Transforms/Scalar/StructurizeCFG.cpp (2 lines): - line 58: /// TODO: Maybe move into common code - line 779: // TODO: The dominator check is too strict tools/llvm-objdump/COFFDump.cpp (2 lines): - line 435: // FIXME: Output exception handler data - line 437: // FIXME: Output chained unwind info tools/clang/include/clang/Driver/ToolChain.h (2 lines): - line 295: /// FIXME: this really belongs on some sort of DeploymentTarget abstraction - line 302: /// FIXME: this really belongs on some sort of DeploymentTarget abstraction lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h (2 lines): - line 104: // FIXME: For now, assume ARM mode. - line 122: // FIXME: If the destination is a Thumb function (and the instruction lib/CodeGen/AsmPrinter/WinException.cpp (2 lines): - line 547: // FIXME: Should this be using FuncInfo.HandlerBaseState? - line 616: // FIXME: Calculate. lib/Transforms/Scalar/LoopDistribute.cpp (2 lines): - line 100: // FIXME: We currently don't use control-dependence but simply include all - line 580: // FIXME: I believe that this could use copy_if if the Inst reference could utils/TableGen/DAGISelMatcherGen.cpp (2 lines): - line 423: // TODO: This redundantly records nodes with both glues and chains. - line 568: // TODO: Complex patterns can't have output glues, if they did, we'd want tools/clang/include/clang/AST/TemplateBase.h (2 lines): - line 283: // FIXME: Provide a way to read the integral data without copying the value. - line 368: // FIXME: We'd like to just use the qualifier in the TemplateName, tools/clang/lib/Format/WhitespaceManager.cpp (2 lines): - line 83: // FIXME: We still need to take this change in account to properly - line 123: // FIXME: The last token is currently not always an eof token; in those include/llvm/Support/COFF.h (2 lines): - line 508: // FIXME: This should be DllCharacteristics to match the COFF spec. - line 515: // FIXME: This should be NumberOfRvaAndSizes to match the COFF spec. include/llvm/Support/Compiler.h (2 lines): - line 145: // FIXME: Provide this for PE/COFF targets. - line 342: // FIXME: Move this to a private config.h as it's not usable in public headers. projects/dxilconv/lib/DxilConvPasses/ScopeNestedCFG.cpp (2 lines): - line 1165: //TODO: during final testing consider to remove. - line 1201: //TODO: during final testing consider to remove. tools/clang/lib/Format/FormatToken.cpp (2 lines): - line 40: // FIXME: This is copy&pasted from Sema. Put it in a common place and remove - line 146: // FIXME: At some point we might want to do this for other lists, too. tools/clang/tools/diagtool/TreeView.cpp (2 lines): - line 52: // FIXME: This feels like a hack. - line 171: // FIXME: Handle other special warning flags, like -pedantic. lib/CodeGen/RegisterCoalescer.cpp (2 lines): - line 389: // FIXME: Coalescer should support subregs symmetrically. - line 755: // FIXME These don't have an instruction index. Not clear we have enough lib/CodeGen/LiveInterval.cpp (2 lines): - line 1357: // FIXME: This could be coincidental. Should we really check for a tied - line 1414: // TODO: do not cheat anymore by simply cleaning all subranges include/llvm/Object/COFF.h (2 lines): - line 115: // FIXME: This should be DllCharacteristics. - line 122: // FIXME: This should be NumberOfRvaAndSizes. include/llvm/ADT/SmallVector.h (2 lines): - line 758: // FIXME: don't do this if they're efficiently moveable. - line 817: // FIXME: this may not actually make any sense if we can efficiently move include/llvm/Analysis/LibCallSemantics.h (2 lines): - line 41: // TODO: Flags: isContextSensitive etc. - line 68: /// TODO: Constant folding function: Constant* vector -> Constant*. lib/Transforms/ObjCARC/ARCInstKind.cpp (2 lines): - line 174: // TODO: Make this into a covered switch. - line 214: // TODO: Expand this into a covered switch. There is a lot more here. lib/CodeGen/AsmPrinter/DIE.cpp (2 lines): - line 247: // FIXME: Is there a better way to do this? - line 451: assert(!DD->useSplitDwarf() && "TODO: dwo files can't have relocations."); utils/lit/lit/formats/base.py (2 lines): - line 36: # FIXME: Refactor into generic test for running some command on a directory - line 79: # FIXME: Hack? lib/Transforms/InstCombine/InstCombineAndOrXor.cpp (2 lines): - line 1421: // TODO: Make this recursive; it's a little tricky because an arbitrary - line 2433: // TODO: Make this recursive; it's a little tricky because an arbitrary lib/Transforms/IPO/Internalize.cpp (2 lines): - line 174: // FIXME: Shouldn't this just filter on llvm.metadata section?? - line 185: // FIXME: We should probably add this (and the __stack_chk_guard) via some include/llvm/Support/YAMLParser.h (2 lines): - line 259: /// TODO: Consider making this not a child of Node. - line 359: // TODO: support skipping from the middle of a parsed collection ;/ lib/CodeGen/ScoreboardHazardRecognizer.cpp (2 lines): - line 138: // stage is occupied. FIXME it would be more accurate to find the - line 198: // stage is occupied. FIXME it would be more accurate to reserve include/llvm/IR/Attributes.h (2 lines): - line 381: // FIXME: Remove this. - line 567: // FIXME: Remove this in 4.0. tools/clang/unittests/AST/SourceLocationTest.cpp (2 lines): - line 13: // FIXME: In the long-term, when we test more than source locations, we may - line 29: // FIXME: Pull the *Verifier tests into their own test file. tools/clang/lib/Rewrite/TokenRewriter.cpp (2 lines): - line 58: // FIXME: This is horrible, we should use our own list or something to avoid - line 93: // TODO: Form a whole lexer around this and relex the token! For now, just tools/clang/include/clang/AST/ASTTypeTraits.h (2 lines): - line 257: /// FIXME: Implement comparsion for other node types (currently - line 269: // FIXME: Implement for other types. include/llvm/Analysis/AssumptionCache.h (2 lines): - line 30: // FIXME: Replace this brittle forward declaration with the include of the new - line 86: /// FIXME: We should replace this with pointee_iterator> lib/CodeGen/AsmPrinter/EHStreamer.cpp (2 lines): - line 178: // FIXME: Determine if there's a way to say that `F' is the callee or - line 425: // FIXME: When (3) is actually implemented, we'll have to emit the stubs tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp (2 lines): - line 121: // FIXME: We need a more general way of getting the O_CREAT value. - line 212: // FIXME: Eventually these should be rolled into the MallocChecker, but right now tools/clang/lib/Sema/SemaDXR.cpp (2 lines): - line 217: for (auto &Element : Block) { // TODO: reverse iterate? - line 868: for (auto Element : *Parent) { // TODO: reverse iterate? utils/lit/lit/TestingConfig.py (2 lines): - line 147: # FIXME: This should really only be suite in test suite config - line 151: # FIXME: This should really only be suite in test suite config lib/Analysis/LazyCallGraph.cpp (2 lines): - line 223: // FIXME: We can get this pruning behavior even after the incremental SCC - line 287: // FIXME: This operation currently creates ordering stability problems lib/TableGen/TGParser.cpp (2 lines): - line 1277: // FIXME: The following two loops would not be duplicated - line 2435: // FIXME This is bad but the ownership transfer to caller is pretty messy. tools/clang/lib/CodeGen/CGStmtOpenMP.cpp (2 lines): - line 544: // TODO: Update lastprivates if the SeparateIter flag is true. - line 1580: // TODO: emit code for untied tasks. lib/Analysis/TypeBasedAliasAnalysis.cpp (2 lines): - line 107: // TODO: The current metadata format doesn't support struct - line 409: // TODO: We need to check if AccessType of TagA encloses AccessType of lib/HLSL/DxilSimpleGVNHoist.cpp (2 lines): - line 259: // TODO: make buffer/texture load on srv safe. - line 535: // TODO: hoist operands. lib/MC/WinCOFFObjectWriter.cpp (2 lines): - line 698: // FIXME: Add a specification reference if available. - line 783: // FIXME: Can anyone explain what this does other than adjust for the size lib/Support/Unix/Signals.inc (2 lines): - line 342: // FIXME: Subtract necessary number from StackTrace entries to turn return addresses - line 479: // FIXME: When we move to C++11, use %t length modifier. It's not in tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp (2 lines): - line 154: // FIXME: Remove respondsToCallback from CheckerContext; - line 219: // FIXME: This has all the same signatures as CheckObjCMessageContext. tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp (2 lines): - line 168: STRINGIFY_CODE(MODULE_CODE, DEPLIB) // FIXME: Remove in 4.0 - line 178: // FIXME: Should these be different? include/llvm/CodeGen/FunctionLoweringInfo.h (1 line): - line 137: /// TODO: This isn't per-function state, it's per-basic-block state. But lib/Transforms/Instrumentation/DataFlowSanitizer.cpp (1 line): - line 305: // FIXME: Need to track down the register allocator issue which causes poor tools/clang/include/clang/SPIRV/SpirvContext.h (1 line): - line 183: // TODO: Replace uint32_t with an enum for encoding. tools/clang/lib/CodeGen/CGCXX.cpp (1 line): - line 158: // FIXME: An extern template instantiation will create functions with lib/CodeGen/LiveRangeCalc.cpp (1 line): - line 182: // FIXME: This would be a lot easier if tied early-clobber uses also lib/Analysis/DependenceAnalysis.cpp (1 line): - line 3331: // FIXME: we should record the bounds SrcSizes[i] and DstSizes[i] that the lib/Support/Windows/Signals.inc (1 line): - line 460: // FIXME: open files cannot be deleted. lib/CodeGen/LLVMTargetMachine.cpp (1 line): - line 48: // FIXME: Having an MCSubtargetInfo on the target machine is a hack due lib/Transforms/Scalar/LoopRotation.cpp (1 line): - line 453: // FIXME: Provide TLI, DT, AC to SimplifyInstruction. include/llvm/Object/RelocVisitor.h (1 line): - line 49: // TODO: Should handle multiple applied relocations via either passing in the tools/clang/tools/libclang/CXString.cpp (1 line): - line 85: // FIXME: This is doing a one past end read, and should be removed! For memory lib/CodeGen/ShrinkWrap.cpp (1 line): - line 206: // TODO: Handle regmask more accurately. include/llvm/ExecutionEngine/RTDyldMemoryManager.h (1 line): - line 51: // FIXME: As the RuntimeDyld fills out, additional routines will be needed tools/clang/tools/dxcompiler/dxcshadersourceinfo.h (1 line): - line 25: // TODO: Move this type to its own library. tools/clang/unittests/AST/DeclTest.cpp (1 line): - line 53: // FIXME: Once this test starts breaking we can test APValue::needsCleanup tools/clang/include/clang/Basic/LLVM.h (1 line): - line 49: // TODO: DenseMap, ... tools/clang/include/clang/Analysis/AnalysisContext.h (1 line): - line 344: // FIXME: Come up with a more type-safe way to model context-sensitivity. include/llvm/Object/MachO.h (1 line): - line 247: // TODO: Would be useful to have an iterator based version utils/llvm-build/llvmbuild/componentinfo.py (1 line): - line 188: # FIXME: We need to get the prefix information from an explicit project tools/clang/lib/AST/CommentLexer.cpp (1 line): - line 471: // FIXME: It would be better to scan the text once, finding either the block include/llvm/ADT/Statistic.h (1 line): - line 62: // FIXME: This function and all those that follow carefully use an tools/clang/include/clang/AST/DeclGroup.h (1 line): - line 28: // FIXME: Include a TypeSpecifier object. lib/Support/Hashing.cpp (1 line): - line 26: // FIXME: Use atomic operations here so that there is no data race. tools/clang/tools/dxcompiler/dxcompilerobj.cpp (1 line): - line 1358: // TODO: consider lib/DXIL/DxilCounters.cpp (1 line): - line 315: // TODO: More sophisticated analysis to separate dynamic from static branching? tools/clang/include/clang/Basic/FileManager.h (1 line): - line 75: // FIXME: this is here to allow putting FileEntry in std::map. Once we have tools/clang/lib/Headers/arm_acle.h (1 line): - line 221: * FIXME: Change guard to their corrosponding __ARM_FEATURE flag when Q flag lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp (1 line): - line 406: // FIXME: What if the operand isn't an MBB, report error? tools/clang/include/clang/Frontend/Utils.h (1 line): - line 76: // FIXME: Migrate DependencyFileGen, DependencyGraphGen, ModuleDepCollectory to lib/Transforms/Utils/LoopUnrollRuntime.cpp (1 line): - line 301: // to be an int value (allowing a pointer type is a TODO item) cmake/modules/CheckAtomic.cmake (1 line): - line 41: ## TODO: This define is only used for the legacy atomic operations in lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h (1 line): - line 77: // FIXME: It seems this value needs to be adjusted by 4 for an effective include/llvm/MC/MCMachObjectWriter.h (1 line): - line 194: // FIXME: We really need to improve the relocation validation. Basically, we tools/clang/include/clang/Analysis/Analyses/Dominators.h (1 line): - line 23: // FIXME: There is no good reason for the domtree to require a print method tools/clang/lib/Headers/x86intrin.h (1 line): - line 78: /* FIXME: LWP */ tools/clang/tools/dxil2spv/dxil2spvmain.cpp (1 line): - line 29: // TODO: The current implementation parses a DXIL file but does not yet produce tools/clang/tools/dxcompiler/dxcvalidator.cpp (1 line): - line 211: DxcOutputObject::ErrorOutput(CP_UTF8, // TODO Support DefaultTextCodePage lib/Transforms/IPO/BarrierNoopPass.cpp (1 line): - line 16: // FIXME: This is a huge HACK. This should be removed when the pass manager's tools/clang/lib/Sema/SemaCUDA.cpp (1 line): - line 133: // TODO: this shouldn't happen, really. Methods cannot be marked __global__. lib/CodeGen/SjLjEHPrepare.cpp (1 line): - line 336: // FIXME: Spilling this way is overkill, as it forces all uses of lib/IR/DataLayout.cpp (1 line): - line 238: // FIXME: remove this on LLVM 4.0. tools/clang/lib/Driver/InputInfo.h (1 line): - line 23: // FIXME: The distinction between filenames and inputarg here is tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp (1 line): - line 248: // TODO: Cache the results. include/llvm/ExecutionEngine/ExecutionEngine.h (1 line): - line 102: // FIXME: There is no particular need the entire map needs to be include/llvm/MC/MCInstrItineraries.h (1 line): - line 222: // FIXME: This assumes one cycle benefit for every pipeline forwarding. lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h (1 line): - line 377: // FIXME: There must be a better way to do this then to check and fix the include/llvm/LTO/LTOModule.h (1 line): - line 161: // FIXME: it only parses "Linker Options" metadata at the moment lib/CodeGen/RegisterClassInfo.cpp (1 line): - line 95: // FIXME: Once targets reserve registers instead of removing them from the tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp (1 line): - line 399: // TODO: Clean up the state. utils/hct/hcthelp.cmd (1 line): - line 12: echo hcttodo - enumerates TODO comments include/llvm/CodeGen/AsmPrinter.h (1 line): - line 350: /// FIXME: privatize to AsmPrinter. projects/dxilconv/include/DxilConvPasses/ScopeNestIterator.h (1 line): - line 94: typedef ScopeNestEvent::BlockTy Block; // TODO: make this a template. include/llvm/Transforms/Utils/BasicBlockUtils.h (1 line): - line 18: // FIXME: Move to this file: BasicBlock::removePredecessor, BB::splitBasicBlock include/llvm/CodeGen/PBQP/Graph.h (1 line): - line 596: // TODO: Can this be for-each'd? tools/clang/include/clang/Serialization/ASTReader.h (1 line): - line 63: class ASTUnit; // FIXME: Layering violation and egregious hack. tools/yaml2obj/yaml2obj.cpp (1 line): - line 35: // TODO: The "right" way to tell what kind of object file a given YAML file include/llvm/ExecutionEngine/Orc/IndirectionUtils.h (1 line): - line 71: // FIXME: Also raise an error in the Orc error-handler when we finally have lib/Support/Unix/Memory.inc (1 line): - line 338: // FIXME: Can we safely always call this for __GNUC__ everywhere? tools/dxexp/dxexp.cpp (1 line): - line 138: // TODO: Place under new version once available tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h (1 line): - line 570: // TODO: Should we allow multiple diagnostics? lib/Support/LockFileManager.cpp (1 line): - line 276: // FIXME: Should we hook in to system APIs to get a notification when the tools/clang/tools/libclang/CIndexInclusionStack.cpp (1 line): - line 70: // FIXME: We should have a function to construct CXFiles. include/llvm/CodeGen/GCs.h (1 line): - line 21: /// FIXME: Collector instances are not useful on their own. These no longer tools/clang/utils/TableGen/NeonEmitter.cpp (1 line): - line 2350: // FIXME: This loop could be made faster, but it's fast enough for now. include/llvm/Support/TargetRegistry.h (1 line): - line 542: // FIXME: Make this a namespace, probably just move all the Register* lib/AsmParser/LLLexer.cpp (1 line): - line 532: KEYWORD(deplibs); // FIXME: Remove in 4.0. tools/clang/lib/AST/NestedNameSpecifier.cpp (1 line): - line 675: // FIXME: After copying the source-location information, should we free tools/clang/tools/libclang/CXType.cpp (1 line): - line 419: // FIXME: Template type parameters! lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (1 line): - line 150: // FIXME: Provide TLI, DT, AT to SimplifyInstruction. lib/Analysis/LoopInfo.cpp (1 line): - line 674: // FIXME: Currently we create a LoopInfo from scratch for every function. include/llvm/ADT/SmallBitVector.h (1 line): - line 32: // TODO: In "large" mode, a pointer to a BitVector is used, leading to an tools/clang/lib/AST/NSAPI.cpp (1 line): - line 510: // FIXME: Check whether the relevant module macros are visible. tools/clang/lib/Parse/ParseTemplate.cpp (1 line): - line 690: // FIXME: The type should probably be restricted in some way... Not all tools/clang/lib/ARCMigrate/TransformActions.cpp (1 line): - line 28: /// FIXME: "Transactional" rewrites support should be baked in the Rewriter. tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp (1 line): - line 58: // FIXME: Refactor into StoreManager itself? lib/Analysis/PHITransAddr.cpp (1 line): - line 419: // FIXME: This code works, but it is unclear that we actually want to insert include/llvm/CodeGen/PBQP/ReductionRules.h (1 line): - line 144: // TODO: Try to normalize newly added/modified edge. utils/hct/cmdtestfiles/bom-main-utf8.hlsl (1 line): - line 7: // TODO: Add support for Big Endian and UTF-32 lib/CodeGen/SelectionDAG/StatepointLowering.h (1 line): - line 77: // TODO: Should add consistency tracking to ensure we encounter lib/Transforms/Scalar/BDCE.cpp (1 line): - line 379: // FIXME: In theory we could substitute undef here instead of zero. include/llvm/MC/MCParser/MCAsmLexer.h (1 line): - line 102: // FIXME: Don't compute this in advance, it makes every token larger, and is tools/clang/lib/StaticAnalyzer/Checkers/ClangCheckers.cpp (1 line): - line 13: // FIXME: This is only necessary as long as there are checker registration tools/clang/lib/Sema/SemaStmtAsm.cpp (1 line): - line 602: // FIXME: Handle IndirectFieldDecl? tools/clang/include/clang/SPIRV/SpirvBasicBlock.h (1 line): - line 142: /// TODO: There can be multiple DebugScope instructions in a basic block. lib/DxilDia/DxilDiaSymbolManager.h (1 line): - line 90: // TODO: the live range information assumes structured dxil - which should hold include/llvm-c/lto.h (1 line): - line 522: * FIXME: This doesn't really belong here. tools/clang/include/clang/AST/ExprObjC.h (1 line): - line 554: // FIXME: Maybe we should store the property identifier here, utils/TableGen/CodeGenSchedule.cpp (1 line): - line 50: // TODO: Since this is a prefix match, perform a binary search over the tools/clang/unittests/ASTMatchers/ASTMatchersTest.h (1 line): - line 243: // FIXME: Find better names for these functions (or document what they lib/DXIL/DxilModuleHelper.cpp (1 line): - line 97: // TODO: add detail error in DxilMDHelper. include/dxc/DXIL/DxilCompType.h (1 line): - line 83: /// TODO: decide if we should distinguish between signed utils/hct/cmdtestfiles/bom-main-ascii.hlsl (1 line): - line 7: // TODO: Add support for Big Endian and UTF-32 tools/clang/tools/diagtool/ShowEnabledWarnings.cpp (1 line): - line 111: // FIXME: It would be very nice to print which flags are turning on which tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h (1 line): - line 489: // FIXME: Get rid of GRBugReporter. It's the wrong abstraction. tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp (1 line): - line 95: // FIXME: Handle multi-dimensional VLAs. lib/Transforms/Utils/ModuleUtils.cpp (1 line): - line 55: // FIXME: Drop support for the two element form in LLVM 4.0. include/llvm/ADT/DeltaAlgorithm.h (1 line): - line 39: // FIXME: Use a decent data structure. lib/Bitcode/Writer/ValueEnumerator.cpp (1 line): - line 341: // TODO: Move this to ValueEnumerator::EnumerateOperandType() once bitcode tools/clang/include/clang/Serialization/ContinuousRangeMap.h (1 line): - line 122: // FIXME: we should not allow any duplicate keys, but there are a lot of lib/CodeGen/MachineRegionInfo.cpp (1 line): - line 49: // TODO: Slow. Should only be enabled if -stats is used. lib/IR/GCOV.cpp (1 line): - line 682: // FIXME: There is no way to detect calls given current instrumentation. tools/clang/tools/clang-format/clang-format-sublime.py (1 line): - line 56: # FIXME: Without the 10ms delay, the viewport sometimes jumps. include/llvm/MC/MCExpr.h (1 line): - line 302: // FIXME: Remove this bit. lib/Analysis/BranchProbabilityInfo.cpp (1 line): - line 581: // FIXME: Compare against a static "hot" BranchProbability. include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h (1 line): - line 91: // FIXME: Remove this as soon as RuntimeDyldELF can apply relocations without lib/Support/Windows/Watchdog.inc (1 line): - line 14: // TODO: implement. lib/Support/Host.cpp (1 line): - line 446: // FIXME: this poorly matches the generated SubtargetFeatureKV table. There include/llvm/IR/GlobalVariable.h (1 line): - line 75: // FIXME: needed by operator delete lib/DxilDia/DxilDiaSession.cpp (1 line): - line 186: // TODO: properly support compareFlags. tools/clang/unittests/SPIRV/StringTest.cpp (1 line): - line 83: // TODO: Add more ModuleBuilder tests lib/Transforms/Utils/AddDiscriminators.cpp (1 line): - line 210: // FIXME: Calculate the discriminator here, based on local information, tools/clang/lib/AST/TypeLoc.cpp (1 line): - line 190: // FIXME: Currently QualifiedTypeLoc does not have a source range include/llvm/Analysis/LoopInfo.h (1 line): - line 45: // FIXME: Replace this brittle forward declaration with the include of the new tools/clang/lib/Driver/Types.cpp (1 line): - line 210: // FIXME: Why don't we just put this list in the defs file, eh. tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp (1 line): - line 117: // FIXME: The semantics of the return result is unclear to me... include/llvm/Analysis/BranchProbabilityInfo.h (1 line): - line 127: // TODO: DEFAULT_WEIGHT makes sense during static predication, when none of lib/Support/Windows/Program.inc (1 line): - line 66: PathExts.push_back(".exe"); // FIXME: This must be in %PATHEXT%. include/dxc/HLSL/HLResource.h (1 line): - line 23: // TODO: this does not belong here. QQQ tools/clang/lib/AST/ParentMap.cpp (1 line): - line 72: // FIXME: This isn't correct; it assumes that multiple OpaqueValueExprs lib/CodeGen/AsmPrinter/DwarfStringPool.cpp (1 line): - line 70: unsigned size = 4; // FIXME: DWARF64 is 8. tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp (1 line): - line 202: // TODO: Using implicit property decl. lib/Transforms/Instrumentation/GCOVProfiling.cpp (1 line): - line 710: // TODO: support invoke, threads. We rely on the fact that nothing can modify tools/clang/lib/ARCMigrate/ObjCMT.cpp (1 line): - line 121: // FIXME: StringSet should have insert(iter, iter) to use here. include/llvm/ADT/DAGDeltaAlgorithm.h (1 line): - line 44: // FIXME: Use a decent data structure. tools/clang/unittests/HLSL/DxilModuleTest.cpp (1 line): - line 300: // TODO: Enable this test when precise metadata is inserted for Gis. tools/clang/lib/Frontend/ASTMerge.cpp (1 line): - line 28: // FIXME: This is a hack. We need a better way to communicate the lib/IR/Globals.cpp (1 line): - line 69: // FIXME: we should also be able to handle: include/llvm/MC/MCObjectWriter.h (1 line): - line 178: // TODO: this version may need to go away once all fragment contents are include/llvm/Analysis/ScalarEvolution.h (1 line): - line 988: /// FIXME: We could derive the result of steps 1 and 2 from a description of lib/ExecutionEngine/Interpreter/Interpreter.h (1 line): - line 134: // FIXME: not implemented. include/llvm/CodeGen/ISDOpcodes.h (1 line): - line 419: // FIXME: The SIGN_EXTEND_INREG node isn't specifically limited to tools/clang/unittests/Tooling/RecursiveASTVisitorTestTypeLocVisitor.cpp (1 line): - line 84: // FIXME: It would be nice to have information about subtypes of invalid type tools/clang/tools/diagtool/DiagnosticNames.cpp (1 line): - line 28: // FIXME: Is it worth having two tables, especially when this one can get tools/clang/lib/Basic/DiagnosticIDs.cpp (1 line): - line 430: // TODO: Can a null severity really get here? lib/CodeGen/AsmPrinter/DwarfUnit.h (1 line): - line 277: // FIXME: Should be reformulated in terms of addComplexAddress. tools/clang/include/clang/AST/Redeclarable.h (1 line): - line 56: // FIXME: 'template' is required on the next line due to an include/llvm/Analysis/BlockFrequencyInfoImpl.h (1 line): - line 761: /// of TODO list for the model with diminishing returns, to be completed as lib/DxrFallback/Reducibility.cpp (1 line): - line 222: // TODO: Only 1) is implemented below and it isn't checking for definition in N utils/hct/CodeTags.py (1 line): - line 34: TODO: tools/clang/lib/Format/FormatToken.h (1 line): - line 213: // FIXME: Come up with a 'cleaner' concept. utils/update_llc_test_checks.py (1 line): - line 109: # FIXME: We should use multiple check prefixes to common check lines. For include/dxc/DxrFallback/DxrFallbackCompiler.h (1 line): - line 65: // TODO: Ideally we would run this after inlining everything at the end of compile. tools/clang/include/clang/Sema/Initialization.h (1 line): - line 1070: // FIXME: It isn't clear whether this should ever be needed; lib/DXIL/DxilOperations.cpp (1 line): - line 913: // TODO: validate the exist type match types if needed. tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp (1 line): - line 228: // TODO: Identify the leaked file descriptor. lib/Transforms/Scalar/LoadCombine.cpp (1 line): - line 157: // FIXME: We may want to handle this case. lib/ExecutionEngine/Orc/IndirectionUtils.cpp (1 line): - line 78: // FIXME: Use a more robust uniquing scheme. (This may blow up if the user include/llvm/CodeGen/SelectionDAGNodes.h (1 line): - line 947: /// TODO: This data structure should be shared by the IR optimizer and the utils/TableGen/CodeGenInstruction.cpp (1 line): - line 546: // FIXME: What other attributes should we check here? Identical tools/clang/include/clang/Basic/DiagnosticIDs.h (1 line): - line 137: // FIXME: Replace this function with a create-only facilty like tools/clang/lib/Format/TokenAnnotator.h (1 line): - line 139: // FIXME: Can/should this be done in the UnwrappedLineParser? unittests/IR/ConstantsTest.cpp (1 line): - line 255: // FIXME: getGetElementPtr() actually creates an inbounds ConstantGEP, lib/Support/Debug.cpp (1 line): - line 161: // TODO: Add a handler for SIGUSER1-type signals so the user can tools/clang/lib/Sema/IdentifierResolver.cpp (1 line): - line 133: // FIXME: If D is a local extern declaration, this check doesn't make sense; lib/IR/DebugLoc.cpp (1 line): - line 51: // FIXME: Add a method on \a DILocation that does this work. lib/LTO/LTOModule.cpp (1 line): - line 507: // FIXME: This is trying to take care of module ASM like this: unittests/IR/LegacyPassManagerTest.cpp (1 line): - line 185: // FIXME: PR4112 tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp (1 line): - line 13: // FIXME: What's currently in BasicObjCFoundationChecks.cpp should be migrated tools/clang/include/clang/Tooling/Core/Replacement.h (1 line): - line 140: /// FIXME: Change to a vector and deduplicate in the RefactoringTool. lib/HLSL/DxilPreparePasses.cpp (1 line): - line 1463: // TODO: only check operand which used for gradient calculation. lib/Transforms/Scalar/MergedLoadStoreMotion.cpp (1 line): - line 67: //===----------------------- TODO -----------------------------------------===// tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp (1 line): - line 223: // FIXME: Better analysis requires IPA for wrappers. tools/clang/lib/Tooling/ArgumentsAdjusters.cpp (1 line): - line 28: // FIXME: Remove options that generate output. tools/clang/lib/SPIRV/EmitVisitor.cpp (1 line): - line 2091: // TODO: The ordering of the 2 words depends on the endian-ness of the lib/CodeGen/LiveDebugVariables.cpp (1 line): - line 942: // FIXME: Translate SubIdx to a stackslot offset. tools/clang/lib/Headers/xmmintrin.h (1 line): - line 678: /* FIXME: We have to #define this because "sel" must be a constant integer, and tools/llvm-readobj/COFFDumper.cpp (1 line): - line 488: // FIXME: Add more offset correctness checks. lib/Support/APInt.cpp (1 line): - line 641: // FIXME: base 36 include/dxc/DxilRootSignature/DxilRootSignature.h (1 line): - line 126: // TODO: make these names consistent with code convention tools/clang/include/clang/Frontend/DiagnosticRenderer.h (1 line): - line 44: /// FIXME: Sink the recursive printing of template instantiations into this tools/clang/unittests/SPIRV/SpirvTypeTest.cpp (1 line): - line 168: // TODO: Add tests for HybridTypes. include/llvm/Support/TargetSelect.h (1 line): - line 64: // FIXME: Remove this, clients should do it. tools/clang/tools/driver/driver.cpp (1 line): - line 442: // FIXME: Driver shouldn't take extra initial argument. tools/clang/include/clang/Basic/VirtualFileSystem.h (1 line): - line 43: bool IsVFSMapped; // FIXME: remove when files support multiple names lib/TableGen/Record.cpp (1 line): - line 944: // TODO: Process arg names utils/lit/MANIFEST.in (1 line): - line 1: include TODO lit.py tools/clang/include/clang/Tooling/JSONCompilationDatabase.h (1 line): - line 68: /// FIXME: Currently FilePath must be an absolute path inside the tools/clang/include/clang/Sema/Template.h (1 line): - line 392: /// FIXME: Verify that this is needed. include/llvm/Object/ELFObjectFile.h (1 line): - line 846: // FIXME: Proper error handling. include/llvm/CodeGen/SelectionDAG.h (1 line): - line 1071: // FIXME: This should get its info from the td file, so that we can include tools/clang/utils/ABITest/TypeGen.py (1 line): - line 5: # TODO: include/llvm/CodeGen/SelectionDAGISel.h (1 line): - line 99: /// FIXME: This is a static member function because the MSP430/X86 include/dxc/DXIL/DxilFunctionProps.h (1 line): - line 98: // TODO: Should we have an unmangled name here for ray tracing shaders? tools/clang/unittests/AST/DeclPrinterTest.cpp (1 line): - line 753: // TODO: should we print "virtual"? include/llvm/IR/LegacyPassManagers.h (1 line): - line 264: /// FIXME: This is an egregious hack because querying the pass registry is tools/clang/lib/CodeGen/CGObjCGNU.cpp (1 line): - line 2459: // FIXME: We're generating redundant loads and stores here! tools/clang/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp (1 line): - line 19: // FIXME: fuzz more things: different styles, different style features. lib/CodeGen/LiveVariables.cpp (1 line): - line 631: // FIXME: LiveIntervals will be updated to remove its dependence on include/llvm/ADT/StringMap.h (1 line): - line 239: // FIXME: Implement copy operations if/when they're needed. tools/clang/include/clang/Basic/TargetInfo.h (1 line): - line 625: // FIXME: These should return a real error instead of just true/false. tools/clang/lib/Analysis/CocoaConventions.cpp (1 line): - line 76: // FIXME: We can memoize here if this gets too expensive. include/llvm/CodeGen/ScheduleHazardRecognizer.h (1 line): - line 50: /// FIXME: remove this once MachineScheduler is the only client. utils/hct/hcttest-system-values.py (1 line): - line 184: # TODO: Fill in the correct error pattern include/llvm/Analysis/RegionInfo.h (1 line): - line 586: // FIXME: Even a const_iterator returns a non-const BasicBlock pointer. include/llvm/IR/Dominators.h (1 line): - line 34: // FIXME: Replace this brittle forward declaration with the include of the new utils/lit/lit/discovery.py (1 line): - line 149: # FIXME: This doesn't belong here? include/llvm/IR/Statepoint.h (1 line): - line 306: /// TODO: This should likely be refactored to resememble the wrappers in include/llvm/Target/TargetMachine.h (1 line): - line 138: // FIXME: Remove TargetOptions that affect per-function code generation tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp (1 line): - line 63: // FIXME: This is just a wrapper around throwing an exception. tools/llvm-cxxdump/llvm-cxxdump.cpp (1 line): - line 353: // FIXME: Do something with these! lib/HLSL/DxilLegalizeSampleOffsetPass.cpp (1 line): - line 117: // TODO: determine whether values are actually loop dependent, not just in a loop tools/clang/unittests/HLSLHost/HLSLHost.cpp (1 line): - line 840: // TODO: implement lib/Support/CommandLine.cpp (1 line): - line 765: // FIXME: If a nested response file uses a relative path, is it relative to unittests/CodeGen/DIEHashTest.cpp (1 line): - line 479: // FIXME: This seems to be a bug in the DWARF type hashing specification that projects/dxilconv/include/DxilConvPasses/ScopeNest.h (1 line): - line 62: typedef const BasicBlock BlockTy; // TODO: make this a template so we can have const and non-const iterators. tools/clang/include/clang/Driver/Tool.h (1 line): - line 105: /// FIXME: When GNU tools learn how to parse UTF16 on Windows, we should tools/clang/unittests/Format/FormatTestJava.cpp (1 line): - line 487: // FIXME: String literal breaking is currently disabled for Java and JS, as it include/llvm/DebugInfo/DWARF/DWARFUnit.h (1 line): - line 164: // FIXME: Result should be uint64_t in DWARF64. tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp (1 line): - line 49: // FIXME: Flush the diagnostics in order. lib/DebugInfo/DWARF/DWARFUnit.cpp (1 line): - line 58: // FIXME: string offset section entries are 8-byte for DWARF64. tools/clang/include/clang/ARCMigrate/FileRemapper.h (1 line): - line 32: // FIXME: Reuse the same FileManager for multiple ASTContexts. tools/lli/ChildTarget/ChildTarget.cpp (1 line): - line 93: // FIXME: Handle error! lib/Support/SearchForAddressOfSpecialSymbol.cpp (1 line): - line 33: // FIXME: Currently disabled when using Clang, as we don't always have our tools/clang/lib/Driver/CrossWindowsToolChain.cpp (1 line): - line 33: // FIXME: all non-x86 targets need unwind tables, however, LLVM currently does tools/clang/lib/Analysis/ThreadSafetyTIL.cpp (1 line): - line 303: // FIXME: clean up predecessor pointers to unreachable blocks? include/llvm/ADT/SmallSet.h (1 line): - line 67: // FIXME: Add iterators that abstract over the small and large form, and then lib/IR/AsmWriter.cpp (1 line): - line 785: // FIXME: Add attributes of other objects? tools/clang/include/clang/Basic/Module.h (1 line): - line 453: /// FIXME: This may return incorrect results for (submodules of) the lib/MC/MCInstrDesc.cpp (1 line): - line 27: // FIXME: it would be nice to include the subtarget feature here. lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp (1 line): - line 558: // FIXME: New EH - Add the clauses in reverse order. This isn't 100% correct, tools/clang/include/clang/Analysis/Support/BumpVector.h (1 line): - line 15: // FIXME: Most of this is copy-and-paste from SmallVector.h. We can include/llvm/IR/ConstantRange.h (1 line): - line 251: /// TODO: This isn't fully implemented yet. tools/clang/tools/libclang/CXCompilationDatabase.cpp (1 line): - line 12: // FIXME: do something more useful with the error message lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp (1 line): - line 104: // FIXME: Why does ocaml emit this?? include/llvm-c/Core.h (1 line): - line 162: /* FIXME: These attributes are currently not included in the C API as lib/IR/LegacyPassManager.cpp (1 line): - line 597: // TODO : Allocate function manager for this pass, other wise required set lib/Support/Windows/Process.inc (1 line): - line 72: // FIXME: FileOffset in MapViewOfFile() should be aligned to not dwPageSize, tools/clang/lib/Analysis/ThreadSafetyLogical.cpp (1 line): - line 98: // FIXME -- this should compare SExprs for equality, not pointer equality. tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp (1 line): - line 467: // FIXME: Issue a warning. tools/clang/lib/Basic/LangOptions.cpp (1 line): - line 45: // FIXME: This should not be reset; modules can be different with different tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp (1 line): - line 131: // FIXME: This should be extended to include other unreachable markers, tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp (1 line): - line 74: // FIXME: It would be nice to eventually make this diagnostic more clear, tools/clang/include/clang/Serialization/ASTBitCodes.h (1 line): - line 67: // FIXME: Turn these into classes so we can have some type safety when tools/clang/tools/libclang/CXSourceLocation.cpp (1 line): - line 335: // FIXME: This should call SourceManager::getSpellingLoc(). projects/dxilconv/lib/DxilConvPasses/DxilCleanup.cpp (1 line): - line 1008: // TODO: Evaluate as candidate for optimization. lib/DxilRootSignature/DxilRootSignature.cpp (1 line): - line 350: // TODO: set the fileds. include/llvm/Target/TargetFrameLowering.h (1 line): - line 222: /// TODO: This should really be a parameterizable choice. tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp (1 line): - line 338: // FIXME: This is a stop-gap until a more comprehensive "preprocessing with tools/clang/include/clang/Serialization/GlobalModuleIndex.h (1 line): - line 90: /// FIXME: We don't really need a vector here. lib/CodeGen/MachineBranchProbabilityInfo.cpp (1 line): - line 84: // FIXME: Compare against a static "hot" BranchProbability. lib/AsmParser/LLParser.h (1 line): - line 250: bool ParseDepLibs(); // FIXME: Remove in 4.0. tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h (1 line): - line 47: // FIXME: Should these be made strings as well? tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h (1 line): - line 354: // FIXME: We probably need to make this out-of-line to avoid redundant tools/clang/include/clang/AST/AttrIterator.h (1 line): - line 28: // FIXME: Being forced to not have a default argument here due to redeclaration utils/TableGen/CodeGenDAGPatterns.h (1 line): - line 313: /// FIXME: TreePatternNode's can be shared in some cases (due to dag-shaped include/llvm/ADT/StringExtras.h (1 line): - line 144: // FIXME: Investigate whether a modified bernstein hash function performs tools/clang/tools/libclang/CXCursor.cpp (1 line): - line 1026: // FIXME: Remove once we can model DeclGroups and their appropriate ranges include/llvm/MC/MCSectionCOFF.h (1 line): - line 29: // FIXME: The following fields should not be mutable, but are for now so lib/IR/DebugInfo.cpp (1 line): - line 310: // FIXME: Ocaml binding generates a scope with no content, we treat it lib/MC/MCValue.cpp (1 line): - line 24: // FIXME: prints as a number, which isn't ideal. But the meaning will be tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp (1 line): - line 121: // FIXME: For now, ignore classes that subclass SenTestCase, as these don't lib/Transforms/IPO/InlineAlways.cpp (1 line): - line 99: // that are viable for inlining. FIXME: We shouldn't even get here for lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp (1 line): - line 347: // FIXME: I'm not sure why we are first trying to split the input into include/llvm/CodeGen/MachineBranchProbabilityInfo.h (1 line): - line 28: // TODO: DEFAULT_WEIGHT makes sense during static predication, when none of tools/clang/lib/SPIRV/LowerTypeVisitor.cpp (1 line): - line 558: // TODO: avoid string comparison once hlsl::IsHLSLResouceType() does that. lib/AsmParser/LLToken.h (1 line): - line 59: kw_deplibs, // FIXME: Remove in 4.0 tools/clang/lib/SPIRV/RemoveBufferBlockVisitor.cpp (1 line): - line 134: // TODO: Handle other composite types. tools/clang/unittests/HLSL/CompilerTest.cpp (1 line): - line 3413: // TODO: Verify the result when reflect the structures. tools/clang/utils/clang-completion-mode.el (1 line): - line 102: ;; Determine whether FIXME: explain better include/llvm/CodeGen/SlotIndexes.h (1 line): - line 617: // FIXME: Eventually we want to actually delete these indexes. include/llvm/IR/DIBuilder.h (1 line): - line 521: /// FIXME: this is added for dragonegg. Once we update dragonegg lib/HLSL/DxcOptimizer.cpp (1 line): - line 314: // TODO: should really use string_table for this once that's available lib/MC/MCSectionELF.cpp (1 line): - line 30: // FIXME: Does .section .bss/.data/.text work everywhere?? lib/Analysis/AliasAnalysisCounter.cpp (1 line): - line 100: // FIXME: We could count these too... lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp (1 line): - line 200: // FIXME: We have no reasonable way of handling errors in here. The utils/PerfectShuffle/PerfectShuffle.cpp (1 line): - line 204: // If this value has already been evaluated, it is free. FIXME: match undefs. tools/llvm-config/llvm-config.cpp (1 line): - line 377: // FIXME: Each LLVM component may have its dependent system libs. lib/Support/Regex.cpp (1 line): - line 132: // FIXME: We should have a StringExtras function for mapping C99 escapes. tools/clang/tools/dxa/dxa.cpp (1 line): - line 273: DXC_CP_UTF8); // TODO: Support DefaultTextCodePage tools/clang/utils/ABITest/Enumeration.py (1 line): - line 181: # FIXME: maxsize is inclusive tools/clang/unittests/Tooling/RecursiveASTVisitorTestExprVisitor.cpp (1 line): - line 195: /* FIXME: According to Richard Smith this is a bug in the AST. lib/Transforms/Scalar/DxilEraseDeadRegion.cpp (1 line): - line 43: // TODO: Could probably move this to a common place at some point. lib/MC/YAML.cpp (1 line): - line 31: // TODO: Can we improve YAMLIO to permit a more accurate diagnostic here? tools/clang/tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs (1 line): - line 180: // FIXME: If clang-format writes enough to the standard error stream to block, tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp (1 line): - line 74: // TODO: Here is the list of the missing matchers, grouped by reason. lib/MC/SubtargetFeature.cpp (1 line): - line 304: /// FIXME: This is an inelegant way of specifying the features of a lib/CodeGen/SplitKit.cpp (1 line): - line 143: // FIXME: calcLiveBlockInfo found inconsistencies in the live range. tools/clang/lib/Analysis/ReachableCode.cpp (1 line): - line 129: // FIXME: This is not very precise. Here we just check to see if the include/llvm/IR/PatternMatch.h (1 line): - line 848: // FIXME: Remove CV. tools/clang/lib/SPIRV/FeatureManager.cpp (1 line): - line 254: // TODO: Also add the following extensions if we start to support them. tools/clang/tools/dxcompiler/dxclinker.cpp (1 line): - line 293: // TODO: DFCC_ShaderDebugName include/llvm/Support/StreamingMemoryObject.h (1 line): - line 32: // FIXME: This could be fixed by ensuring the bytes are fetched and tools/clang/unittests/HLSL/ExtensionTest.cpp (1 line): - line 831: // TODO: would be nice to check for the actual attribute (e.g. readonly) include/llvm/Support/Program.h (1 line): - line 160: /// FIXME: We use EM_CurrentCodePage to write response files for GNU tools in tools/clang/lib/CodeGen/CGCleanup.h (1 line): - line 201: // FIXME: it's better to always call clearHandlerBlocks in DTOR and have a include/llvm/Support/CommandLine.h (1 line): - line 1296: // FIXME: Reduce this API to a more narrow subset of std::vector tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp (1 line): - line 399: // TODO: We could use different error codes for each/some to be more lib/Transforms/Scalar/LowerTypePasses.cpp (1 line): - line 322: // TODO: optimize static array index in later pass. tools/clang/tools/dxopt/dxopt.cpp (1 line): - line 113: dxc::WriteBlobToFile(pBlob, pFileName, DXC_CP_UTF8); // TODO: Support DefaultTextCodePage tools/clang/include/clang/AST/VTableBuilder.h (1 line): - line 380: // FIXME: Uncomment when we've moved to C++11. include/llvm/CodeGen/GCMetadata.h (1 line): - line 86: // FIXME: Liveness. A 2D BitVector, perhaps? lib/CodeGen/LiveStackAnalysis.cpp (1 line): - line 54: // FIXME: No analysis is being done right now. We are relying on the tools/clang/lib/AST/MicrosoftCXXABI.cpp (1 line): - line 87: // FIXME: Audit the corners tools/clang/lib/Headers/xtestintrin.h (1 line): - line 32: /* FIXME: This can be an either or for RTM/HLE. Deal with this when HLE is tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp (1 line): - line 2398: // TODO: add check for untied tasks. lib/Analysis/ScalarEvolutionExpander.cpp (1 line): - line 208: /// TODO: When ScalarEvolution gets a SCEVSDivExpr, this can be made lib/ExecutionEngine/MCJIT/MCJIT.h (1 line): - line 250: // FIXME: Do we really need both of these? cmake/modules/AddSphinxTarget.cmake (1 line): - line 51: # FIXME: We might not ship all the tools that these man pages describe tools/clang/lib/Serialization/ModuleManager.cpp (1 line): - line 126: // FIXME: Because FileManager::getFile() doesn't guarantee that it will tools/clang/lib/AST/ExternalASTSource.cpp (1 line): - line 116: // FIXME: Only bump the generation counter if the current generation number tools/clang/lib/ARCMigrate/ARCMT.cpp (1 line): - line 188: // FIXME: Get the original header of a PTH as well. lib/Object/COFFObjectFile.cpp (1 line): - line 190: // TODO: perhaps we need a new symbol type ST_Section. tools/clang/tools/dxrfallbackcompiler/dxcvalidator.cpp (1 line): - line 140: DxcOutputObject::ErrorOutput(CP_UTF8, // TODO Support DefaultTextCodePage lib/Transforms/Utils/SymbolRewriter.cpp (1 line): - line 365: // TODO see if there is a more elegant solution to selecting the rewrite tools/clang/include/clang/Basic/PartialDiagnostic.h (1 line): - line 315: // FIXME: It should be possible to render a diagnostic to a string without lib/CodeGen/MIRParser/MILexer.cpp (1 line): - line 148: // TODO: add support for quoted names. tools/clang/lib/CodeGen/CGCall.h (1 line): - line 25: // FIXME: Restructure so we don't have to expose so much stuff. tools/clang/lib/Frontend/ChainedIncludesSource.cpp (1 line): - line 177: // TODO: Pass through the existing MemoryBuffer instances instead of tools/llvm-readobj/ARMWinEHPrinter.cpp (1 line): - line 64: // TODO name the uops more appropriately lib/ExecutionEngine/TargetSelect.cpp (1 line): - line 89: // FIXME: non-iOS ARM FastISel is broken with MCJIT. lib/Analysis/AliasSetTracker.cpp (1 line): - line 136: // FIXME: This should use mod/ref information to make this not suck so bad tools/clang/lib/CodeGen/CodeGenModule.h (1 line): - line 1207: // FIXME: Hardcoding priority here is gross. tools/clang/include/clang/Sema/SemaInternal.h (1 line): - line 74: // FIXME: We shouldn't suppress this warning for static data members. lib/DxilDia/DxcPixLiveVariables_FragmentIterator.cpp (1 line): - line 280: DetermineStructMemberSizesAndOffsets(subType, BaseOffset /*TODO: plus member offset*/); include/llvm/PassInfo.h (1 line): - line 77: /// TODO : Rename lib/HLSL/DxilNoops.cpp (1 line): - line 442: // TODO: Do something to preserve pointer's previous value. include/llvm/Option/ArgList.h (1 line): - line 42: // FIXME: Make efficient; the idea is to provide efficient iteration over lib/Transforms/Instrumentation/BoundsChecking.cpp (1 line): - line 152: // FIXME: add NSW/NUW here? -- we dont care if the subtraction overflows lib/Transforms/Utils/PromoteMemoryToRegister.cpp (1 line): - line 52: // FIXME: If the memory unit is of pointer or integer type, we can permit include/dxc/HLSL/DxilExportMap.h (1 line): - line 12: // TODO: Refactor to separate name export verification part from tools/llvm-symbolizer/LLVMSymbolize.cpp (1 line): - line 110: // FIXME: If a function has alias, there are two entries in symbol table lib/IR/Value.cpp (1 line): - line 51: // FIXME: Why isn't this in the subclass gunk?? tools/clang/tools/libclang/IndexBody.cpp (1 line): - line 160: // FIXME: Lambda init-captures. include/llvm/MC/MCRegisterInfo.h (1 line): - line 306: /// FIXME: TableGen these numbers. Currently this requires target specific lib/CodeGen/PeepholeOptimizer.cpp (1 line): - line 914: // TODO: We could have a clean-up method to tidy the instruction. include/llvm/Transforms/Utils/LoopVersioning.h (1 line): - line 61: /// that are used outside the loop. FIXME: this should be invoked internally include/llvm/Analysis/LibCallAliasAnalysis.h (1 line): - line 46: // TODO: Could compare two direct calls against each other if we cared to. lib/MC/MCDwarf.cpp (1 line): - line 56: // TODO: report this error, but really only once. lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp (1 line): - line 111: // TODO: support line number info (similar to IntelJITEventListener.cpp) tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp (1 line): - line 149: // FIXME: In the future hopefully we can just use the lexical DeclContext lib/CodeGen/TargetInstrInfo.cpp (1 line): - line 379: // FIXME: Allow folding when register classes are memory compatible. lib/Object/ArchiveWriter.cpp (1 line): - line 206: continue; // FIXME: check only for "not an object file" errors. lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h (1 line): - line 35: /// TODO: This class could be generalized to know about other ObjC-specific utils/TableGen/AsmWriterInst.h (1 line): - line 58: // FIXME: Remove after all ports are updated. include/llvm/Object/SymbolicFile.h (1 line): - line 83: // FIXME: should we add a SF_Text? tools/clang/lib/Driver/Job.cpp (1 line): - line 274: // FIXME: We really just want to fall back for internal errors, such include/llvm/IR/Constant.h (1 line): - line 108: /// FIXME: This really should not be in VMCore. lib/MC/MCAsmInfo.cpp (1 line): - line 96: // FIXME: Clang's logic should be synced with the logic used to initialize lib/MC/MCSectionCOFF.cpp (1 line): - line 26: // FIXME: Does .section .bss/.data/.text work everywhere?? lib/DxilPIXPasses/DxilPIXMeshShaderOutputInstrumentation.cpp (1 line): - line 270: // TODO: Is there a credible use case with no AS->MS payload? lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp (1 line): - line 601: } else { // Just the address. FIXME: also print the child's opcode. lib/Fuzzer/FuzzerSHA1.cpp (1 line): - line 60: /* public API - prototypes - TODO: doxygen*/ tools/clang/lib/AST/TemplateName.cpp (1 line): - line 88: // FIXME: Hack, getDeclContext() can be null if Template is still tools/clang/tools/libclang/CIndexCodeCompletion.cpp (1 line): - line 702: // FIXME: Add logging. lib/HLSL/HLLowerUDT.cpp (1 line): - line 421: //case HLOpcodeGroup::NotHL: // TODO: Support lib functions lib/Transforms/Utils/LowerSwitch.cpp (1 line): - line 380: // FIXME: Combine branch weights. unittests/Support/ErrorOrTest.cpp (1 line): - line 24: // FIXME: This is probably a bug in gtest. EXPECT_TRUE should expand to lib/Transforms/ObjCARC/ARCInstKind.h (1 line): - line 26: /// TODO: This should be split into two enums: a runtime entry point enum tools/clang/utils/TableGen/ClangASTNodesEmitter.cpp (1 line): - line 186: // FIXME: Find a .td file format to allow for this to be represented better. lib/MC/MCAsmInfoCOFF.cpp (1 line): - line 40: // FIXME: For now keep the previous behavior, AShr. Need to double-check tools/clang/lib/Format/WhitespaceManager.h (1 line): - line 125: // FIXME: Currently this is not set correctly for breaks inside comments, as lib/Analysis/regioninfo.cpp (1 line): - line 91: // TODO: Slow. Should only be enabled if -stats is used. tools/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp (1 line): - line 98: // TODO: Add type info about the overload error. lib/HLSL/DxilPromoteResourcePasses.cpp (1 line): - line 360: // FIXME: Opaque type "ConstantBuffer" is only used for an empty cbuffer. lib/CodeGen/SelectionDAG/InstrEmitter.cpp (1 line): - line 976: // FIXME: Add dead flags for physical and virtual registers defined. tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.h (1 line): - line 67: // FIXME: double memoization is redundant, with memoization both here and in tools/clang/lib/Analysis/FormatString.cpp (1 line): - line 127: // FIXME: Support negative field widths. lib/Support/regexec.c (1 line): - line 57: /* FIXME: 'states' is assumed as 'long' on small version. */ tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h (1 line): - line 84: // FIXME: __OPTIMIZE__ is a GNU extension that Clang implements but MSVC tools/clang/lib/Frontend/ModuleDependencyCollector.cpp (1 line): - line 68: // TODO: We probably need to handle .. as well as . in order to have valid tools/clang/include/clang/Basic/SourceManagerInternals.h (1 line): - line 65: // FIXME: should check the other field? tools/clang/include/clang/Basic/TargetCXXABI.h (1 line): - line 91: /// FIXME: should this be split into Win32 and Win64 variants? lib/MC/MCDisassembler/Disassembler.h (1 line): - line 58: // FIXME: using std::unique_ptr causes a malloc error lib/CodeGen/AtomicExpandPass.cpp (1 line): - line 551: // FIXME: we could also treat Min/Max/UMin/UMax by the INT_MIN/INT_MAX/... lib/Support/DynamicLibrary.cpp (1 line): - line 12: // FIXME: This file leaks ExplicitSymbols and OpenedHandles! lib/Transforms/Scalar/EarlyCSE.cpp (1 line): - line 723: // FIXME: Bundle this with other CFG-preservation. tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp (1 line): - line 767: // FIXME: It's slightly absurd to create a new diagnostics engine here, but tools/clang/lib/SPIRV/AstTypeProbe.cpp (1 line): - line 810: // TODO: support other types if needed tools/clang/lib/SPIRV/PreciseVisitor.h (1 line): - line 45: // TODO: Support propagation of 'precise' through OpSpecConstantOp and image unittests/Support/Path.cpp (1 line): - line 533: // FIXME: recursive_directory_iterator should be more robust. projects/dxilconv/lib/ShaderBinary/ShaderBinary.cpp (1 line): - line 557: // not bothering to keep custom-data for now. TODO: store tools/llvm-mc/llvm-mc.cpp (1 line): - line 431: // FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and tools/clang/lib/AST/DeclarationName.cpp (1 line): - line 483: // FIXME: ? lib/CodeGen/SelectionDAG/legalizevectorops.cpp (1 line): - line 913: // FIXME: Sign extend 1 to all ones if thats legal on the target. lib/Transforms/InstCombine/InstCombineVectorOps.cpp (1 line): - line 243: // TODO: For a select on vectors, it might be useful to do this if it lib/CodeGen/MachineTraceMetrics.cpp (1 line): - line 791: // FIXME: If MBB is non-null at this point, it is the last pre-computed block include/llvm/Support/YAMLTraits.h (1 line): - line 537: // FIXME: Force integral conversion to allow strong typedefs to convert. lib/Object/ELFYAML.cpp (1 line): - line 334: // FIXME: Issue a diagnostic with this information. lib/Transforms/ObjCARC/DependencyAnalysis.cpp (1 line): - line 221: /// TODO: Cache results? tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp (1 line): - line 42: // FIXME: what about overloads? Declarations can be used as keys but what lib/Transforms/InstCombine/InstCombineSelect.cpp (1 line): - line 498: // FIXME: Type and constness constraints could be lifted, but we have to tools/clang/unittests/Tooling/ToolingTest.cpp (1 line): - line 165: // FIXME: Currently, this only tests that we don't exit with an error if a tools/llvm-c-test/include-all.c (1 line): - line 15: // FIXME: Autogenerate this list lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp (1 line): - line 228: // FIXME: A bit of a hack, we either emit only one atom or all info. lib/Transforms/Utils/LoopVersioning.cpp (1 line): - line 57: // FIXME: This does not currently preserve SimplifyLoop because the exit tools/clang/lib/Format/Encoding.h (1 line): - line 67: // FIXME: Figure out the correct way to handle this in the presence of both lib/Analysis/CodeMetrics.cpp (1 line): - line 177: // FIXME: This logic isn't really right; we can safely inline functions lib/Transforms/Instrumentation/ThreadSanitizer.cpp (1 line): - line 371: // FIXME: many of these accesses do not need to be checked for races include/llvm/ADT/Optional.h (1 line): - line 85: // FIXME: these assignments (& the equivalent const T&/const Optional& ctors) tools/clang/lib/SPIRV/SpirvBuilder.cpp (1 line): - line 621: // TODO: Update ImageGather to accept minLod if necessary. tools/clang/include/clang/Sema/Ownership.h (1 line): - line 114: // FIXME: Doesn't work? return P.getAs< void >(); include/llvm/Support/ScaledNumber.h (1 line): - line 656: // TODO: implement directly, rather than relying on inverse. Inverse is lib/ExecutionEngine/Orc/OrcMCJITReplacement.h (1 line): - line 256: // FIXME: Support nested archives? lib/Object/Archive.cpp (1 line): - line 536: // FIXME: Should we really eat the error? lib/DxilRootSignature/DxilRootSignatureSerializer.cpp (1 line): - line 288: // TODO: change SerializeRootSignature to take raw_ostream& lib/IR/PassRegistry.cpp (1 line): - line 49: // FIXME: We use ManagedStatic to erase the pass registrar on shutdown. tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp (1 line): - line 421: // FIXME: This is a gross over-approximation. What we really need is a way to lib/CodeGen/MachineFunction.cpp (1 line): - line 81: // FIXME: Shouldn't use pref alignment if explicit alignment is set on Fn. unittests/Support/ScaledNumberTest.cpp (1 line): - line 167: // TODO: require less knowledge about the implementation in the test. include/llvm/MC/MCLinkerOptimizationHint.h (1 line): - line 14: // FIXME: LOH interface supports only MachO format at the moment. tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp (1 line): - line 96: // FIXME: It may be safe to reclaim PreCall and PostCall nodes as well. lib/IR/InlineAsm.cpp (1 line): - line 183: // FIXME: For now assuming these are 2-character constraints. utils/lit/lit/ShUtil.py (1 line): - line 243: # FIXME: Operator precedence!! lib/Support/SmallPtrSet.cpp (1 line): - line 298: // FIXME: From here on we assume that both sets have the same small size. tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp (1 line): - line 33: // looking at subtyping relationships. FIXME: Future patch. lib/DxilDia/DxilDiaEnumTables.cpp (1 line): - line 63: return hr; // TODO: this leaks prior tables. utils/TableGen/DAGISelMatcher.h (1 line): - line 466: // TODO: Ok? lib/Transforms/IPO/IPConstantPropagation.cpp (1 line): - line 60: // FIXME: instead of using smart algorithms, we just iterate until we stop tools/clang/lib/Driver/Multilib.cpp (1 line): - line 270: // TODO: pick the "best" multlib when more than one is suitable tools/clang/lib/SPIRV/EmitVisitor.h (1 line): - line 368: // TODO: Add a method for adding OpMemberName instructions for struct members include/llvm/IR/InstrTypes.h (1 line): - line 895: // FIXME: these are redundant if CmpInst < BinaryOperator tools/obj2yaml/obj2yaml.cpp (1 line): - line 40: // TODO: If this is an archive, then burst it and dump each entry lib/CodeGen/SelectionDAG/LegalizeTypes.cpp (1 line): - line 1012: unsigned EltSize = EltVT.getSizeInBits() / 8; // FIXME: should be ABI size. tools/clang/tools/libclang/CIndexer.h (1 line): - line 100: /// FIXME: Move to llvm/Support. lib/Analysis/SparsePropagation.cpp (1 line): - line 164: // TODO: Could ask the lattice function if the value can throw. utils/hct/hcttrace.cmd (1 line): - line 77: rem TODO - discover rather than hard-code tools/clang/lib/AST/ASTContextHLSL.cpp (1 line): - line 705: // TODO: use hlsl types to do the check. lib/CodeGen/GCMetadata.cpp (1 line): - line 152: // TODO: Arguably, just doing a linear search would be faster for small N lib/Transforms/Instrumentation/AddressSanitizer.cpp (1 line): - line 1586: // FIXME: remove once the bug 11395 is fixed. lib/MC/MCObjectStreamer.cpp (1 line): - line 432: // FIXME: A MCFillFragment would be more memory efficient but MCExpr has lib/Support/Windows/RWMutex.inc (1 line): - line 77: // TODO: harden to allocation failures - HLSL Change tools/lli/RemoteMemoryManager.h (1 line): - line 57: // FIXME: This is part of a work around to keep sections near one another include/llvm/ADT/SmallString.h (1 line): - line 269: // TODO: Make this const, if it's safe... lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp (1 line): - line 165: // TODO: Theoretically we could check for dependencies between objc_* calls include/llvm/ExecutionEngine/Orc/CompileUtils.h (1 line): - line 48: // TODO: Actually report errors helpfully. utils/TableGen/TableGenBackends.h (1 line): - line 49: // FIXME: Reorganize TableGen so that build dependencies can be more tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h (1 line): - line 178: // TODO: Turn into a calss. include/dxc/DXIL/DxilResourceBase.h (1 line): - line 60: // TODO: check whether we can make this a protected method. lib/Analysis/AliasAnalysis.cpp (1 line): - line 349: // FIXME: this is really just shoring-up a deficiency in alias analysis. tools/clang/include/clang/Sema/Lookup.h (1 line): - line 148: // TODO: consider whether this constructor should be restricted to take lib/CodeGen/RegisterScavenging.cpp (1 line): - line 237: // FIXME: Enable this once we've figured out how to correctly transfer tools/clang/lib/Tooling/JSONCompilationDatabase.cpp (1 line): - line 224: // FIXME: Escape correctly: tools/clang/tools/clang-check/ClangCheck.cpp (1 line): - line 85: // FIXME: Move FixItRewriteInPlace from lib/Rewrite/Frontend/FrontendActions.cpp tools/clang/lib/AST/StmtIterator.cpp (1 line): - line 19: // FIXME: Add support for dependent-sized array types in C++? lib/Analysis/BlockFrequencyInfoImpl.cpp (1 line): - line 344: // FIXME: An alternate way would be to select a symbolic scale which is later lib/Transforms/Scalar/SampleProfile.cpp (1 line): - line 704: /// FIXME: Try to replace this propagation heuristic with a scheme utils/llvm.natvis (1 line): - line 72: TODO - fix this case to avoid expression ambiguity include/llvm/ExecutionEngine/ObjectMemoryBuffer.h (1 line): - line 35: /// FIXME: It'd be nice for this to be a non-templated constructor taking a tools/clang/lib/CodeGen/CGRecordLayout.h (1 line): - line 132: // FIXME: Maybe we could use a CXXBaseSpecifier as the key and use a single lib/CodeGen/MachineRegisterInfo.cpp (1 line): - line 290: // TODO: This could be more efficient by bulk changing the operands. tools/clang/lib/Parse/ParseOpenMP.cpp (1 line): - line 31: // TODO: add other combined directives in topological order. tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h (1 line): - line 120: // FIXME: We should provide the ability to constrain the output of this lib/MC/MCDisassembler/Disassembler.cpp (1 line): - line 261: // FIXME: Do something different for soft failure modes?