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 http://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

Server Response from: ETNASC03