[All]
List of C++ Bugs Fixed in Updates 2 and 3 for C++Builder 2010
By: Kris Houser
Abstract: Lists and describes the bug reports resolved in these updates
This article lists all the fixes included in Updates 2 and 3 for C++Builder 2010.
If you have the initial release of C++Builder 2010 or RAD Studio 2010, you can download updates free of charge from the registered users page at https://cc.embarcadero.com/reg/c_builder
If you're unsure which release you have, select Help | About in the IDE.
QC #: |
Date Reported: |
Area: |
76882 |
8/20/2009 |
IDE\Build Tools |
Description: |
Steps: |
[QC Short Description]
C++Builder application shouldn't start when compilation error occurs in Delphi code
[QC Description]
See steps.
QC Entry 76882
|
- Create a new C++ application with VCL support
- Add a Delphi unit
- Change the Delphi unit so that compilation will fail with a syntax error
- Hit F9 (Run)
Exp.: Error is printed, editor gets focus at first error
Act.: Error is printed, application is started anyway |
QC #: |
Date Reported: |
Area: |
77934 |
9/22/2009 |
IDE\Project Management\Project Manager |
Description: |
Steps: |
[QC Short Description]
Since CB2009 it is no longer possible to arrange "Virtual folders"
[QC Description]
In CB2007 it was possible to arrange virtual folders as wanted. Since CB2009 "virtual folders" can no longer rearranged. They always are sorted alphabetically.
QC Entry 77934
|
- create project - create several virtual folders - try to move the virtual folders up or down via drag & drop |
QC #: |
Date Reported: |
Area: |
|
8/21/2009 10:19:37 AM |
IDE\Project Management\Project Manager |
Description: |
Steps: |
An AV error dialog appears when preprocessing third time a unit from a saved c++ project. |
1. New Console Application for C++.
2. Save the project to default directory.
3. Right click on File1.cpp and select preprocess option.
4. Right click on File1.cpp and select preprocess option.
5. Right click on File1.cpp and select preprocess option.
Exp: No errors and file is preprocessed.
Act: An AV error dialog appears and the file is not preprocessed.
|
QC #: |
Date Reported: |
Area: |
|
8/11/2009 10:48:39 AM |
IDE\IDE Insight |
Description: |
Steps: |
Creating a new project using IDE Insight adds it to a project group rather than closing the open project like File | New. |
ctrl-.
type console
select Console Application (C++Builder)
crtl-.
type console
select Console Application (C++Builder)
note that both are in a project group.
File | New | VCL Forms Applcation - C++Builder
note that it prompts you about saving the the existing projects and closes them |
QC #: |
Date Reported: |
Area: |
|
8/14/2009 11:59:31 PM |
IDE\Background compile |
Description: |
Steps: |
Build unit fails if background compilation is enable C++ builder
For console application and VCL forms application |
Create simple console application for C++ (left defaults on creation)
Try to build unit Alt+F9
Error: "Could not find File1.cpp".
Turn off bg comp, try again - compile succeeds. |
QC #: |
Date Reported: |
Area: |
|
8/21/2009 9:54:17 AM |
IDE\Project Management\Project Manager |
Description: |
Steps: |
An Out of memory error dialog appears when preprocessing more times a unit from a saved c++ project after saving and closing the processed .i files. |
1. New Console Application for C++.
2. Save the project to default directory.
3. Right click on File1.cpp and select preproces option.
4. Save the .i file with default name to default directory.
5. Close the .i file.
6. Right click on File1.cpp and select preproces option.
7. Save the .i file with default name to default directory.
8. Close the .i file.
9. Right click on File1.cpp and select preproces option.
Repeat until an error dialog appears.
Exp: No errors and file is preprocessed.
Act: An Out of memory error dialog appears and the file is not preprocessed.
|
QC #: |
Date Reported: |
Area: |
|
9/2/2009 9:57:11 AM |
IDE\Background compile |
Description: |
Steps: |
Build tab is selected every time it recieves a message when background compiling - preventing users from using the other tabs like "search results". |
Turn on background compiling, and "Show Command Line"
Open a C++ project that takes some time to compile, and produces some warnings and/or hints.
Build the project.
Immediately do a "Find In Files" which will return some matches.
Navigate to the search matches tab and try to view some matches.
Every time the build tab gets a message it makes itself the active tab. |
QC #: |
Date Reported: |
Area: |
|
9/2/2009 11:00:38 AM |
IDE\Dialogs\Project Options |
Description: |
Steps: |
Severe truncation and mis-sized controls on Debugger Local Options page under large fonts. |
Set up system to use large fonts (120%)
File | New | application (doesn't matter what kind)
Run | Parameters
Note most controls are either invisible or only a few pixels wide. |
QC #: |
Date Reported: |
Area: |
|
9/9/2009 6:06:28 PM |
IDE\Project Management |
Description: |
Steps: |
Switching resource compilers (or possibly any resource compiler option) can cause the IDE to permentally think user added resource files are up to date. |
Create new application
Add a .rc file (in a folder with a space in the name)
Build
Switch resource compilers
Build
Modify resource in editor (same behavior whether it's saved ot not).
Make
Repeat
The IDE will stop detecting that the resource file needs compiling.
Another behavior that I saw when I had multiple resources was that for one it would decide to recompile but not link. |
QC #: |
Date Reported: |
Area: |
|
9/14/2009 3:52:14 PM |
IDE\Dialogs\Project Options |
Description: |
Steps: |
For large fonts in Vista, the buttons from Forms page in Project Options are displayed cut off. |
1. Enable large fonts in Windows Vista
2. Open IDE
3. File | New | VCL Forms App - C++Builder
4. Add some forms to the project
5. Project | Options | Forms page
Exp: the buttons '>', '<', '<<','>>' are displayed normaly
Act: the buttons are displayed cut off (see atached screenshot) |
QC #: |
Date Reported: |
Area: |
|
9/16/2009 3:19:02 PM |
IDE\Message View |
Description: |
Steps: |
When building Projectx.cpp after clearing the Output tab from Message View, the command line message doesn't appear in the Output tab. |
1. New VCL Application for C++.
2. Clean the project.
3. Open Message View.
4. Click Output tab from Message View.
5. Right click in the Output and click "Clear All Messages".
6. Build the file Project1.cpp.
Exp: The command line should appear in the Output tab.
Act: Nothing appears in the Output tab, although in the Build tab appears "Success".
|
QC #: |
Date Reported: |
Area: |
|
9/17/2009 8:13:41 PM |
Modeling |
Description: |
Steps: |
Correct handle "&" in modeling project
[or any other project - MD] |
1. Create UML1.5 project and create ClassDiagram on it.
2. Rename ClassDiagram to "Bug & Testing" and save project. Project will contain ampersand
<ItemGroup>
<None Include="ModelSupport_Project1\default.txaPackage"/>
<None Include="ModelSupport_Project1\default.txvcls"/>
<None Include="ModelSupport_Project1\Test & Bug.txvcls"/>
</ItemGroup>
3. Try to reopen this project: error occurs because of ampersand in the project should be escaped
<None Include="ModelSupport_Project1\Test & Bug.txvcls"/>
Note. By the verification test #271929 too.
OR
File | New C++ Application
File | Save All
Save Unit1.cpp in a new subdirectory "a & b"
Save Project1.cpp in the directory ABOVE "a & b"
File | close All
File | Reopen -> Project1.cbproj
* Error reading project, "Whitespace not expected..."
|
QC #: |
Date Reported: |
Area: |
|
10/3/2009 11:21:48 AM |
IDE\Dialogs\Project Page Options |
Description: |
Steps: |
Regression
List index out of bounds (1) error and do not open Default Project Options dialog when perform [Project | Default Options, C++Builder] in case of not open any project, attached stack trace. |
- install build 14.0.3561.25074.1 (w/ all language)
- launch IDE
- Project | Default Options, C++Builder
// act: List index out of bounds error and do not open dialog |
QC #: |
Date Reported: |
Area: |
|
10/6/2009 12:24:13 PM |
IDE\Project Management\Project Options |
Description: |
Steps: |
When changing second time build order of a C++ project an AV appears. |
1. New VCL Application for C++ Builder.
2. Click Project->Options->Build Order.
3. Click first file and click move down button.
4. Click ok button.
5. Repeat from 1.
Exp: No errors.
Act: An AV error dialog appears.
Then this AV appears every time with any project until you close the IDE.
|
QC #: |
Date Reported: |
Area: |
|
10/12/2009 7:03:31 PM |
IDE\Project Management |
Description: |
Steps: |
The option set from configuration manager cannot be edited. |
1. New VCL Application for C++.
2. Click Project->Configuration Manager.
3. Click New Option Set to create one.
4. Save it to default directory (it will be added to your current configuration of your project).
5. Click on option set tab.
6. Right click on your project raw and click Edit Option Set.
Exp: The edit dialog for Option Set to appear.
Act: An error dialog with this message appears: "List index out of bounds (1)."
|
QC #: |
Date Reported: |
Area: |
|
10/13/2009 5:26:17 PM |
IDE\Project Management\Project Options |
Description: |
Steps: |
Maximum value for linker stack commit and reserve sizes are way too small (1MB) |
Try to set linker stack reserve size to 2MB (0x2000000) |
QC #: |
Date Reported: |
Area: |
|
5/27/2009 11:11:12 AM |
ActiveX |
Description: |
Steps: |
Commuinciation with Excel fails and results in a #NAME? in one of the cells.
works in Delphi |
+ Be sure to have a version of Weaver installed on a machine that has Office XP setup
+ Download attached project
+ Click Components | Installed Packages
+ Check ONLY CodeGear C++Builder Office XP Servers Package
+ Open the project
+ Build
+ Run
// When it brings up Excel, you end up with a #NAME? in the second cell.
<attached screen shot of issue>
<attached building and running version of failing project>
NOTE: I've checked in a fix in the trunk. See $Rev 24506
http://dtg-svn.codegear.net/cgi-bin/viewvc.cgi?view=revision&root=delphi-xbuilder&revision=24506
|
QC #: |
Date Reported: |
Area: |
76395 |
8/4/2009 |
CodeGuard |
Description: |
Steps: |
[QC Short Description]
CodeGuard and TCppWebBrowser cause application crash on startup
[QC Description]
Enabling CodeGuard on an application that uses a TCppWebBrowser component within it causes an application crash with an empty message box and no diagnostic information as to the cause.
In my case, I had moved a large application with many units from CB2006 to CB2009. The application ran without problem, but when I enabled CodeGuard, the application would not even start (the cryptic details are below), and a breakpoint on the first line of WinMain was never reached.
I spent many hours searching for the cause of the problem, tearing out parts of the application until I found it. This will occur in any application that uses either a TCppWebBrowser or TWebBrowser anywhere in it; even including the .h file of a unit that uses one of these components will cause the problem.
Note that the following thread was posted in the forum in January, 2009, without response:
https://forums.codegear.com/thread.jspa?messageID=66367&tstart=0
Unlike that thread, I do not get a codeguard log indicating what happened. The .cgl file does not have anything useful.
This is a basic functionality failure because CodeGuard is an important part of CB2009, and is useless if there is a TCppWebBrowser anywhere in the application, since the application crashes without giving a reason why or any reason to suspect that the TCppWebBrowser (as opposed to any one of the thousands of other components) is the problem.
QC Entry 76395
|
Using C++ Builder 2009 installed on a 64 bit virtual machine running under VMWARE on a Mac File/New/VCL Forms Application - C++ Builder File/Save Project As... (pick location to save project) Project/Options... Select the C++ Compiler/Debugging page Double-click on "False" under Enable Codeguard (change it from False to True) OK to close dialog Run/Run (to compile, link, and run program) The blank form appears without problem Close the new blank form application by clicking on the red "X" in the upper right of the window In the tool palette search box, type "tcpp", see the TCppWebBrowser Click on TCppWebBrowser in the tool palette, then click once on the form, to drop a TCppWebBrowser on the form Run/Run (to compile, link, and run program) Instead of the application running, a small, empty message box with no caption or text, but just an "OK" button appears. Click "OK" Windows puts up a message box, "Application has stopped working" with two choices, to "Check online for a solution and close the program" or "Close the program" Click "Close the program" A message box comes up: "The application failed to initialize properly (0xc0000005). Click OK to terminate the application." Click "OK" and get dropped into a CPU window. Press Ctrl-F2 to stop the program. Project/Options... Select the C++ Compiler/Debugging page Double-click on "True" under Enable Codeguard (change it from True to False) OK to close dialog Run/Run (to compile, link, and run program) The blank form appears with the blank TCppWebBrowser on it. |
QC #: |
Date Reported: |
Area: |
77723 |
9/15/2009 |
Linker |
Description: |
Steps: |
[QC Short Description]
DLL base binary size is too large
[QC Description]
The VCL overhead of C++Builder projects has always been a little larger than the comparable Delphi counterpart. However, starting with C++Builder 2009 and continuing in C++Builder 2010 the overhead of a do-nothing VCL DLL project has risen by many times the previously acceptable size.
QC Entry 77723
|
Consider a do-nothing VCL DLL project. The project is created, modified to specify output directory and to build standalone (turn off packages and runtime library). Here are the results on my pc: Delphi 6: unavailable since I do not own Delphi 6 C++Builder 6: 155k Delphi 2007: 81k C++Builder 2007: 194k Delphi 2009: 127k C++Builder 2009: 628k Delphi 2010: 295k C++Builder 2010: 947k Note, with C++Builder 2010 a do-nothing, standalone VCL DLL project starts out at 1MB in size. Even Delphi's number exceeds a reasonable do-nothing size at a quarter of a megabyte. A do-nothing non-VCL DLL project is 56k. |
QC #: |
Date Reported: |
Area: |
|
3/25/2009 |
RTL\C++\Strings |
Description: |
Steps: |
There is no _mbstrlen routine.
When compiling the code below:
#include <string.h>
#include <mbstring.h>
#include <stdlib.h>
int main()
{
_mbstrlen("");
}
The following error appears:
Error E2268 mbstrlen.cpp 7: Call to undefined function '_mbstrlen' in function m
ain()
Note that the file includes all the headers mentioned at help: ms-help://embarcadero.rs2009/devwin32/strlen_xml.html |
1 - download attached file
2 - bcc32 mbstrlen.cpp
act:
Error E2268 mbstrlen.cpp 7: Call to undefined function '_mbstrlen' in function main()
exp:
Clean compile |
QC #: |
Date Reported: |
Area: |
|
8/17/2009 9:52:09 AM |
AddOn |
Description: |
Steps: |
Miising cmath.hpp redirector header file.
Some of the headers with issues:
cast.hpp
unordered_map.hpp
date_time/posix_time/posix_time.hpp
|
#include <boost/cast.hpp> |
QC #: |
Date Reported: |
Area: |
|
9/10/2009 5:36:34 PM |
Tools CL |
Description: |
Steps: |
The SDK resource compiler doesn't handle multiple defines on a single switch like brcc32 so cgrc needs to handle it. |
cgrc -dFIRST;SECOND define.rc
tdump define.res | grep 101
expect: 101: 'Test SECOND'
actual: 101: 'Test FIRST' |
QC #: |
Date Reported: |
Area: |
|
9/14/2009 3:36:13 PM |
IDE\Dialogs\Project Options |
Description: |
Steps: |
When enabling large fonts in Vista, the string grid from Version Info page is displayed cut off.
trunk rev: 24687
updates rev: 24688 |
1. Enable large fonts in Windows Vista
2. Open IDE
3. Project | Options | C++Builder | Version Info page
Exp: version info page is displayed
Act: the key, value string grid is displayed cut off (see atached screenshot) |
QC #: |
Date Reported: |
Area: |
|
7/24/2009 3:41:29 PM |
IDE\Project Management |
Description: |
Steps: |
A default C++ app fails to build with MSBuild on the command line.
Attached are saved default project file, envoptions.proj from the system, and result.txt showing the msbuild output.
Note esp. "C:\Program Files\Embarcadero\RAD Studio\7.0\lib\EN\debug" in -l switch to ilink32. |
New C++ vcl app, save all.
Open RAD studio command prompt, cd to projects dir.
msbuild project1.cbproj
Many link errors result.
IDE build is clean, and uses lib\debug in ilink32 lib path instead of lib\EN\debug. |
QC #: |
Date Reported: |
Area: |
|
8/27/2009 2:11:49 PM |
Install\Register UI |
Description: |
Steps: |
Request from Sanctuary team:
There should be some input validation on the the license checkout dialog |
Start with a network license
Choose Tools | Checkout License
Leave user name blank and enter non-numeric (or blank) data for hours
Click OK |
QC #: |
Date Reported: |
Area: |
|
10/2/2009 3:36:39 PM |
Debugger\CPU |
Description: |
Steps: |
Access violation at address 12612D24 in module COMP32X.DLL. Read of address 00000010.
DBK logs and stack attached
CRH: This is essentially a regression in update 2 (since the evalautor calls that cause this are new in update 2) |
Start IDE
Create a C++ console app (no VCL, not multithreaded)
F8 to step
Ctrl-F7 to open the Evaluate/Modify dialog
Enter "123" (omit the quotes) and press Enter
-- you get a valid result, and the calls to isClassDerived succeed
Ctrl-Alt-E to open a memory window
In the memory window, press Ctrl-G to open the "Goto address" dialog
Give "$123" for the address
-- the IDE calls the evaluator to evaluate this expression
-- this is an invalid expression for c++; the evaluator returns the error "E2206 Illegal character '$' (0x24)"
At this point you will see the AV in comp32x.dll when the Evaluate/Modify dialog calls isClassDerived.
It appears as if something is in a bad state after the E2206 evaluator error so that subsequent calls to isClassDerived crash.
|
QC #: |
Date Reported: |
Area: |
78613 |
10/13/2009 |
VCL\Emulation Classes |
Description: |
Steps: |
[QC Short Description]
Both assignment operator overloads of DelphiInterface<> should take a const parameter
[QC Description]
The DelphiInterface<> smart pointer defined in systobj.h specifies two operator overloads for the assignment operator. In Update 2, one of them was changed to accept a const reference, but the other one wasn't:
// -----
// systobj.h, l. 344f
template <class ANOTHERINTF>
DelphiInterface<T>& __fastcall operator =(DelphiInterface<ANOTHERINTF> &rhs)
[...]
DelphiInterface<T>& __fastcall operator =(const DelphiInterface<T>& rhs)
// -----
This discrepancy changes the overload resolution rules: it causes the non-const one to be invoked whenever something that isn't constant is passed. The primary difference between the two operator overloads is that the first one invokes QueryInterface() with the IID of ANOTHERINTF whereas the second one simply copies the interface. As a result, the first overload will fail on all interfaces that don't have a GUID assigned to them.
To fix it, simply change the first overload to accept a "const DelphiInterface<ANOTHERINTF>&" parameter (i.e. add the "const").
QC Entry 78613
|
- Compile the following code (bcc32 -WCV qc78613.cpp): // ----- #include <vcl.h> class IInterfaceWithoutGuid : public IInterface { }; typedef DelphiInterface <IInterfaceWithoutGuid> _di_IInterfaceWithoutGuid; int main (void) { _di_IInterfaceWithoutGuid i1, i2; i2 = i1; } // ----- Exp.: compiles Act.: Error E2497 systobj.h 349: Type IInterfaceWithoutGuid wasn't assigned a GUID in function _fastcall operator _di_IInterfaceWithoutGuid & _di_IInterfaceWithoutGuid::= <IInterfaceWithoutGuid>(_di_IInterfaceWithoutGuid &) |
QC #: |
Date Reported: |
Area: |
67728 |
10/9/2008 |
Compatibility\BCB - Delphi |
Description: |
Steps: |
[QC Short Description]
DynamicArray template class does not use VCL memory management
[QC Description]
The DynamicArray template class in sysdyn.h uses the C RTL malloc() and free() functions instead of the VCL RTL GetMem() and FreeMem() functions to manage the memory block for the array data. As long as dynamic arrays are used in C++ code only, or Delphi code only, this is not a problem. However, if dynamic arrays are passed between C++ and Delphi, this can lead to runtime crashes and CodeGuard errors because different memory managers are being used to allocate and free the array memory.
QC Entry 67728
|
1 - Open the attached project
2 - Enable codeguard if it is not enabled (Project->Option | Debbuging). Set enable codeguard to true (all 3 options).
3 - F9 (compile and run)
4 - Click the form button
res:
Resource from different RTL in process: TestProject.exe(6984) - c:\program files\codegear\rad studio\6.0\include\vcl\sysdyn.h#383
...
The memory block (0x00F7BEC0) [size: 4008 bytes] was allocated with SysGetMem
...
exp: no message like the one above. When clicking the button, the message: "Array allocated and freed!" |
QC #: |
Date Reported: |
Area: |
76175 |
7/29/2009 |
IDE\Project Management |
Description: |
Steps: |
Regression against Tiburon 12.0.3390.20513
[QC Short Description]
Unresolved external 'LresultFromObject'
[QC Description]
I opened a project that compiles and runs without error in RS 2009 and tried to build in Weaver, but I get the following error:
[ILINK32 Error] Error: Unresolved external 'LresultFromObject' referenced from C:\PROGRAM FILES\CODEGEAR\RAD STUDIO\7.0\LIB\DEBUG\VCLACTNBAND.LIB|ActnMenus
Since the error is coming from actnband.lib and my project does not need that library, I tried to disable it by removing the reference to it from the runtime libraries list. Even with the reference removed, I receive the same error on build.
The attachment contains the project file after removing most of the project content and demonstrates the error.
I cannot reproduce this in a project built entirely in Weaver.
QC Entry 76175
|
Open attached project in Weaver Shift+F9 to build Exp: Successful build as in RS 2009 Act: [ILINK32 Error] Error: Unresolved external 'LresultFromObject' referenced from C:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\7.0\LIB\DEBUG\VCLACTNBAND.LIB|ActnMenus [ILINK32 Error] Error: Unable to perform link Failed |
QC #: |
Date Reported: |
Area: |
76879 |
8/20/2009 |
Compiler\C++\Back End |
Description: |
Steps: |
[QC Short Description]
BCC doesn't correctly emit the updated type info
[QC Description]
The type info structures in TypInfo.pas have been updated to support the new RTTI features, primarily attributes. Look at the following diff of TTypeData from Tiburon to Weaver:
// -----
TTypeData = packed record
case TTypeKind of
...
tkClass: (
ClassType: TClass; // most data for instance types is in VMT offsets
ParentInfo: PPTypeInfo;
PropCount: SmallInt; // total properties inc. ancestors
UnitName: ShortStringBase;
- {PropData: TPropData});
+ {PropData: TPropData;
+ PropDataEx: TPropDataEx;
+ ClassAttrData: TAttrData;});
...
end;
// -----
However, BCC doesn't emit the new type info fields, primarily the PropDataEx and ClassAttrData fields. It is understandable that BCC doesn't fully support the new RTTI features such as attributes right now, but it should at least zero out the new fields - right now the type info generated by BCC is simply wrong, and all code that tries to read in all type info fields simply crashes.
To demonstrate the failure, I've attached a test case that simply reads out and skips above fields. It works fine for DCC-built type info but, as expected, it runs into AVs when consuming BCC-generated type info.
In addition, once QC's #76875 and #76877 are fixed, I think Rtti.pas will form another good test case for this problem.
QC Entry 76879
|
- Download the attached sample project, compile it (bcc32 -WCV qc76879.cpp) and run it. Expected output: // ----- Testing TObject... PASS Testing TStringList... PASS Testing TComponent... PASS Testing TInterfacedObject... PASS Testing TCppObject... PASS Testing TCppStringList... PASS Testing TCppComponent... PASS Testing TCppInterfacedObject... PASS // ----- Actual output (message language may differ depending on locale and setup): // ----- Testing TObject... PASS Testing TStringList... PASS Testing TComponent... PASS Testing TInterfacedObject... PASS Testing TCppObject... FAIL EAccessViolation: Zugriffsverletzung bei Adresse 0040166C in Modul 'qc.exe'. L esen von Adresse 0050AC36 Testing TCppStringList... FAIL EAccessViolation: Zugriffsverletzung bei Adresse 0040166C in Modul 'qc.exe'. L esen von Adresse 004FC5CF Testing TCppComponent... FAIL EAccessViolation: Zugriffsverletzung bei Adresse 0040166C in Modul 'qc.exe'. L esen von Adresse 004FB8AE Testing TCppInterfacedObject... FAIL EAccessViolation: Zugriffsverletzung bei Adresse 0040166C in Modul 'qc.exe'. L esen von Adresse 004FB000 // ----- |
QC #: |
Date Reported: |
Area: |
76645 |
8/12/2009 |
IDE\Class Explorer |
Description: |
Steps: |
[QC Short Description]
Class Explorer - no tool tip hint for 3rd button from the right
[QC Description]
No tool tip hint for the 3rd button from the right on the tool bar of the C++ Class Explorer.
I believe that's the "Show inherited members" button?
QC Entry 76645
|
|
QC #: |
Date Reported: |
Area: |
|
9/21/2009 5:53:11 PM |
VCL\Emulation Classes |
Description: |
Steps: |
DelphiInterface<T> has an incorrect assignment operator that prevents the compiler from auto-generating default copy constructors for types that contain a DelphiInterface<T> field. |
1. Create a C++ VCL Application and add the following code to the end of the .cpp file:
#include <vcl.h>
struct TTest
{
_di_IInterface intf;
};
TTest getTest() { return TTest(); }
int test()
{
TTest t;
t = getTest();
return !t.intf;
}
2. Compile
exp: Compile without errors.
act: Compiler Errors
Error E2285 test.cpp 14: Could not find a match for 'operator TTest::=(TTest)' in function test()
*** 1 errors in Compile ***
The issue is that the DelphiInterface<T> template contains an incorrect assignment operator: It takes a non-const RHS parameter, therefore preventing the compiler from generating a default assignment operator for the above.
|
QC #: |
Date Reported: |
Area: |
|
9/22/2009 3:54:58 PM |
Compiler\C++\Front End |
Description: |
Steps: |
If a class contains a property of a type with an explicit assignment operator, we refuse to generate a default assignment operator for the class.
NOTE: This is related to 272771. IOW, the workaround for 272771 does not work if the class/record contains properties.
|
bcc32 -c 272992.cpp
exp: No Errors
act: // Error E2328 test.cpp 14: Classes with properties cannot be copied by value
The error is on the last line that assigns t to t2' |
QC #: |
Date Reported: |
Area: |
|
10/12/2009 1:52:36 PM |
SOAP |
Description: |
Steps: |
Linker error when building a project with WebServices components with the option to 'Build with runtime packages' turned off.
|
1. Create a new C++ VCL app
2. Drop any component under the WebServices category onto the form e.g. THTTPRIO
3. Build project
//exp & act: No errors
4. Project|Options. Packages. Turn off option 'Build with runtime packages'.
5. Build project
//exp: No errors
//act:
[ILINK32 Error] Error: Unresolved external 'CertOpenSystemStoreW' referenced from D:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\7.0\LIB\DEBUG\SOAPRTL.LIB|SOAPHTTPTrans
[ILINK32 Error] Error: Unresolved external 'CertEnumCertificatesInStore' referenced from D:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\7.0\LIB\DEBUG\SOAPRTL.LIB|SOAPHTTPTrans
[ILINK32 Error] Error: Unresolved external 'CertOpenStore' referenced from D:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\7.0\LIB\DEBUG\SOAPRTL.LIB|SOAPHTTPClient
[ILINK32 Error] Error: Unresolved external 'CertFreeCertificateContext' referenced from D:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\7.0\LIB\DEBUG\SOAPRTL.LIB|SOAPHTTPClient |
QC #: |
Date Reported: |
Area: |
|
8/4/2009 5:31:16 PM |
IDE\Class Explorer |
Description: |
Steps: |
If is not checked "Case insensitive search" and is checked "Allow wildcard" in the properties of Class Explorer, if you type "TForM?" in search box , will appear, and the items which contains "TForm" |
|
QC #: |
Date Reported: |
Area: |
|
8/5/2009 5:48:41 PM |
IDE\Class Explorer |
Description: |
Steps: |
When you move the splitter from the right side of LHSTree close to left side of the LHSTree , you cannot move back the splitter to the right side of LHSTree. |
|
QC #: |
Date Reported: |
Area: |
|
8/5/2009 7:16:15 PM |
IDE\Class Explorer |
Description: |
Steps: |
The tool tip for "Include inherited members" doesn't appear. |
|
QC #: |
Date Reported: |
Area: |
|
8/18/2009 4:30:28 PM |
Compiler\C++ |
Description: |
Steps: |
C++ compiler --doc output is missing ancestor information for all classes
C++ compiler output should have ancestor information in each class record. Bruneau is working on this, but I need to file a RAID bug for him. This lack of information causes the python scripts for loading the docwiki to create a page for every class attribute, whether it is inherited or not.
|
|
QC #: |
Date Reported: |
Area: |
|
9/16/2009 4:52:37 PM |
AddOn\IntraWeb |
Description: |
Steps: |
New C++ IntraWeb app cannot be compiled. |
1. Create File > New > Other > C++ > VCL for the web
2. Create project as selecting all default
3. Compile app
-> You'll get a compile error |
QC #: |
Date Reported: |
Area: |
23373 |
1/11/2006 |
IDE\Code Editor\Code Folding |
Description: |
Steps: |
[QC Short Description]
Editing/Entering code causes unfolding
[QC Description]
In a .cpp file, If I try to enter a new function wile the code is folded, typing the opening { for the new function causes all code following that point to unfold.
I realize that the code is ill-formed at the moment I type the opening brace for a new function, but the editor sould let me perform normal functions without getting in my way.
I see no reason to ever reevaluate folding dynamicly - anything that's folded or unfolded should stay that way until I invoke folding or unfolding again with a hotkey or menu choice.
ADDED AFTER REPORT WAS CLOSED:
This report was closed, I suspect due to the steps not being followed closely enough. Step 5 says to type an opening brace, not to type the brace followed by <Enter>.
Just to be sure I have attached a simple demo project. I assume that the file will be folded if someone else opens it - if not, Fold Methods.
When I add an opening brace { at the start of line 18 of FoldMain.cpp the three buttonClick methods unfold. Automatic block completion will stop this from happening if the { is followed immediately by the Enter key.
QC Entry 23373
|
Updated Steps:
- Create a new .c or .cpp file in the IDE
- Enter this code
// -----
#pragma region
#pragma end_region
4|
// -----
- Fold the region
- Move the cursor to the pipe
- type '2'
Exp.: '2' is inserted
Act.: '2' is inserted and the elided block is un-elided
Also: same issue with #if...#endif blocks and #ifdef...#endif blocks.
-- Original Steps: --
Open the attached project
open FoldMain.cpp
right click and Fold Methods
type an opening { on line 18
//not all the methods following will unfold
--------
File | New | VCL Forms Application - C++ Builder
Add several functions to the .cpp file
Right-click in editor and Fold | Methods
Add a new method near the top of the file (with several folded methods following it)
Type the opening { for the new method (***and don't type anything else***)
Code following the { will unfold |
QC #: |
Date Reported: |
Area: |
76653 |
8/12/2009 |
IDE\Structure Pane |
Description: |
Steps: |
[QC Short Description]
Structure pane filter by visibility doesn't refresh when clicked
[QC Description]
When structure is showing the structure of your code, hitting the "filter by visibility" button should filter the displayed members accordingly. However, it's not refreshed and appears as if the button is broken. It is only when you navigate to a different page and back that it is refreshed (and there's no refresh button either).
QC Entry 76653
|
As above. |
QC #: |
Date Reported: |
Area: |
|
8/11/2009 1:25:47 PM |
IDE\Class Explorer |
Description: |
Steps: |
Adding a field, a method, or a property to a new class from the header file of a form unit or a new unit , doesn't work. |
1. New VCL Application for C++ Builder.
2. Add a new unit to current project(Unit2.cpp)
3. Add a new trivial class with no ancestors to Unit2.h, like this:
class test
{
};
4. Open View->Class Explorer.
5. Search for "test" class in Type List.
6. Add a field, a method, or a property to "test" class.
Exp: Add a field, a method, or a property to be added to "test" class.
Act: Nothing is added to "test" class.
|
QC #: |
Date Reported: |
Area: |
|
8/11/2009 9:50:42 AM |
IDE\Class Explorer |
Description: |
Steps: |
Adding a field, method or property to a trivial class that is declared on one line results in bad code being generated. |
1. New C++ console application.
2. New C++ Unit.
3. In Unit1.h, declare the following class all on one line like this:
class test {};
4. Invoke class explorer.
5. Select class test from the tree, right-click and add a field, method or property.
//exp: New field, method or property is created correctly.
//act: Code for the new declaration is added *before* the class declaration, resulting in an uncompilable project. |
QC #: |
Date Reported: |
Area: |
|
8/13/2009 7:33:21 PM |
IDE\Class Explorer |
Description: |
Steps: |
The types are not indented correctly after adding a field to new types from a new unit, so, because of that I think you can't add more fields correctly. |
1. New VCl Application for C++ Builder.
2. Open Class Explorer.
3. Add a new unit to the project.
4. Add this code in the header of the new unit:
class test
{
};
5. In Class Explorer add "testprivate" field as private field to test class.
Act:
Adding testprivate field:
class test
{
private:
int testprivate;};
6. In Class Explorer add "testpublic" field as public field to test class.
Act:
Adding testpublic field:
class test
{
private:
public:
int testpublic; int testprivate;};
Act: the public field declaration is added incorrectly. |
QC #: |
Date Reported: |
Area: |
|
8/13/2009 7:13:17 PM |
IDE\Structure Pane |
Description: |
Steps: |
Structure Pane incorrectly parses:
static CPictureTransparent pic_ARROWDOWN(IDB_ARROWDOWN, RGB(255,0,255));
It shows two entries |
.1 Create a .cpp file.
.2 Paste the following code:
static CPictureTransparent pic_ARROWDOWN(IDB_ARROWDOWN, RGB(255,0,255));
exp: Structure Pane shows entry for pic_ARROWDOWN
act: Structure Pane shows entry for pic_ARROWDOWN and IDB_ARROWDOWN. |
QC #: |
Date Reported: |
Area: |
|
9/1/2009 5:33:03 AM |
IDE\Class Explorer |
Description: |
Steps: |
[LAYOUT ISSUE]
Button's upper portion is truncating in Add Method dialog, please see attached screen shot. |
- File | New, VCL Forms App
- View | C++ Class Explorer
- expand $(Project) node, invoke Add method... as selected TForm1 node
// ACT: <Add> <Cancel> button's upper portion is truncating
//-----------------------------
added after: i observed this bug is reproduced having set Windows Xp style. On Windows Classic style it does not happen. |
QC #: |
Date Reported: |
Area: |
|
9/9/2009 9:22:46 AM |
IDE\Class Explorer |
Description: |
Steps: |
The types are not indented correctly after adding a field to new types from a new unit, so, because of that I think you can't add more fields correctly. |
1. New VCl Application for C++ Builder.
2. Open Class Explorer.
3. Add a new unit to the project.
4. Add this code in the header of the new unit:
class test
{
};
5. In Class Explorer add "testpublic" field as public field to test class.
6. Then add a private field.
7. And add a protected field.
The generated code looks like this:
class test
{
private:
protected:
int testprotected; int testprivate;public:
int testpublic;};
Act:
The protected field is added incorrectly.
|
QC #: |
Date Reported: |
Area: |
|
9/14/2009 3:10:38 PM |
IDE\Class Explorer |
Description: |
Steps: |
When choosing large fonts, the forms for add field, add method and add property are displayed cut off for Vista platform. |
1. Enable large fonts in Windows Vista
2. Open IDE
3. File | New | VCL Forms App - C++Builder
4. View | C++ ClassExplorer
5. Extend ($Project)
6. Right click on 'TForm1'
7. Select 'Add field' context menu item
Exp: the form is displayed
Act: the form is displayed but cut off.
Note: this is happening also for 'Add method' and 'Add property' context menu items. The forms that appear are not displayed correctly.
See atached screenshots. |
QC #: |
Date Reported: |
Area: |
77556 |
9/9/2009 |
Compiler\Delphi |
Description: |
Steps: |
[QC Short Description]
F2084 internal errors when making a package in the IDE that contains Delphi units
[QC Description]
Trying to install RichView (http://www.trichview.com/) into C++Builder can lead to errors like "F2084 Internal Error: AV21FAC6FE-W00000004-1" and also ILINK32 errors.
These errors are reported at line numbers greater then the maximum line number of the unit (very likely same issue as #271112)
These errors do only happen in the IDE - there are no such problems on the command line.
-> see steps
QC Entry 77556
|
1. save the attached files (this is a test case created from the current RichView sources) 2. if you already executed the following steps then remove all *.hpp and *.obj files from the test case dir and remove the Release sub dir 3. start C++Builder 4. open RVPkgCB2010.cbproj 5. call "Make" for the package RVPkgCB2010.cbproj from the Project Manager popup menu expected: it compiles without any problems, because there is no problem with "Build" actual: various internal error I got these results (output in "Build" tab in message pane) with five tests: two times: Compiling RVPkgCB2010.cbproj (Release configuration) [DCC Fatal Error] CRVFData.pas(60): F2084 Internal Error: AV21FAC6FE-W00000004-1 Success once: Compiling RVPkgCB2010.cbproj (Release configuration) [DCC Fatal Error] CRVFData.pas(60): F2084 Internal Error: AV21FAC6FE-W00000004-1 [DCC Fatal Error] CRVFData.pas(60): F2084 Internal Error: AV21FA40BA-W00000004-1 [ILINK32 Error] Fatal: Unable to open file 'RVUNDO.OBJ' Failed two times Compiling RVPkgCB2010.cbproj (Release configuration) [DCC Fatal Error] CRVFData.pas(60): F2084 Internal Error: AV21FAC6FE-W00026805-1 [DCC Fatal Error] CRVFData.pas(60): F2084 Internal Error: AV21FA40BA-W00026805-1 [ILINK32 Error] Fatal: Unable to open file 'RVUNDO.OBJ' Failed Note CRVFData.pas has only 59 lines and the error is reported at line 60. (very likely same issue as #271112) (6. close the IDE 7. go to 2.) |
QC #: |
Date Reported: |
Area: |
76226 |
7/30/2009 |
Compiler\C++\Front End\Pre-Compiled Headers |
Description: |
Steps: |
Regression against Tiburon 12.0.3420.21218
[QC Short Description]
F1004 ICE at 0x4ce94d with base 0x400000 w/ -H
[QC Description]
Compiling with the -H option I will receive the following internal compiler error. Compiling without -H option will be successful.
Compiling a preprocessed source file, with or without -H, has no effect.
bcc32.exe -DIS_DLL;USE_DLL;TIMER_DEBUG;_DEBUG;STRICT -D_RTLDLL -UNO_STRICT -I"C:\Program Files\Embarcadero\RAD Studio\7.0\include";"C:\Program Files\Embarcadero\RAD Studio\7.0\include\vcl";"C:\Program Files\Embarcadero\RAD Studio\7.0\include\dinkumware";"C:\Program Files\Embarcadero\RAD Studio\7.0\ObjRepos\Cpp";"C:\Program Files\Embarcadero\RAD Studio\7.0\include\Indy10" -y -v4 -Q -c -tWM -tW -Vx -Ve -He- -C8 -wstl -wimp -Od -v -vi -H HighResElapsedTimer.cpp
Embarcadero C++ 6.20 for Win32 Copyright (c) 1993-2009 Embarcadero Technologies,
Inc.
highreselapsedtimer.cpp:
Loaded pre-compiled headers.
Fatal F1004 highreselapsedtimer.cpp 161: Internal compiler error at 0x4ce94d wit
h base 0x400000
Fatal F1004 highreselapsedtimer.cpp 161: Internal compiler error
QC Entry 76226
|
1 - download attached files
2 - bcc32.exe -DIS_DLL;USE_DLL;TIMER_DEBUG;_DEBUG;STRICT -D_RTLDLL -UNO_STRICT -y -v4 -Q -c -tWM -tW -Vx -Ve -He- -C8 -wstl -wimp -Od -v -vi -H HighResElapsedTimer.cpp
// Note: if the ICE does not appear at the first attempt, repeat step 2 above
act:
Loaded pre-compiled headers.
Fatal F1004 HighResElapsedTimer.cpp 161: Internal compiler error at 0x4ce94d wit
h base 0x400000
Fatal F1004 HighResElapsedTimer.cpp 161: Internal compiler error
exp: No ICE
[QC Steps]
To fail:
1) Compile the attached source file with the described bcc32.exe command. |
QC #: |
Date Reported: |
Area: |
77173 |
8/29/2009 |
Compiler\C++ |
Description: |
Steps: |
[QC Short Description]
Incorrect constant generated for 64-bit integer when inside Delphi package class method
[QC Description]
When a 64-bit constant value (with no i64 suffix) is assigned to an __int64 variable a completely unrelated constant value is assigned.
Added by Sysop
<<<<<<<<<<<
Please see Clayton-san's comment
>>>>>>>>>>>
QC Entry 77173
|
bcc32 272679.cpp
272679
exp:
0x1000000000
act:
0x10001100199779 |
QC #: |
Date Reported: |
Area: |
61818 |
5/6/2008 |
Compiler\C++\Front End\Templates |
Description: |
Steps: |
[QC Short Description]
Template partial specialization fails
[QC Description]
The supplied code fails to compile.
Comeau compiles this.
Attached code:
template <typename T>
class TestA {
public:
template <typename C>
void f();
};
template <>
template <typename C>
void TestA<double>::f() {}
QC Entry 61818
[Top 10] 15 Votes
C++ Templates |
download attachment bcc32 -c qc61818.cpp Exp: Clean compile Act: Error E2299 qc61818.cpp 10: Cannot generate template specialization from 'TestA<double>::f<C>()' Error E2316 qc61818.cpp 10: 'TestA<double>::f()' is not a member of 'TestA<double>' |
QC #: |
Date Reported: |
Area: |
75693 |
7/12/2009 |
Compiler\C++\Front End\Templates |
Description: |
Steps: |
[QC Short Description]
Internal Compiler Error when using a template with boost::variant
[QC Description]
When compiling the attached project the compiler produces an ICE and stops compiling.
Please don't mind that the code doesn't make any sense in this state. It did before reducing it :)
QC Entry 75693
|
bcc32 -c -P -w- -j2 271247.i
res:
Fatal F1004 271247.i 1923: Internal compiler error at 0x44aea8 with base 0x400000 in function main(int,char * *)
Fatal F1004 271247.i 1923: Internal compiler error in function main(int,char * *) |
QC #: |
Date Reported: |
Area: |
76349 |
8/3/2009 |
Compiler\C++\Front End\Language |
Description: |
Steps: |
[QC Short Description]
Internal Compiler Error when using a closure that returns a reference
[QC Description]
When a closure returns a reference, the compiler crashes with an access violation.
QC Entry 76349
|
bcc32 272023.cpp |
QC #: |
Date Reported: |
Area: |
76419 |
8/5/2009 |
Compiler\C++ |
Description: |
Steps: |
[QC Short Description]
Compiler may ignore const keyword on primitive data type parameters
[QC Description]
If a primitive data type parameter is declared as const after being prototyped as non-const, the compiler ignores that parameter's const-ness and permits it to be modified anyway.
Parameters declared as const in this fashion are somewhat unique in that the const-ness isn't part of the function's signature, but the compiler should still enforce it within that function.
QC Entry 76419
|
bcc32 -w- qc76419.cpp exp: Error E2024 qc76419.cpp 5: Cannot modify a const object in function test_me(const int) act: clean compile |
QC #: |
Date Reported: |
Area: |
|
7/2/2009 1:23:49 PM |
Compiler\C++ |
Description: |
Steps: |
ICE in boost when using static_assert
requires -Ve and -v
doesn't squish |
bcc32 -c -P -Ve -v testgreg_serialize.i |
QC #: |
Date Reported: |
Area: |
|
8/6/2009 6:05:46 PM |
Compiler\C++\Front End\Preprocessor |
Description: |
Steps: |
The preprocessor don't handle #pragma once. |
bcc32 -c once.c
Embarcadero C++ 6.20 for Win32 Copyright (c) 1993-2009 Embarcadero Technologies, Inc.
once.c:
Included!
cpp32 once.c
Embarcadero C++ Win32 Preprocessor 6.20 Copyright (c) 1993-2009 Embarcadero Technologies, Inc.
once.c:
bcc32 -c once.i
Embarcadero C++ 6.20 for Win32 Copyright (c) 1993-2009 Embarcadero Technologies, Inc.
once.i:
Included!
Included! |
QC #: |
Date Reported: |
Area: |
|
8/18/2009 1:28:21 PM |
Compiler\C++\Front End |
Description: |
Steps: |
enums get double SR_Defs for -R in C code |
1. set DEBUG_CLASS=bcc.refs.brow-record
2. compile the code below using debug build of bcc:
bcc32 -c -R -w- browrefs.c
// enums
enum E8 { // def: E8
e0, // def: e0 FIXME e0 (2nd is scoped)
e1 = 5, // def: e1 FIXME e1 (2nd is scoped)
e2 = -1 // def: e2 FIXME e2 (2nd is scoped)
};
exp: one SR_Def for e0, e1, e2
res: two SR_Defs for e0, e1, e2 |
QC #: |
Date Reported: |
Area: |
|
8/18/2009 1:31:07 PM |
Compiler\C++\Front End |
Description: |
Steps: |
func defs get SR_Dcl instead of SR_Def for -R in C code |
1. set DEBUG_CLASS=bcc.refs.brow-record
2. compile the code below using debug build of bcc:
bcc32 -c -R -w- browrefs.c
void foo9() {} // def: foo9 FIXME dcl: m7
exp: SR_Def for foo9
res: SR_Dcl for foo9 |
QC #: |
Date Reported: |
Area: |
78058 |
9/25/2009 |
Compiler\C++ |
Description: |
Steps: |
[QC Short Description]
Massive performance drop in C++ compiler from CB2009 to CB2010
[QC Description]
After converting my projects from CB2009 to CB2010 I noticed that compilation times were significantly longer in CB2010 in comparison to CB2009. After reading an article from another user in the newsgroups (https://forums.embarcadero.com/thread.jspa?threadID=25040&tstart=0) I spent some time investigating.
I attached two example-projects which contain the same sources. CB2009 takes only half as long to compile the source in question (testUnit1.cpp). In this example the difference is about one second, but in larger and more complex sources this difference grows. One of my projects now takes about 4 minutes to compile with CB2010 and only one minute in CB2009.
QC Entry 78058
|
- open projects in CB2009 & CB2010 - compile 'testUnit1.cpp' two times (to ensure precompiled headers are loaded) - compare second run compilation times |
QC #: |
Date Reported: |
Area: |
|
8/10/2009 1:52:57 PM |
Compiler\C++\Front End\Pre-Compiled Headers |
Description: |
Steps: |
Pubdefs are being generated for a template
Inspired by 272127. Once this is fixed, the fix for that bug should be re-enabled. |
Compile test.cpp with:
bcc32 -c -H=x.pch -H 272290.cpp
The compiler correctly says:
Warning W8058 test.h 12: Cannot create pre-compiled header: initialized data in header
but the generated .obj is bad. If you TDUMP it you'll see the following:
0000B5 PUBDEF 'void * * tfoo<U>(U * *)' Segment: _TEXT:0000
tfoo should not generated because it's refered to by an inline function that's not being used.
|
QC #: |
Date Reported: |
Area: |
|
8/28/2009 8:10:15 AM |
Compiler\C++\Back End |
Description: |
Steps: |
Using the attached project, and after copying in the cmath.hpp to the correct location I get an internal error F1001 in the IDE and an internal backend error TR2028 |
bcc32 -q -P -w- -vi- 272663.i
res:
272663.i:
Internal backend error TR2028 compiling ???(0)
*** 1 errors in Compile ***
exp: clean compile
will also compile cleanly with -vi |
QC #: |
Date Reported: |
Area: |
|
6/3/2007 |
Modeling |
Description: |
Steps: |
[MISSING TRANSLATION]
When enabling modeling on a project, together scan the sources and display a progress bar whose window is not translated.
See screen dump.
SEE comment for translation
|
1. Create a new C++ VCL fomr project without modeling support
2. Show model with
3. Accept adding model support
4. See the window with progress bar (with an empty project, it is displayed very shortly) Use a large project to see it longer.
See screen dump
[vkarjakin]
NOTE1: Resource file Strings.resx added to the project, ResourceGate.java - implemented. Project is ready now for the localization.
NOTE2: Now progress indicatior is displayed only for very big projects - after 3 seconds after the parsing start. Probably it will be to difficult to verify such progress indicator without program changes. By the problems by verification - e-mail to me: I will verify using program changes
[vkarjakin] Because build procedure uses still RootNamespace=CppOM (instead of CppOM2), RootNamespace is changed to CppOM in the main project CppOM2.csproj too.
Fixed in trunk rev.24454, merged in the branch rev.24455
[vk] The progress indicator is visible only for the long projects (> 3 sec). For example project $TP\soap\test\CppGenericClient\CppGenericClient.cbproj in the developers build. Open this project, switch on modeling (if it is off), expand root project node and see the ProgressIndicator after 3 sec.
The english version is "Processing file: ..." - in all other languages these words should be translated.
[vk] Fixed in 24518(trunk)-24521(branch)
[saa]: build 14.0.3557.24893.1: French and Japanese are Ok. German is not fixed. |
QC #: |
Date Reported: |
Area: |
|
11/2/2009 4:18:02 PM |
IDE\Class Explorer |
Description: |
Steps: |
May be relate to 272453 and its side effect
Also regression from RTM (!)
Context menu - Add Field... and Add Property... is missing translation, see attached screen shot. |
- File | New | C++Builder VCL App
- View | Class Explorer
- RClick in left pane
// act: see English 'Add Field...' and 'Add Property...' |
QC #: |
Date Reported: |
Area: |
|
9/29/2009 2:18:49 PM |
Modeling |
Description: |
Steps: |
[MISSING TRANSLATION]
When enabling modeling on a project, together scan the sources and display a progress bar whose window is not translated in German locale.
unfixed part of #251315 |
|
QC #: |
Date Reported: |
Area: |
|
8/24/2009 10:16:45 AM |
Install |
Description: |
Steps: |
Please add Lmidreg.hpp to the list of headers file delivered. It should be delivered to
$(BDS)\include\vcl
For other information such as SKU/source location/etc, lMidreg.hpp should be identical to midreg.hpp
Thank you! |
Include <MidReg.hpp> in a VCL project for C++ Builder.
Then, build.
The next error appears:
[BCC32 Error] MidReg.hpp(48): E2209 Unable to open include file 'Lmidreg.hpp'
Full parser context
Unit1.cpp(4): #include c:\program files\embarcadero\rad studio\7.0\include\vcl\MidReg.hpp |
QC #: |
Date Reported: |
Area: |
|
9/14/2009 5:24:14 PM |
Install\Files |
Description: |
Steps: |
Need to deliver: Source\Rtl\Source\mbcs\mbstrlen.c
from cppbinaries\integration to $(BDS)\source\cpprtl\Source\mbcs. |
|
QC #: |
Date Reported: |
Area: |
75659 |
7/10/2009 |
Database\DBExpress |
Description: |
Steps: |
[QC Short Description]
tinyint field type not supported in Sybase dbexpress interface
[QC Description]
If in a Sybase 12.5 database stored procedure a parameter has the type 'tinyint' then the dbexpress interface does not recognize this type and generates the error message:
dbExpress driver does not support the TDBXTypes.UNKNOWN data type. Vendor error message:.
The types 'int' and 'smallint' are supported, the type 'tinyint' not.
The former dbexpress interface of BDS2006 was working well,
the new one of C++Builder 2009 does not work.
Example:
create procedure TEST
@PARAM1 int,
@PARAM2 smallint,
@PARAM3 tinyint
as
begin
......
end
QC Entry 75659
|
Create a stored procedure in a Sybase database like
create procedure TEST
@PARAM1 int,
@PARAM2 smallint,
@PARAM3 tinyint
as
begin
......
end
put a TSQLConnection and a TSQLStoredProc into a form,
connect to the database and select the stored procedure that contains
the tinyint parameter and set Active to true. |
QC #: |
Date Reported: |
Area: |
|
6/11/2009 6:32:34 PM |
Modeling\Class Diagram |
Description: |
Steps: |
C++:Class Diagram:Links:It should be possible to create outcoming/incoming links to/from Union via popup signs |
1. create any element (ns, class, struct, association class, enum, object)
2. create union
3. select element -> select outcoming/incoming popup sign->click on Union
act: nothing happens
exp:context menu with available links opens |
QC #: |
Date Reported: |
Area: |
|
8/17/2009 7:18:55 PM |
SOAP\WSDL Importer- BCB |
Description: |
Steps: |
WSDL importer wizard generates invalid code, i try no options selected, when changing the options in the fourth step |
File | New BCB VCL App
File | New | Other | Webservices | WSDL Importer
In the edit box type :
http://pluto/webservices/EchoComplex.asmx?WSDL
Next | Next
On the options page uncheck all the boxes | Finish.
Build
exp : clean Build
act : build fails with a lot of errors |
QC #: |
Date Reported: |
Area: |
77196 |
8/30/2009 |
IDE\Code Editor\Formatting |
Description: |
Steps: |
[QC Short Description]
incorrect formatting of literal number with suffix
QC Entry 77196
|
have line similar to the following
FileSeek(Handle, 0i64, soFromCurrent)
format <ctrl-D>
FileSeek(Handle, 0 i64, soFromCurrent)
will not compile!
[vk] Note: only Cpp. Case not sensitive (i8, ui8, i16, ui16, i32, ui32, i64, ui64, I8, UI8, I16, UI16, ...).
i32, i64 etc are valid even for the pointed and potented numbers (1.23e-8i32).
Other suffixed are valid (u, i, f, d)
fixed in trunk rev.24342, 24347
synchronized in branch - rev.24348
|
QC #: |
Date Reported: |
Area: |
76652 |
8/12/2009 |
IDE\Code Editor\ |
Description: |
Steps: |
[QC Short Description]
C++ Code formatter confused when it encounters nested template
[QC Description]
For non nested template types, it works fine:
UIntArray processIds = TProcessManager::GetProcessIds<Process>();
For nested template types, it thinks it's dealing with a greater than symbol rather than a matching close '>' for the template type:
GcList<Process>::Type list = gcnew<GcList<Process>::BaseType > ();
i.e. should be:
gcnew<GcList<Process>::BaseType>();
*notice the whitespaces between BaseType and '>' and '>' and ().
QC Entry 76652
|
1 - File | New | Other | C++ Builder Project | Console Application
2 - Ok
3 - Add the below lines to the source code:
TProcessManager::GetProcessIds<Process>();
GcList<Process>::Type list = gcnew<GcList<Process>::BaseType>();
4 - Right clicke and select "Format Source"
act:
TProcessManager::GetProcessIds<Process>();
GcList<Process>::Type list = gcnew<GcList<Process>::BaseType > ();
// notice the whitespace between BaseType and '>' and '>' and ().
exp:
TProcessManager::GetProcessIds<Process>();
GcList<Process>::Type list = gcnew<GcList<Process>::BaseType>();
// no white spaces |
QC #: |
Date Reported: |
Area: |
|
9/14/2009 9:09:12 PM |
IDE\Code Editor\Formatting |
Description: |
Steps: |
Correct format selection started inside the token |
Input any multiline source, for example
void
function1();
and select here fragment
id
fu
and format it.
You will receive
voidfunction1();
without space between void and function1 words. This is bug
[vk] Fixed: Trunk - svn rev.24594, branch - svn rev.24595 |
QC #: |
Date Reported: |
Area: |
|
10/1/2009 10:45:26 AM |
IDE\Code Editor\Formatting |
Description: |
Steps: |
The code formatter should never break preprocessor directives that have a line continuation.
Please see steps |
1. Create a C++ Application and add the following to a .cpp file or header:
#if defined(BUGATTI) || defined(MASERATI) || defined(PAGANI) \
defined(SALEEN) || defined(JENSEN)
#error "Some long message here " \
"that continues on the next line"
2. Format the source
exp: The two preprocessor directives are not broken up
act: An empty line is inserted after the #if and after the #error - in essence changing/altering the code.
[vk] fixed in the trunk - rev.25120, branch - rev.25122
|
QC #: |
Date Reported: |
Area: |
|
10/2/2009 |
IDE\Code Editor\Formatting |
Description: |
Steps: |
C++ formatter should affect on files not included into the project.
The similar request for Delphi is #272936 |
1. create a vcl c++ project
2. open Classes.hpp file
3. change anything in it and try to format - nothing changes
[vk] The problem was in the file size. All files > 65535 bytes (delphi and cpp) not included into the project were not formatted because of exception. Fixed in trunk - svn rev.25095, in brunch - svn rev.25097. Note for verification: Classes.hpp is formatted a long time - about 30 sec. |
QC #: |
Date Reported: |
Area: |
|
1/15/2009 |
Modeling |
Description: |
Steps: |
C++: ModelView: Get back ability to create Union and Association Class in default package. Now these elements are absent in the context menu invoked on the project node in Model View.
developer build. These menu entries existed in Tiburon Up3 build |
[saa]: problem is actual in integration build 14.0.3477.22875 |
QC #: |
Date Reported: |
Area: |
|
2/16/2009 |
Modeling |
Description: |
Steps: |
C++: Model View: if an attribute doesn't have a definition the menu entry "Go to definition" should be disabled.
See similar request about Class Brower (Class Explorer) #258740 |
|
QC #: |
Date Reported: |
Area: |
|
6/26/2008 |
Modeling\Class Diagram |
Description: |
Steps: |
C++: D'n'D: Don't lose enumeration with members after move to any classifier |
1. create c++ project
2. add enumeration with some enum values
3. add any classifier: struct, class or union
4. attempt to move (drag'n'drop) to classifier
act: enumeration is disappeared from diagram and files from Project Manager also.
exp: enumeration with members are added to classifier's source code and appeared in classifier icon in diagram
the other case for reproduce:
1. add enumeration with some enum values
2. add any classifier: struct, class or union
3 attempt to move (drag'n'drop) to classifier-> now it is ok
4. select classifier with enumeretion inside -> drag'n'drop to any other classifier
act: the same result: classifier with enum is disappeared |
QC #: |
Date Reported: |
Area: |
|
2/16/2009 |
Modeling\Inspector |
Description: |
Steps: |
C++: OI: Remove "virtual" and "abstract" properties from OI for methods in union - they cannot be virtual. |
[saa]: verified in build 14.0.3544.24570 |
QC #: |
Date Reported: |
Area: |
|
3/19/2009 2:58:26 PM |
Modeling\Class Diagram |
Description: |
Steps: |
C++: Cache: Attribute is disappear from Union in specific case. See also #269578. |
//one of the ways for reproduce:
1. create new Cpp project
2. add Union1 and Namespace1 on the main diagram
3. add one more Union2 into Namespace1
4. add Attribute into Union1 from Model View context menu (looks like MV context menu is important point)
5. add Attribute into Union2 from Model View context menu
6. Save All. Close All.
7. Reopen last project.
See that Union1 has no attributes
[vz] 04-08-09
It seems it's a cache-related problem |
QC #: |
Date Reported: |
Area: |
|
5/22/2009 |
Modeling |
Description: |
Steps: |
C++: Cache: Attibute in Union should be kept after project reopening if this attribute is a single member and the union is located in a namespace. See also #268558. |
1. create an union in a namespace
2. create an attribute in the union
3. save all, close all, reopen the project
4. check in Model View and on the diagram - the union contains no members, but in source code the attribute is present ok.
No this bug if the union is located in the default namespace (no namespace prefix) or if there are other attrubutes/operations in this union. |
QC #: |
Date Reported: |
Area: |
|
6/1/2009 |
Modeling |
Description: |
Steps: |
C++: Cache: Show all generalization links on the diagram after restart project. Now last link is not shown, if number of parents >= 3. |
1. create a c++ modeling project
2. create several classes at the diagram. from one of them draw 3-4 generalization links to other classes - all links are shown ok, source code is ok as well.
3. save all, close all, restart bds, reopen the project
4. open the diagram with classes - all generalization links are shown except one that is last in the code:
class Src : public T4, public T3, public T2, public T1
{};
link to T1 is not shown, other links are shown ok.
With 3-4-5 parents this bug sometimes is not repeatable.
With 1-2 - never |
QC #: |
Date Reported: |
Area: |
|
7/14/2009 |
Modeling |
Description: |
Steps: |
C++: OI: Correctly set type of function in definition part if new type is a classifier in the project. Now a space is lost between type and name. |
1. let there is a C++ modeling project with 2 classes A and B. Let class A has a method.
2. now through OI set return type for the method in B (either choose it through dialog Choose type, or just type B or ::B in return type field) -> results in declaration the type is changed ok:
class A{
::B operation1();
};
but in definition a space between type and name is lost:
::B::A::operation1(){
} |
QC #: |
Date Reported: |
Area: |
|
7/14/2009 5:27:35 PM |
Modeling |
Description: |
Steps: |
C++: D'n'D: Correctly change method definition on d&d its container class from inner namespace to it's parent. Now on d&d-ing from inner namespace to it's parent namespace prefix is kept. |
1. Create a namespace.
2. In first namespace create second namespace
3. In second namespace create a class with method in it.
4. drag'n'drop class from second namespace to first
expected method definition
void ::Namespace1::Class1::Operation1() {
}
resulting method definition:
void ::Namespace1::Namespace2::Class1::Operation1() {
} |
QC #: |
Date Reported: |
Area: |
|
7/15/2009 1:43:37 PM |
Modeling |
Description: |
Steps: |
C++: Remove enum value completely from diagram and source code afte deletion from dgrm. Now the last symbol of enum value presented on dgrm and source code. |
1. add enumeration
2. add enum value to enumeration->eAttribute1 appears on dgrm and in source code
3. go to dgrm-> delete eAttribute1-> go to source code
act:
---------------------------------------------------------
enum Enumeration4 {
1 // the last symbol didnt remove
};
---------------------------------------------------------
Note1: if the name contains only 1 symbol-> it didnt removed
Note2: if enumeration contains several enum values -> the last symbol of removed value stuck off with previous enum value. |
QC #: |
Date Reported: |
Area: |
|
3/25/2008 |
Modeling\Class Diagram |
Description: |
Steps: |
C++: Class Diagram: It should be possible to change client of generalization link. Now no changes are applied after reroute generalization link |
|
QC #: |
Date Reported: |
Area: |
72052 |
3/9/2009 |
Compiler\C++\Front End\Exception Handling |
Description: |
Steps: |
[QC Short Description]
Throw exception in constructor causes assertion fail
[QC Description]
When throwing an exception from the constructor the following error message appears:
"Assertion failed: elemType->tpClass.tcpFlags & CF_HAS_DTOR, file xx.cpp, line 4130"
and the application terminates with the message "Abnormal program termination"
This problem only occurs in release build.
QC Entry 72052
|
Create a VCL Forms Application and add this code: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <string> #include <fstream> #include <exception> #include "main.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- class Bug { public: Bug() :m_Internal(NULL) { } void Test() { m_File.open("c:\\tmp\\test.bin", std::ios::binary); m_Internal = new Internal(m_File); } private: class Internal { public: Internal(std::ifstream& file) { throw std::runtime_error("WTF"); } }; Internal* m_Internal; std::ifstream m_File; }; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { try { Bug b; b.Test(); } catch(const std::runtime_error& re) { ShowMessage(re.what()); } } //--------------------------------------------------------------------------- |
QC #: |
Date Reported: |
Area: |
75496 |
7/2/2009 |
Compiler\C++\Back End |
Description: |
Steps: |
[QC Short Description]
DirectShow base class wxUtil.cpp Release compiler (F1001 Internal code generator erro)
[QC Description]
The DirectShow BaseClass file wxUtil.cpp compile at Release will generate F1001
QC Entry 75496
Note: Requires -O2 and is a regression against 6.11 |
bcc32.exe -c -w- -O2 -P wxutil.i
exp: clean compile
act:
Internal backend error C1744 compiling wxutil.i(1398)
*** 1 errors in Compile *** |
QC #: |
Date Reported: |
Area: |
|
8/17/2009 11:12:27 AM |
Compiler\C++ |
Description: |
Steps: |
Zach Saw's bug with release builds
Error E2468 process.i 809031: Value of type void is not allowed in function _fas
tcall TProcess::GetProcessesByName(const AnsiString &)
compiles cleanly with -vi- |
bcc32.exe -P -w- -c 272511.i
res:
Error E2468 272511.i 245: Value of type void is not allowed in function TGcList<
Process> * gcnew_delphiclass<TGcList<Process> >(node_t * &)
*** 1 errors in Compile ***
but with:
bcc32.exe -P -w- -c -vi- 272511.i
it compiles cleanly. |
QC #: |
Date Reported: |
Area: |
BETA |
10/28/2005 |
Linker |
Description: |
Steps: |
Linker hint is not translated. rlink32
Unsupported 16bit resource in file
(jpg attached)
[QA note] check DE FR also.
see 239380
|
- create a new Project;
- Compile it;
- Run it ouside the IDE;
- Recompile it in the IDE;
- You will see an error message written in English. |
QC #: |
Date Reported: |
Area: |
|
8/8/2009 9:23:02 PM |
Debugger |
Description: |
Steps: |
French uses two different strings for IDE caption if an application is stopped.
Arr�t�: if it hits a breakpoint
Arr�t: if normal start of App. and "Pause" is pressed
// blocks test: Debugger/Regressions/Raid258183 |
1. create new Delphi vcl app
2. set breakpoint to Application.CreateForm
3. Run
exp/rec: IDE Caption shows Arr�t�
1. create new Delphi vcl app
2. press F9
3. press pause
exp: IDE Caption shows Arr�t�
act: it shows Arr�t (see attachement)
// note: all other languages use the same string |
|
|
Connect with Us