Guidance in contributing to the project

While setting notepad++ as editor getting the “Usage Exception: Specify a key and a value.”
PS C:\WINDOWS\system32> arc set-config editor “"C:\Program Files\Notepad++\notepad++.exe" -multiInst -nosession”
Usage Exception: Specify a key and a value.

Ah, thank you! LValueBase sometimes has the information you’re after. If LValueBase::dyn_cast<ValueDecl *>() returns nonnull, then the pointer it returns can be queried for the name if it has one at all (ValueDecl is a subclass of NamedDecl). Keep in mind that not all declarations have a name though (for example, an overloaded conversion operator in C++ would be operator int() const; there’s no identifiers in that, it’s a pile of keywords and punctuation). You’ll likely want to call getNameForDiagnostic() to handle all the naming nonsense for you, since you ultimately want to issue a diagnostic.

However, if the LValueBase doesn’t hold a ValueDecl, it might be holding some other kind of lvalue, like an expression. For example, in C, (int){ 12 } produces an lvalue. So you should be prepared for the case where LValueBase doesn’t hold a ValueDecl and fall back on printing the type information, I think.

thank you AaronBallman can you pls tell something similar for APValue class i tried to find it and got “const ValueDecl *getMemberPointerDecl() const;” but this function is not returning anything i found only declaration for the function in APValue class.

APValue is basically a discriminated union of various kinds of things, so you’d call APValue::isLValue() to determine if the APValue holds an lvalue, and if that returns true, you can call APValue::getLValueBase() to get the LValueBase object to inspect.

Hi, I will be joining you tommorow during your office hours, I need some guidance regarding the contribution. Thank you.

That’s great, I’m looking forward to it. See you tomorrow!

1 Like

thank you so much AaronBallman and I will let you know once done.

I have solved the issue: “lifetime extension of temporary created by aggregate initialization” diagnostic is weirdly apologetic · Issue #61256 · llvm/llvm-project · GitHub. Finally arc worked and submitted the patch for review. Please review it: :gear: D146530 [clang][diagnostics]Removed “sorry” from all the required files

@AaronBallman Hello sir,
Can you kindly help on this issue [clang] [ExtractAPI] Declaration fragments for properties include spurious additional attributes. · Issue #61478 · llvm/llvm-project · GitHub

I have been able to locate the /DeclarationFragments.cpp in the llvm project, I really need help to know exactly where we need to make the changes in the /DeclarationFragments.cpp file. Thank you.

I have tried some couple of things but, no changes is generated.

Thank you for today sir, I really learn a lot from you. I was able to identify the portion where the code is that generate the json file is. It is the DeclarationFragment.cpp. The only thing left is to go through the code and make changes to it.

1 Like

hello, sir, I found that my diagnostic message gets printed only when APValue.hasValue() returns false which means the kind of APValue is either none or indeterminant so is there any way to get a name then?

Hey everyone, I have submitted a patch for review ⚙ D146644 [documentation]Fixed Random Typos. Please review it.

Ah – yeah, in that case, the APValue doesn’t have the information you need and so there’s not a way to get back to a name from there (at least, not one I can think of).

Hey I want to pass the name to the diagnostic message in this function can anyone give an idea of how to proceed

static bool CheckEvaluationResult(CheckEvaluationResultKind CERK,
EvalInfo &Info, SourceLocation DiagLoc,
QualType Type, const APValue &Value,
ConstantExprKind Kind,
SourceLocation SubobjectLoc,
CheckedTemporaries &CheckedTemps) {
if (!Value.hasValue()) {
Info.FFDiag(DiagLoc, diag::note_constexpr_uninitialized)
<< true << Type;
if (SubobjectLoc.isValid())
Info.Note(SubobjectLoc, diag::note_constexpr_subobject_declared_here);
return false;

I tried to inspect APValue class but didn’t get anything

ok, thank you sir for your time.

hey pogo59 sir for all those contributors who are going to work on clang diagnostics I have raised the issue

no proper documentation to understand diagnostic messages generated by clang · Issue #61647 · llvm/llvm-project · GitHub

and submitted a patch for review

D146802 [Documentation] improved documentation of diagnostic messages by explaining thier syntax and test of clang by telling which subobject is uninitialized

so that they don’t face difficulty in understanding the table gen code like me . could you please review it and let me know how I can make it better?

hey, pogo59 sir I have recently submitted a patch for review for the issue
Print name of uninitialized subobject (instead of type) · Issue #58601 · llvm/llvm-project · GitHub on which I was working for the last some weeks
could you please consider reviewing this patch once? It will be a huge help to me.
⚙ D146867 [Diagnostic] printing name of uninitialized subobject instead of its type

can anyone help me out on what we have to write in the description while recording contributions on outreachy page?

I have created Please can one of the mentor comment?

Hello, I make a change in the DeclarationFragments.cpp under ExtractAPI folder, ⚙ D146759 Declaration fragments for properties include additional property attributes that were not specified in the sources proposed solution, [clang] [ExtractAPI] Declaration fragments for properties include spurious additional attributes. · Issue #61478 · llvm/llvm-project · GitHub I need help/ guidance on how to write the test for the changes.